一.基础概念
四层发现的目的是扫描出可能存活的IP地址,四层发现虽然涉及端口扫描,但是并不对端口的状态进行精确判断,其本质是利用四层协议的一些通信来识别主机ip是否存在。
四层发现的优点
- 可路由且结果可靠;
- 不太可能被防火墙过滤,甚至可以发现所有端口都被过滤的主机。[一些比较严格的防火墙还是会过滤掉]
缺点:是基于状态过滤的防火墙可能过滤扫描;全端口(UDP+TCP十几万个端口)扫描的速度慢。
TCP/UDP区别
1.TCP探测【基于特征】
tcp连接是通过三次握手建立通信过程。
- 未经请求的ACK[直接发一个ACK],活着的主机会回一个RST包;宕机主机不会回包
- 直接发一个SYN包,活着的主机会回一个SYN/ACK包[则端口打开],回RST[端口关闭];
2.UDP探测【基于特征】
- 一种非连接的不可靠传输协议,会尽力转发包
- 如果目标主机不在线,不回包;如果目标端口开启,也可能不回包[若有DNS查询指令内容会响应,除非构造完整的UDP数据包,但不可行];当主机在线,发包到其没开放的端口,会回应ICMP端口不可达,则表明其主机在线
二.工具使用
1.nmap(速度快,但受少部分情况限制,总而言之,适合大多数)
在三四层扫描,处于无敌状态
UDP扫描:nmap 1.1.1.1-254 -PU53 -sn #-P U:UDP端口
ACK扫描:nmap 1.1.1.1-254 -PA80 -sn #ACK
指定地址列表:nmap -iL iplist.txt -PA80 -sn
-PE/PP/PM/PO……
2.Hping3
UDP
hping3 --udp 192.168.1.1 -c 1
for addr in $(seq 1 254); do hping3 –udp 1.1.1.$addr -c 1 >> r.txt; done
cat r.txt | grep Unreachable | cut -d " " -f 5 | cut -d "=" -f 2
TCP
hping3 196.168.1.1 -c 1