)
5个实战工具帮你揪出内网ARP欺骗攻击附详细配置步骤当企业内网突然出现频繁断网、访问延迟或数据泄露时很多网管首先会检查防火墙和路由配置却常常忽略了一个潜伏在二层网络的隐形杀手——ARP欺骗。这种攻击不需要破解密码只需伪造几个数据包就能让整个局域网陷入混乱。去年某零售企业的收银系统集体瘫痪溯源发现竟是内部员工用手机上的开源工具发起的ARP欺骗。1. 基础检测Arpwatch被动监听与告警Arpwatch就像网络中的门禁摄像头持续记录所有设备的MAC-IP对应关系。我在某次排查中曾发现日志里同一IP在3分钟内出现了5个不同MAC地址最终定位到市场部一台被植入恶意软件的电脑。安装与基础配置# Ubuntu/Debian系统安装 sudo apt update sudo apt install arpwatch -y # 指定监控网卡通常为eth0或ens33 sudo nano /etc/default/arpwatch INTERFACESeth0 # 启动服务 sudo systemctl enable --now arpwatch关键配置项说明配置参数推荐值作用说明ARPCHECK_INTERVAL300检测间隔(秒)FLIPFLOP_INTERVAL3600相同IP-MAC变更告警冷却时间SENDMAIL/usr/sbin/sendmail告警邮件发送路径提示生产环境建议将日志重定向到独立分区避免/var/log爆满导致系统异常典型告警日志分析Jul 15 09:23:45 firewall arpwatch: flip flop 192.168.1.105 00:0c:29:xx:xx:xx (00:1a:2b:xx:xx:xx)这表示IP 192.168.1.105的MAC在短时间内在两个地址间反复切换极可能是ARP欺骗的特征。2. 主动扫描arp-scan全网探测技术被动监听可能漏掉精心设计的慢速攻击这时就需要arp-scan这种主动探测工具。它就像网络雷达能瞬间绘制出整个局域网的设备地图。高级扫描技巧# 基础扫描需root权限 sudo arp-scan -I eth0 -l # 带厂商识别的详细扫描 sudo arp-scan -I eth0 -l --timeout200 --retry3 --ignoredups # 定期扫描并差异对比保存到文件 sudo arp-scan -I eth0 -l scan_$(date %F).txt diff scan_2023-07-01.txt scan_2023-07-02.txt常见问题处理扫描无结果检查网卡是否混杂模式sudo ip link set eth0 promisc on结果不完整调整超时参数--timeout500虚拟环境异常添加--localnet参数扫描结果示例分析192.168.1.1 00:11:22:33:44:55 Cisco Systems 192.168.1.105 00:0c:29:aa:bb:cc VMware (真实主机) 192.168.1.105 00:1a:2b:dd:ee:ff (未知厂商) -- 异常记录当同一个IP对应多个MAC时第二个记录极可能是欺骗设备。3. 深度分析Wireshark抓包取证当发现可疑迹象后需要用Wireshark进行流量取证。去年某次应急响应中我们通过分析ARP包中的时间戳成功定位到攻击者是在每天上午10点准时发起攻击。关键过滤表达式arp.opcode 2 !(eth.src gateway_mac) # 筛选非网关发出的ARP响应 arp.src.hw_mac ! arp.dst.hw_mac # 源目MAC不一致的ARP包分析要点查看ARP响应包的源MAC是否与网关一致检查ARP请求是否异常频繁正常网络每分钟5次注意Gratuitous ARP免费ARP报文注意在交换机环境下需配置端口镜像才能捕获全网流量典型攻击流量特征No. Time Source Destination Protocol Info 123 10:00:00 192.168.1.99 ff:ff:ff:ff:ff ARP 192.168.1.1 is at 00:01:02:03:04:05 124 10:00:01 192.168.1.99 ff:ff:ff:ff:ff ARP 192.168.1.1 is at 00:01:02:03:04:05 125 10:00:02 192.168.1.99 ff:ff:ff:ff:ff ARP 192.168.1.1 is at 00:01:02:03:04:05这种高频率的ARP宣告很可能是攻击行为。4. 联动防御交换机端口隔离方案检测到攻击后需要立即实施防御措施。以华为S5700交换机为例配置命令system-view arp anti-attack entry-check enable # 启用ARP表项检查 interface gigabitethernet 0/0/1 port-security enable # 启用端口安全 port-security max-mac-num 1 # 限制学习MAC数量 stp bpdu-protection # 防环路保护防御效果对比措施类型实施难度防护效果对业务影响端口隔离★★★☆☆★★★★★★☆☆☆☆DAI检测★★★★☆★★★★☆★★☆☆☆ARP绑定★★★★★★★★★★★★★☆☆重要实施前先在测试环境验证避免误封正常设备5. 自动化监控Python检测脚本开发对于需要定制化监控的场景可以用Python编写检测脚本。这是我用过最有效的一个版本#!/usr/bin/env python3 from scapy.all import ARP, Ether, sniff import time KNOWN_DEVICES { 192.168.1.1: 00:11:22:33:44:55, 192.168.1.2: 00:0c:29:aa:bb:cc } def arp_monitor(pkt): if pkt[ARP].op 2: # ARP响应 ip pkt[ARP].psrc mac pkt[ARP].hwsrc if ip in KNOWN_DEVICES: if KNOWN_DEVICES[ip] ! mac: alert_msg f[!] ARP欺骗告警 {time.ctime()}\n alert_msg fIP: {ip}\n alert_msg f原MAC: {KNOWN_DEVICES[ip]}\n alert_msg f新MAC: {mac} print(alert_msg) # 这里可以添加邮件/短信告警代码 print([*] 开始ARP监控...) sniff(prnarp_monitor, filterarp, store0)脚本优化建议添加企业微信/钉钉告警接口结合SMTP实现邮件通知增加日志轮转功能对持续攻击自动调用防火墙API阻断6. 企业级防护架构设计对于大型网络建议采用分层防御体系[接入层] │─ 端口安全 │─ DHCP Snooping │ [汇聚层] │─ 动态ARP检测(DAI) │─ IP源防护 │ [核心层] │─ ARP表项限制 │─ 流量审计实施路线图第一阶段部署Arpwatcharp-scan基础监控第二阶段配置交换机DAI和端口安全第三阶段部署网络流量分析(NTA)系统第四阶段建立自动化应急响应流程某制造业客户实施后ARP欺骗事件从每月5-6次降为零网络故障率下降40%。