介绍
快速找出网段内开机、在线的主机,是渗透测试信息收集第一步。
1. ping 批量探测原理与实操
原理
ping 底层使用 ICMP 协议(Internet控制报文协议),发送 ICMP Echo Request(类型8)数据包;目标主机在线且防火墙不拦截ICMP时,会回复 ICMP Echo Reply(类型0),以此判断主机存活。
缺点
- 单条ping一次只能扫1个IP;批量需要shell循环;
- 目标开启防火墙禁ICMP时,ping探测会误判主机离线。
实操
① 单个IP ping测试
ping 192.168.1.100 -c 2
-c 2:发送2个包后停止(Linux ping默认持续发包,不会自动停)
② Shell循环批量ping(扫描网段 192.168.1.0/24)
for i in {1..254}; do ping -c 1 -W 1 192.168.1.$i >/dev/null 2>&1 && echo "192.168.1.$i 存活"; done
参数解释:
{1..254}:遍历主机位1~254-c 1:每个IP只发1个ICMP包-W 1:超时时间1秒,防止卡住>/dev/null 2>&1:屏蔽ping输出,只打印存活IP
特点:原生自带,无需额外安装;速度慢,串行扫描。
2. fping 批量IP探测工具使用
原理
fping 是 ping 的增强批量工具,同样基于ICMP协议。
和shell循环ping最大区别:并发发包,不是串行,扫描速度远快于for循环ping。
工作方式:一次性向多个IP发送ICMP请求,等待回包;不等待单个IP超时结束才下一个。
1. 扫描网段192.168.1.0/24
fping -a -g 192.168.1.1 192.168.1.254
参数:
-g:generate,生成IP范围-a:只输出存活主机IP
2. 读取IP列表文件扫描
新建ip.txt,每行一个IP
192.168.1.1
192.168.1.10
192.168.1.100
fping -a < ip.txt
3. 调整超时、并发数量
fping -a -g 192.168.1.1 192.168.1.254 -t 500 -r 1
-t 500:超时500ms-r 1:重试次数1次
缺点:依赖ICMP,目标防火墙屏蔽ICMP则探测不到;优势:速度快,输出干净。