目前,由于子网划分不合理,机房技术又经常帮不上忙,南通机房特别容易遭受arp攻击。由于arp协议本身的缺陷,要彻底避免arp攻击,唯一的方法就是对IP,MAC地址进行双向绑定,当这对于我们的云服来说,显然不现实,目前,只有我们的宿主机进行了双向绑定。

首先要明白,所有arp攻击前,例如使用著名的arp攻击软件Cain,必须先整个网段扫描下,看下当前有哪些IP和MAC,一旦他们扫描之后,所有的服务器arp缓存就会有记录,可以通过arp -a进行查看。例如,58.221.65段有用户举报上不了网,疑似有arp攻击,我们就用宿主机58.221.65.2为例,运行arp -a。

C:\Users\Administrator>arp -a

接口: 58.221.65.2 — 0x13
Internet 地址 物理地址 类型
58.221.65.1 4c-1f-cc-17-fa-c3 静态
58.221.65.65 00-24-e8-63-7f-21 动态
58.221.65.66 00-15-5d-c5-47-3a 动态
58.221.65.67 00-15-5d-c5-47-3b 动态
58.221.65.255 ff-ff-ff-ff-ff-ff 静态
224.0.0.22 01-00-5e-00-00-16 静态
224.0.0.252 01-00-5e-00-00-fc 静态

可以看到进行过arp解析的所有地址。再用58.221.65.129看下:

C:\Users\Administrator>arp -a

接口: 58.221.65.129 — 0x13
Internet 地址         物理地址              类型
58.221.65.1           4c-1f-cc-17-fa-c3     静态
58.221.65.2           00-24-e8-7e-31-2c     动态
58.221.65.49          00-15-5d-c5-46-50     动态
58.221.65.65          00-24-e8-63-7f-21     动态
58.221.65.66          00-15-5d-c5-47-3a     动态
58.221.65.67          00-15-5d-c5-47-3b     动态
58.221.65.193         00-24-e8-74-cf-34     动态
58.221.65.255         ff-ff-ff-ff-ff-ff     静态
224.0.0.22            01-00-5e-00-00-16     静态
224.0.0.252           01-00-5e-00-00-fc     静态

可以看到,65,66,67都和宿主机发生过arp通信,其中65是宿主机,mac又是正常的,排除。

arp攻击最重要的一个特征就是,arp攻击源会冒充网关IP,来截取网络通信等内容,所以单看这个只能是怀疑,要看谁在冒充网关才是比较可靠的做法。我们的宿主机已经双线绑定了,arp攻击源是无法攻击的,所以无法看到谁在冒充网关。我们需要进入断网的服务器内部看看。

我们进入某个客户的服务器,同样运行arp -a

C:\Documents and Settings\Administrator>arp -a

Interface: 58.221.65.68 — 0x10003
Internet Address      Physical Address      Type
58.221.65.1           00-15-5d-c5-47-3a     dynamic

我们的网关地址当然不是0015开头的那种,基本可以确认是00-15-5d-c5-47-3a这个mac地址的服务器在攻击了。再看看之前的宿主机的arp -a的内容,是不是有点熟悉,攻击源是58.221.65.66!

请注意,高明的arp攻击不是持续的,所有有时候进去看的时候,arp -a只有一个网关地址,且是正确的,可以用arp -d命令清除下缓存,再ping一次网关IP,再用arp -a看一次,如果正在攻击,肯定可以看出来!

C:\Documents and Settings\Administrator>arp -d

C:\Documents and Settings\Administrator>arp -a

Interface: 58.221.65.67 — 0x20003
Internet Address      Physical Address      Type
58.221.65.1            4c-1f-cc-17-fa-c3     dynamic

C:\Documents and Settings\Administrator>ping 58.221.65.1

Pinging 58.221.65.1 with 32 bytes of data:

Reply from 58.221.65.1: bytes=32 time=2ms TTL=254
Reply from 58.221.65.1: bytes=32 time=1548ms TTL=254
Reply from 58.221.65.1: bytes=32 time=3998ms TTL=254
Reply from 58.221.65.1: bytes=32 time=3ms TTL=254

Ping statistics for 58.221.65.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 2ms, Maximum = 3998ms, Average = 1387ms

C:\Documents and Settings\Administrator>arp -a

Interface: 58.221.65.67 — 0x20003
Internet Address      Physical Address      Type
58.221.65.1           00-15-5d-c5-47-3a     dynamic

知道为什么上面第一次执行的时候,获取的网关mac是正常的吗?因为清除缓存后,第一次获取的网关IP本来就是正确的,这时候ping网关IP,延时很小,突然延时达到上千,这是因为arp攻击源正在攻击,替换了正确的mac地址,再次用arp -a查看,发现mac地址已经被篡改了!

注意:arp -d命令严禁在宿主机执行,这会清除之前的IP和mac的绑定!!


上面是最顺利的情况,大部分情况下都没问题了。有些高级点的arp攻击,可以判断哪些机器已经双向绑定,会选择性的攻击一些特定的IP段,不是所有机器都攻击,所以我们再宿主机中可能没有对应的arp的记录。而受攻击的服务器刚好在我们检查的时候,网络恢复正常了,这时候可以借助netscan这个工具:
arp到被攻击的服务器中,下载这个工具;要是被攻击的服务器没网络的话,先把被攻击的服务器关机,通过挂盘把这个小软件拷贝进用户D盘;或者把被攻击服务器关机,把我们的vhdx模板复制到备份盘,新建一个虚拟机,配置上原先被攻击的IP,运行工具扫描整个ip段:
arp2

点击start Scanning,会得出一大串IP和对应的MAC地址,我们按mac地址进行排序,重点看看网关的mac地址和一些重复的mac地址!
arp3看看,基本确定是66,67,68中的某一台在攻击了,有时候运气好只有两个重复的话,直接就找出攻击者的IP了。

这时候,根据mac地址范围,就可以去对应的服务器找了。找的方法,可以把上面几个可以的IP在系统后台中查找,现在的星外系统最右边一栏可以显示mac地址的。

或者根据每一台云服务器里面的服务器的mac地址都有对应的范围的,这里有个表对应下:
ftp://58.221.61.130/知识库/云服务器mac地址范围统计.xlsx
选中具体的服务器,点击下面的网络标签,一个个上下选定进行逐个查看。
arp4找到攻击源后立即断网,再在后台暂停。

有些arp攻击停止后,用户会出现断网的情况。原因是,大量的arp攻击会冒充网关,劫持用户数据,这时候攻击的机器就起到网关的作用,用户还可能能上网。如果arp攻击突然中断,用户的arp表会正常,但arp缓存还在生效,会上不了网。连网关也ping不通,ping百度等url更是不可能。这时候,可以在cmd中输入arp -d,清除arp缓存,这时候网就会通了。如果有客户网络不通,arp -a显示的网关地址是正常的,你一执行arp -d网络就正常了,说明他曾遭受过arp攻击,需要安装arp防护软件了!我们也必须把这个潜伏的arp攻击源找出来!

局域网arp攻击的简单排查过程

One thought on “局域网arp攻击的简单排查过程

  • 2015年11月11日 at 16:04
    Permalink

    最上面的是攻击软件,不是例如使用著名的arp攻击攻击Cain。。。改掉吧

    Reply

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注