文章目录
- Nmap的使用方法总结
-
- 一:各种参数的使用
-
- 1:ping扫描 —— nmap < 要扫描的目标ip地址>
- 2:TCP SYN Ping扫描
- 3:-PA TCP ACK Ping扫描
- 4:半开扫描
- 5:自定义端口扫描 `nmap -P(扫描范围)< 要扫描的目标ip地址>`
- 6:-Pn 非ping扫描,不执行主机发现,可以跳过防火墙 ( `常用`)
- 7:-sV 探测打开端口对应服务的版本信息
- 8:-vv 对扫描结果详细输出(vv小写)
- 9:路由追踪扫描
- 10:操作系统检测 -O(O大写)
- 11:万能开关扫描
- 11:扫描一个网段下的IP个数 **`nmap ip地址/24`**
- 12:扫描一个目标列表 **`nmap -iL [ip地址列表文件]`**
- 13:其他扫描方法(不常用)
- 二:实际使用注意点
-
- 1:多条指令联合使用
- 2:挑选最适合自己的
- 3:识别和绕过防火墙和IDS
- 4:主机发现和端口扫描参数区分
-
-
- 1>:主机发现
- 2>:端口扫描
-
- 三:namp的进阶操作
-
- 1>:TCP空闲扫描
- 2>:nmap的脚本
Nmap的使用方法总结
一:各种参数的使用
1:ping扫描 —— nmap < 要扫描的目标ip地址>
- 这种扫描方式以及
-sP
扫描,检测网络上哪些主机正在运行,通过向指定的IP地址发送ICMP echo请求数据包,收到一个RST包,就表示主机正在运行。
后面会讲到多个参数结合使用,一般当扫描主机防火墙打开时,是无法直接扫描的
2:TCP SYN Ping扫描
- 对于root用户,-PS 让nmap使用SYN包而不是ACK包来对目标主机进行扫描。如果主机正在运行就返回一个RST包(或者一个SYN/ACK包)。-PS默认在80端口发送TCP SYN数据包;我们还可以指定端口,例如-PS135(指定135)端口。当管理员对TCP SYN数据包中的SYN数据包没有过滤时可绕过。
3:-PA TCP ACK Ping扫描
nmap -sP -PA < 要扫描的目标ip地址>
- 类比TCP SYN Ping扫描
4:半开扫描
- TCP SYN扫描,意思是,半开式扫描。用户可以发出一个TCP同步包(SYN),然后等待回应。如果对方返回SYN|ACK(响应)包就表示目标端口正在监听;如果返回RST数据包,就表示目标端口没有监听程序;如果收到一个SYN|ACK包,源主机就会马上发出一个RST(复位)数据包断开和目标主机的连接。该选项扫描的最大好处是,扫描动作极少会被记录,更具有隐蔽性!
5:自定义端口扫描 nmap -P(扫描范围)< 要扫描的目标ip地址>
例:nmap -p80-1000 192.168.1.190
6:-Pn 非ping扫描,不执行主机发现,可以跳过防火墙 ( 常用
)
nmap -Pn < 要扫描的目标ip地址>
常与其他命令联合使用
7:-sV 探测打开端口对应服务的版本信息
8:-vv 对扫描结果详细输出(vv小写)
- 输出结果里包含了开放端口,扫描方法,端口对应服务协议等
9:路由追踪扫描
nmap -traceroute < 要扫描的目标ip地址>
例:
- 路由器追踪功能,能够帮助网络管理员了解网络通行情况
- 通过路由器追踪可以查找从我们电脑所在地到目的地之间所经常的网络节点, 并可以看到通过各个结点所花费的时间。(图中TRACEROUTE下面的内容)
10:操作系统检测 -O(O大写)
11:万能开关扫描
包含了1-10000端口ping扫描,操作系统扫描,脚本扫描,路由跟踪,服务探测 (花费时间长)
nmap -A < 要扫描的目标ip地址>
例:
11:扫描一个网段下的IP个数 nmap ip地址/24
12:扫描一个目标列表 nmap -iL [ip地址列表文件]
13:其他扫描方法(不常用)
-
-sR
RPC扫描。这种方法和nmap的其它不同的端口扫描方法结合使用。选择所有处于打开状态的端口向它们发出SunRPC程序的NULL命令,以确定它们是否是RPC端口,如果是,就确定是哪种软件及其版本号。因此你能够获得防火墙的一些信息。诱饵扫描现在还不能和RPC扫描结合使用。 -
-sU UDP扫描
使用UDP扫描可以知道某台主机上提供哪些UDP(用户数据报协议,RFC768)服务,nmap首先向目标主机的每个端口发出一个0字节的UDP包,如果我们收到端口不可达的ICMP消息,端口就是关闭的,否则我们就假设它是打开的。 -
-sF -sF -sN : 秘密FIN数据包扫描、圣诞树(Xmas Tree)、空(Null)扫描模式:即使SYN扫描都无法确定的情况下使用。一些防火墙和包过滤软件能够对发送到被限制端口的SYN数据包进行监视,而且有些程序比如synlogger和courtney能够检测那些扫描。这些高级的扫描方式可以逃过这些干扰。这些扫描方式的理论依据是:关闭的端口需要对你的探测包回应RST包,而打开的端口必需忽略有问题的包(参考RFC 793第64页)。FIN扫描使用暴露的FIN数据包来探测,而圣诞树扫描打开数据包的FIN、URG和PUSH标志。不幸的是,微软决定完全忽略这个标准,另起炉灶。所以这种扫描方式对Windows95/NT无效。不过,从另外的角度讲,可以使用这种方式来分别两种不同的平台。如果使用这种扫描方式可以发现打开的端口,你就可以确定目标注意运行的不是Windows系统。如果使用-sF、-sX或者-sN扫描显示所有的端口都是关闭的,而使用SYN扫描显示有打开的端口,你可以确定目标主机可能运行的是Windwos系统。现在这种方式没有什么太大的用处,因为nmap有内嵌的操作系统检测功能。还有其它几个系统使用和windows同样的处理方式,包括Cisco、BSDI、HP/UX、MYS、IRIX。在应该抛弃数据包时,以上这些系统都会从打开的端口发出复位数据包。
二:实际使用注意点
1:多条指令联合使用
例:nmap -Pn -vv -O IP地址
2:挑选最适合自己的
指令颇多但例如-A等指令费时 ,如若只需单一操作,一条指令便可
3:识别和绕过防火墙和IDS
- -f #数据分片,即将一个正常数据分成几个包(分片大小必须是8的整数倍)
- -D#生成一堆欺骗性的地址的数据包
<decoy1,decoy2[,ME],…>: 用一组IP地址掩盖真实地址,其中ME填入自己的IP地址。 - -S #生成一个欺骗性的地址的数据包 -S <IP_Address> 伪装成其他IP地址
- -e #使用哪种网卡发送
- -g
–date-length #设置数据长度
–ttl #指定TTL
设置扫描的源端口。一些天真的防火墙和包过滤器的规则集允许源端口为DNS(53)或者FTP-DATA(20)的包通过和实现连接。显然,如果攻击者把源端口修改为20或者53,就可以摧毁防火墙的防护。在使用UDP扫描时,先使用53号端口;使用TCP扫描时,先使用20号端口。注意只有在能够使用这个端口进行扫描时,nmap才会使用这个端口。例如,如果你无法进行TCP扫描,nmap会自动改变源端口,即使你使用了-g选项。
4:主机发现和端口扫描参数区分
1>:主机发现
- -Pn:只有该命令将指定的主机视作开启,跳过主机发现的过程用作穿透防火墙
- -PA/-PS/-PU/-PY:使用TCP ACK/SYN/或SCTP INIT/ECHO方式来发现主机
2>:端口扫描
- -sS/-sA/-sF:使用TCP SYN/ACK/FIN扫描,比较隐蔽
- -sU:使用UDP扫描方式确定目标主机UDP端口情况
- -sP:ping扫描,易被发现,可能会漏掉很多实际存活的主机
三:namp的进阶操作
1>:TCP空闲扫描
- 该扫描的目的:冒充网络上的另一台主机对目标主机进行更隐蔽的扫描
- 扫描的前提:在网络上定位一台IP帧标识机制的空闲主机(空闲是指在一段时间内不向网络发送数据包)
- 使用方法:
- ①:先用metasploit找出满足TCP空闲扫描的主机
命令:use auxiliary/scanner/ip/ipidseq
RHOST参数可以设置为一个或多个CIDR地址块(用 ,隔开) - ②:在nmap中用-sI参数指定获取的空闲主机IP地址为你的IP地址去扫描目标IP地址
例:nmap -sI 192.168.11.1 192.168.11.121
192.168.11.1为空闲主机地址,192.168.11.121 为目标主机的地址
- ①:先用metasploit找出满足TCP空闲扫描的主机
2>:nmap的脚本
常用的脚本设置:–script=类别 进行扫描
常见的类别如下:
- auth:绕过鉴权扫描
例:nmap –script=auth 192.168.11.1 - broadcast:在局域网内探查更多服务开启的情况
- brute:对常见的HTTP/SMTP等应用协议提供暴力破解
- dos:用于拒绝服务攻击
- vuln:用于检查目标机是否有常见漏洞
- version:负责增强服务与版本扫描的功能的脚本
- malware:探测目标机是否感染了病毒,开启后门等信息
- fuzzer:模糊测试脚本,发送异常的包到目标机,探测出潜在漏洞
–script-updatedb:脚本更新