Kali Linux 教程:主机存活探测工具-ping、fping

介绍

快速找出网段内开机、在线的主机,是渗透测试信息收集第一步。

1. ping 批量探测原理与实操

原理

ping 底层使用 ICMP 协议(Internet控制报文协议),发送 ICMP Echo Request(类型8)数据包;目标主机在线且防火墙不拦截ICMP时,会回复 ICMP Echo Reply(类型0),以此判断主机存活。

缺点

  1. 单条ping一次只能扫1个IP;批量需要shell循环;
  2. 目标开启防火墙禁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则探测不到;优势:速度快,输出干净。