什么是 arp-scan?
arp-scan 是一款在 Linux/Unix 环境下使用的命令行工具,专门用于通过 ARP (Address Resolution Protocol) 协议探测本地局域网。由于它运行在 OSI 七层模型的第二层(数据链路层),它能够绕过防火墙的 ICMP 拦截,发现那些“隐身”的活跃设备。
工作原理
在以太网中,设备之间通信最终依赖的是 MAC 地址 而非 IP 地址。arp-scan 会向目标范围内的每一个 IP 地址发送一个 ARP Who-has 查询包。
根据协议规定,任何拥有该 IP 的设备必须回复一个包含其 MAC 地址的 ARP 响应包(ARP Reply)。这种响应通常是内核层面的自动行为,大多数主机防火墙(如 Windows Firewall)不会拦截它,因为拦截了就没法上网了。
arp-scan 接收这些响应,记录下对应的 MAC 地址,并根据其内置的 OUI(组织唯一标识符)数据库,识别出该网卡是由哪家厂商(如 Apple, Huawei, Cisco)生产的。
安装与实战用法
安装
在 Debian/Kali/Ubuntu 中:
sudo apt update && sudo apt install arp-scan
常用命令
扫描本地网络(最常用): 自动识别当前网卡的网段并进行扫描。
sudo arp-scan --localnet
指定网卡与范围: 在拥有多个网卡(如同时存在无线网卡 wlan0 和以太网卡 eth0)的环境下,必须手动指定接口:
sudo arp-scan --interface=eth0 10.0.0.0/24
自定义发包速率与重试: 在网络拥堵或存在丢包时,增加重试次数:
sudo arp-scan --retry=3 --interval=100 192.168.1.0/24
--retry=n:设置每个 IP 的重试次数,应对网络波动导致的丢包。
--interval=ms:设置发包间隔。在高负载网络中,适当增大间隔可避免触发某些简单的网络风暴保护机制。
总结
arp-scan 凭借其在二层协议上的直接操作,成为了局域网资产发现中最可靠的工具之一。它不仅能发现那些屏蔽了 Ping 的主机,还能通过 MAC 地址直接识别设备背后的厂商背景,为网络安全审计提供了第一手原始数据。