四层主机发现主要就是指 TCP 和 UDP 协议进行发现了,四层发现较三层发现来说结果更加可靠,被防火墙拦截的可能性也相对较小,不过速度相应的就会慢下来
PS:在讲原理之前需要先明确一下,我们要进行的是主机发现,而不是端口开放扫描
Tcp
Tcp 主要有两种检测方式
1. 发送ACK 包,如果目标主机返回RST包,说明主机存活
2. 发送SYN 包进行正常的连接,如果返回SYN + ACK或者RST 说明主机存活
UDP
UDP 进行主机发现比较有特点,只需要向目标的一个陌生端口发送UDP包,如果端口不开放会返回一个icmp的端口不可达,从而判断主机存活。
Hping3
Tcp : hping3 192.168.1.1 –c 1
抓包看一下我们发现,hping3发的包与我之前所讲的并不一致,hping3采用的是发没有任何置位的TCP包,根据是否回应来判断
UDP: hping3--udp 192.168.1.1 -c 1
可以惊奇的发现,hping3采用的是对目标的0 号端口进行发送UDP包,最终判断目标主机是不存活的,显然是不准确的。
Nmap
Tcp:
nmap 220.123.4.1-254 -PA80 –sn
主机存活
UDP
nmap 220.123.4.1-254 -PU53 -sn
udp 检查的结果是主机没有存活
至此主机发现的工具就介绍完了,其实我在最开始时候就说了,nmap所有的这些都可以做到,对于我个人来说也是最喜欢用nmap,所以大家应该严格的掌握一下nmap的互留使用方法。