541 字
3 分钟
arp-scan 工具的工作原理与实践

什么是 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 中:

Terminal window
sudo apt update && sudo apt install arp-scan

常用命令#

扫描本地网络(最常用): 自动识别当前网卡的网段并进行扫描。

Terminal window
sudo arp-scan --localnet

指定网卡与范围: 在拥有多个网卡(如同时存在无线网卡 wlan0 和以太网卡 eth0)的环境下,必须手动指定接口:

Terminal window
sudo arp-scan --interface=eth0 10.0.0.0/24

自定义发包速率与重试: 在网络拥堵或存在丢包时,增加重试次数:

Terminal window
sudo arp-scan --retry=3 --interval=100 192.168.1.0/24

--retry=n:设置每个 IP 的重试次数,应对网络波动导致的丢包。

--interval=ms:设置发包间隔。在高负载网络中,适当增大间隔可避免触发某些简单的网络风暴保护机制。

总结#

arp-scan 凭借其在二层协议上的直接操作,成为了局域网资产发现中最可靠的工具之一。它不仅能发现那些屏蔽了 Ping 的主机,还能通过 MAC 地址直接识别设备背后的厂商背景,为网络安全审计提供了第一手原始数据。

arp-scan 工具的工作原理与实践
https://blog.mal-suen.cn/posts/2020/06/302/
作者
Malcolm
发布于
2020-06-30
许可协议
CC BY-NC-SA 4.0