Kali Linux 教程:主机存活探测工具详解 作者:马育民 • 2026-09-28 18:49 • 阅读:10001 # 介绍 快速找出网段内开机、在线的主机,是渗透测试信息收集第一步。 # 1. ping 批量探测原理与实操 ### 原理 `ping` 底层使用 **ICMP 协议**(Internet控制报文协议),发送 ICMP Echo Request(类型8)数据包;目标主机在线且防火墙不拦截ICMP时,会回复 ICMP Echo Reply(类型0),以此判断主机存活。 ### 缺点 1. 单条ping一次只能扫1个IP;批量需要shell循环; 2. 目标开启防火墙禁ICMP时,ping探测会误判主机离线。 ### 实操 #### ① 单个IP ping测试 ```bash ping 192.168.1.100 -c 2 ``` `-c 2`:发送2个包后停止(Linux ping默认持续发包,不会自动停) #### ② Shell循环批量ping(扫描网段 192.168.1.0/24) ```bash 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. arp-scan 局域网存活主机扫描 ### 关键提示 使用VMware等虚拟机按照Kali,需要修改网络才能使用该命令扫描主机:网络适配器改为 `桥接模式`,推荐插网线,因为无线网卡有限制,可能无法正常使用 ### 原理 ARP(地址解析协议):**二层协议,工作在局域网,不依赖ICMP**。 arp-scan 发送ARP请求广播包,询问网段内所有主机:`谁的IP是xxx,请把你的MAC地址发给我`。只要主机在同一局域网、网卡启用,**就算防火墙禁ping,依然会回复ARP**。 ✅ 局域网探测首选,准确率高于ping; ❌ 不能跨路由扫描(ARP广播无法穿过路由器)。 ### 安装(新版Kali一般自带,没有就安装) ```bash apt update && apt install arp-scan ``` ### 常用实操命令 1. 扫描本机所在网卡全部局域网 ```bash arp-scan -l ``` `-l`:local,扫描本机网卡对应的整个网段 2. 指定网段扫描 ```bash arp-scan 192.168.1.0/24 ``` 3. 指定网卡扫描(多网卡场景) ```bash arp-scan -I eth0 192.168.1.0/24 ``` `-I eth0`:指定使用eth0网卡发包 4. 输出结果说明 ``` 192.168.1.1 aa:bb:cc:dd:ee:ff TP-LINK TECHNOLOGIES CO.,LTD. ``` 字段:`IP地址 | MAC地址 | 网卡厂商`,可以直接识别设备品牌。 > 注意:arp-scan 需要root权限,必须加sudo。 ```bash sudo arp-scan -l ``` --- # 3. fping 批量IP探测工具使用 ### 原理 fping 是 ping 的增强批量工具,同样基于ICMP协议。 和shell循环ping最大区别:**并发发包,不是串行**,扫描速度远快于for循环ping。 工作方式:一次性向多个IP发送ICMP请求,等待回包;不等待单个IP超时结束才下一个。 ### 1. 扫描网段192.168.1.0/24 ```bash fping -a -g 192.168.1.1 192.168.1.254 ``` 参数: - `-g`:generate,生成IP范围 - `-a`:只输出存活主机IP ### 2. 读取IP列表文件扫描 新建ip.txt,每行一个IP ```txt 192.168.1.1 192.168.1.10 192.168.1.100 ``` ```bash fping -a < ip.txt ``` ### 3. 调整超时、并发数量 ```bash fping -a -g 192.168.1.1 192.168.1.254 -t 500 -r 1 ``` - `-t 500`:超时500ms - `-r 1`:重试次数1次 缺点:依赖ICMP,目标防火墙屏蔽ICMP则探测不到;优势:速度快,输出干净。 --- # 4. 全网段主机探测实战技巧 > 全网段:如 /24、/22、/16 大网段,综合使用多种探测手段,弥补单一协议缺陷。 ### 4.1 工具选型策略 1. **局域网内优先 arp-scan**:二层ARP,不受ICMP防火墙限制,准确率最高; 2. **跨网段/三层网络**:fping、nmap ICMP探测;ARP无法跨路由; 3. **ICMP被封禁场景**:不能只用ping/fping,改用**TCP/UDP探测**(例如nmap -sn,除ICMP外还会尝试TCP SYN包探测)。 ### 4.2 Nmap 主机存活探测(实战最常用,补充) ```bash nmap -sn 192.168.1.0/24 ``` `-sn`:不进行端口扫描,只做主机存活检测(Ping Sweep) 原理组合:ICMP + TCP SYN包到80/443等常用端口,多重探测,绕过单纯禁ICMP场景。 ### 4.3 实战技巧汇总 ##### 1. **分层探测思路** - 第一步:arp-scan(局域网二层,抓存活主机+MAC) - 第二步:fping/nmap -sn 三层ICMP+TCP探测,补充跨网段 - 第三步:对没有响应的IP,不能直接判定离线,可能是防火墙拦截ICMP ##### 2. **输出保存,方便后续分析** ```bash # arp-scan结果保存 sudo arp-scan -l > arp_result.txt # fping存活IP保存 fping -a -g 192.168.1.1 192.168.1.254 > alive_ip.txt ``` ##### 3. **避坑要点** - ICMP限速:部分设备限制ICMP响应,会造成丢包误判; - 云主机/服务器:公网服务器大多禁ICMP,**ping/fping失效,必须用TCP存活探测**; - 不要高频大量发包:容易触发IDS/IPS告警,造成网络风暴;调小并发、增大超时; - 区分:ARP只能同网段;ping/fping/nmap支持跨路由三层探测。 ##### 4. **组合实战命令示例(靶场内网)** ```bash # 1. arp扫描局域网 sudo arp-scan 192.168.1.0/24 > arp_alive.txt # 2. fping批量ICMP探测 fping -a -g 192.168.1.1 192.168.1.254 > icmp_alive.txt # 3. nmap多协议存活探测(推荐) nmap -sn 192.168.1.0/24 -oN nmap_alive.txt ``` # 工具对比 |工具|协议|适用场景|优点|缺点| | ---- | ---- | ---- | ---- | ---- | |ping(for循环)|ICMP|小范围测试|系统自带|串行,速度慢,ICMP被墙失效| |arp-scan|ARP二层|局域网同网段|防火墙禁ping也能扫,拿到MAC|不能跨路由器| |fping|ICMP|批量三层网段|并发高速扫描|依赖ICMP,禁ICMP失效| |nmap -sn|ICMP+TCP|内网/公网|多协议探测,容错强|扫描速度略慢于fping| 原文出处:/show_1GW48OSWDVHV.html