在Nmap中的端口扫描方式中,所有的扫描选项都是以-s<X>形式出现的。比如ACK扫描的-sA,UDP扫描的-sU
Nmap扫描结果中的端口状态
一共有下面6种:
- OPen
说明此端口对外为开放状态
Closed
Filtered
Nmap无法判断目标端口是否开发。出现此种现象可能的原因有两个:
- Nmap的扫描被防火墙或者网络路由器的某种规则给阻挡了。
- 网络堵塞。这种情况下,可以分时间段进行扫描。
- Unfiltered
未被过滤状态,意味着端口可以访问。但Nmap目前无法判断端的开闭状态。
目标端口的开闭与端口是否可以访问并无太大的联系,关闭的端口也可以接收Nmap发送的探测报文
- Open|Filtered
无法确定端口是开发的还是被过滤的
- Closed|Filtered
无法确定端口是关闭的还是被过滤的。这种情况只可能出现在IPID Idle中。
-T选项
时序选项一共有6种,一般配合-F选项使用。
- -T0(偏执的):非常慢的扫描,用于IDS逃避
- -T1(鬼祟的):缓慢的扫描,用于IDS逃避
- -T2(文雅的):降低速度以降低对带宽的消耗,此选项一般不常用
- -T3(普通的):默认,根据目标的反应自动调整时间
- -T4(野蛮的):快速扫描,常用扫描方式,需要在很好的网络环境下扫描
- -T5(疯狂的):极速扫描,这种扫描方式以牺牲准确度来提升扫描速度
-p选项
可以指定扫描端口,使用格式如下:
nmap -p 445
nmap -p 445-1000
-F选项
快速扫描默认端口。在nmap的nmap-service文件中指定了默认扫描端口。自己也可以使用--datadir选项指定自己的nmap-service文件
-sW选项
该选项可以启动窗口扫描,即windows扫描。这里的windows不是指的是操作系统,而是扫描方式。它通过检查返回的RST报文的TCP窗口域判断目标端口是否是开放的。
开放端口用正数表示窗口大小,关闭端口的窗口大小为0.当收到RST报文时,根据TCP窗口的值是正数还是0来判断目标端口的开闭状态。
- -sS这个选项是这样的:
目标主机关闭,nmap向目标主机发送一个SYN包,请求连接,如果接收到RST包,则表面无法连接目标主机,即端口关闭。
目标主机端口开放,namp向目标主机发送一个SYN包,请求连接,目标主机接收到请求后会响应一个SYN/ACK包。当nmap收到目标主机的响应后,向目标主机发送一个RST替代ACK包,连接结束。
-sT选项
当SYN扫描(即-sS)不能使用的时候,进行TCP连接扫描。
-sI选项
空闲扫描,允许端口进行完全欺骗扫描。可以使攻击者能够不使用自己的IP向目标主机发送数据包,它可以利用不活跃的僵尸主机反弹给攻击者一个旁通信道,从而进行端口扫描。IDS不会把不活跃的僵尸主机当作攻击者,这是一种非常隐蔽的扫描方法。
nmap -sI www.test.com:8080 192.168.21.2
上面的命令将test主机作为扫描主机对192的IP进行扫描。192的IDS会把test当作扫描者。