温馨提示:
本文所述内容具有依赖性,可能因软硬条件不同而与预期有所差异,故请以实际为准,仅供参考。
早上打开网页发现打开速度极其缓慢,最终要么提示响应时间过长,要么元素加载不全网页变形,局域网内其他主机也有反应一直弹出 IP 地址冲突的错误提示,网速也时好时慢,简单分析觉得可能是某台主机中毒了,发起了 ARP 攻击,经排查找出了这台主机并解决,以下做个记录供大家参考。
诊断问题
ARP 攻击最明显的特征就是网关 MAC 地址被 “篡改”,此改非真正的改,而是病毒伪造发出的错误的信息,因此我们可以通过命令 arp -a
来检查一下,如果发现网关的 MAC 地址发生了改变,或者发现有很多 IP 指向同一个物理地址,那么肯定就是 ARP 欺骗所致,这时可以通过 arp -d
清除 arp 列表,再尝试重新访问。
注:本文出现的命令均是指在 Windows 命令提示符里执行的命令,Windows 命令提示符可以在 Windows 菜单 - 附件 找到,或者 Windows 键 + R 调出运行窗口,输入
cmd
回车来开启 Windows 命令提示符。
排查定位
用 arp -d
命令,只能暂时解决网络故障,如果要从根本上解决问题,那么就需要找出中毒的主机,进行隔离、杀毒等操作。
通过上面的 arp -a
命令,可以清楚的看出网关、ARP 缓存里的主机的 IP 及 MAC 地址,如果 一个 MAC 地址对应多个,甚至如果已经确定是 ARP 攻击 ,那么这个 MAC 地址就是中毒的主机的MAC 地址。
现在我们已经知道了中毒主机的 MAC 地址,那么我们如何找到这一台主机呢?
有两种方法:
MAC 地址定位
针对主机数量少的局域网:可以直接在每一台主机上执行 ipconfig /all
命令来找出每一台主机的 MAC 地址,对比一下就很清晰了;
IP 地址定位
针对主机数量多的局域网:如果主机太多了,一台台找过去就太浪费时间了,这个时候我们就可以通过软件 nbtscan
来定位,nbtscan 可以扫描到主机的真实 IP 及 MAC 地址:
C:\>nbtscan.exe -m 192.168.1.1-254
192.168.1.3 WORKGROUP\DBHL8B3G 00:00:00:00:00:00 SHARING
192.168.1.4 WORKGROUP\DBHL8B3X 00:00:00:00:00:0e SHARING
192.168.1.5 WORKGROUP\DBHL8B3D 00:00:00:00:00:00 ?
192.168.1.6 WORKGROUP\DBHL8B3V 00:00:00:00:00:08 SHARING
192.168.1.7 WORKGROUP\DBHL8B35 00:00:00:00:00:02 SHARING
192.168.1.8 WORKGROUP\DBHL8B3N 00:00:00:00:00:07 SHARING
192.168.1.9 WORKGROUP\DBHL8B3X 00:00:00:00:00:0f SHARING
*timeout (normal end of scan)
IP 地址已经找到了,怎么找到对应的主机位置呢?
I、针对有做 DHCP 管理的局域网:在电脑主机上执行 tracert -d vircloud.net
,可以看到第一跳并不是正确的网关地址,而是局域网内另一台主机的 IP,说明第一跳的电脑主机就是罪魁祸首:
G:\>tracert -d vircloud.net
通过最多 30 个跃点跟踪
到 vircloud.net [x.x.x.x] 的路由:
1 <1 毫秒 <1 毫秒 <1 毫秒 192.168.1.5
2 4 ms 6 ms 3 ms 100.73.0.1
......
II、 针对没有做管理的局域网:直接把主机 IP 手动设置为中毒主机的 IP,哪一台主机弹出 IP 冲突提示,就是中毒主机。
处理防范
找到中毒主机后,就需要进行处理了,一般是直接进行杀毒,杀毒后基本上可以解决问题。比较激进的方法则是直接对主机进行格式化后重装系统。
为了避免再次发生,我们还需要做一些处理“
- 安装防毒软件是必要的;
- 在路由器上直接登记好 DHCP 信息,绑定 MAC 和 IP;
- 做好使用规范宣导,如陌生链接不点等等;
- 对主机、网络进行定期点检,及时发现问题。
参考文章:
1、《ARP攻击的原理与防范》