最近由于工作需求,开始对Nmap进行一点研究,主要是Nmap对于主机活跃性的探测,也就是存活主机检测的领域。
Nmap主机探测方法一:同网段优先使用arp探测:
当启动Namp主机活跃扫描时候,Nmap会对目标地址参数进行检查,如果与自身IP地址匹配到同一个子网内,Nmap会对该类目标采用arp协议进行探测。即使命令参数规定的是其他探测手段,也会先使用arp进行探测。这种方式效率高,速度快,但仅限于同一子网广播域中。
arp探测原理:
在广播域内广播arp request报文,例如 who has 192.168.0.1 tell 192.168.1.4(nmap本机ip),收到arp response报文即为活跃。可以得到目标主机mac地址。
1 nmap -R 192.168.1.1 2 nmap -R 192.168.1.0/24 3 nmap 192.168.1.1 4 nmap 192.168.1.0/24
Nmap主机探测方法二:跨网段ICMP协议探测:
ICMP探测一ICMP echo:
常规PING探测,原理即为ping命令一样,但由于ping命令的滥用导致FW或者很多OS都会闲置ping包。特点:速度快,但探测不准确。
测试:执行下文命令 或者-sP换成-sN 都会发送icmp echo 和 icmp timestamp报文。此时DNS114.114.114.114对timestamp有回应(奇怪)。
1 nmap -sP 114.114.114.114
ICMP探测二ICMP timestamp:
nmap发送ICMP timestamp报文,活跃主机会响应该报文,响应报文中包含当前系统时间。该请求ICMP type值13。
测试DNS 114.114.114.114 对icmp echo有回应 对icmp timestamp无回应。-PP只发timestamp报文。
1 nmap -PP 114.114.115.115
ICMP探测三ICMP netmask:
nmap发送ICMP netmask报文,活跃主机会响应该报文,响应报文中包含当前地址掩码。该请求ICMP type值17。
测试DNS 114.114.115.115 对icmp netmask无回应。
1 nmap -PM 114.114.115.115
Nmap主机探测方法三:TCP探测:
如同常见的端口扫描原理,syn类的,ack类的,fin类的,空扫描等等。通过回应报文判断主机是否活跃。
1 nmap -sT 114.114.114.114 #TCP connect scan[three hand-shakes] 2 nmap -sS 114.114.114.114 #TCP SYN scan[syn->recv ack] 3 nmap -sA 114.114.114.114 #TCP ACK scan 4 nmap -sW 114.114.114.114 #TCP Window scan 5 nmap -sM 114.114.114.114 #TCP Maimon scan 6 nmap -sN 114.114.114.114 # TCP Null scan 7 nmap -sF 114.114.114.114 #TCP FIN scan
Nmap主机探测方法四:UDP探测:
UDP探测原理是根据活跃主机对未开放的端口会响应一个ICMP不可达报文来判断的。
1 nmap -PU 114.114.114.114#默认发送空UDP报文到40125端口 2 nmap -sU 114.114.114.114 -p 44444 #-p 指定端口 3 nmap -sU 114.114.114.114 -p 53 -Pn #-Pn 绕过ping扫描
Nmap主机探测方法五:IP探测:
发送空的也可以指定负载大小的IP报文,可能收到响应报文为ICMP不可达报文。
1 nmap -sO 114.114.114.114 2 nmap -PO 114.114.114.114