默认主机发现扫描
Nmap 会发送一个 ICMP echo 请求,一个 TCP SYN 包给 443 端口,一个 TCP ACK 包给 80 端口和一个 ICMP 时间戳请求
这就等价于使用命令 nmap -PE -PS443 -PA80 -PP 192.168.0.1-255
此命令返回一个 IP 地址段中活动的主机,及其 IP 地址,主机域名,开启的服务以及相应的端口,MAC 地址等信息
其它命令
open(开放的)
应用程序正在该端口接收TCP 连接或者UDP报文。
closed(关闭的)
关闭的端口对于Nmap也是可访问的(它接受Nmap的探测报文并作出响应), 但没有应用程序在其上监听。
filtered(被过滤的)
由于包过滤阻止探测报文到达端口, Nmap无法确定该端口是否开放。
过滤可能来自专业的防火墙设备,路由器规则 或者主机上的软件防火墙。
unfiltered(未被过滤的)
未被过滤状态意味着端口可访问,但Nmap不能确定它是开放还是关闭。
只有用于映射防火墙规则集的ACK扫描才会把端口分类到这种状态。
用其它类型的扫描如窗口扫描,SYN扫描,或者FIN扫描来扫描未被过滤的端口可以帮助确定 端口是否开放。
open|filtered(开放或者被过滤的)
当无法确定端口是开放还是被过滤的,Nmap就把该端口划分成 这种状态。
开放的端口不响应就是一个例子。没有响应也可能意味着报文过滤器丢弃 了探测报文或者它引发的任何响应。
因此Nmap无法确定该端口是开放的还是被过滤的。 UDP,IP协议, FIN,Null,和Xmas扫描可能把端口归入此类。
closed|filtered(关闭或者被过滤的)
该状态用于Nmap不能确定端口是关闭的还是被过滤的。 它只可能出现在IPID Idle扫描中。
TCP连接扫描
使用操作系统的网络连接系统调用 connect(),对目标主机发起 TCP 三路握手,待完成后 Nmap 立即中断此次连接。
Nmap 通过获取每个尝试连接的状态信息来判定侦测端口的状态
SYN扫描
Nmap 产生一个 SYN 数据报文,如果侦测端口开放并返回 SYN-ACK 响应报文
Nmap 据此发送 RST 报文给侦测端口结束当前连接,这样做的好处在于缩短了端口扫描时间
UDP扫描
UDP 本身是无连接的协议,Nmap 向目标主机的端口发送 UDP 探测报文
如果端口没有开放,被侦测主机将会发送一个 ICMP 端口不可到达的消息
Nmap 根据这个消息确定端口闭合(closed)或者被过滤 (unfiltered)
通常没有回复意味着端口是开放(open)状态 。
ACK扫描
这种扫描比较特殊,它不能确切知道端口的基本状态,而是主要用来探测防火墙是否存在以及其中设定的过滤规则
FIN扫描
和 SYN 扫描相比,这种方式更为隐蔽,因此能够穿过防火墙的过滤
关闭(closed)端口将会返回合适的 RST 报文,而开放端口将忽略这样的侦测报文
具备类似防火墙不敏感特性的还有 -sN NULL 扫描,-sX X-mas 扫描。