http://blog.xfocus.net - 选录

遭遇局域网超级杀手

2005-05-17链接

下午同事打电话来,说有一台机器可能被入侵了,大量往外发广播包,流量惊人,整个网络彻底瘫痪。但是机器上检查不出问题,一家反病毒公司的工程师也去看过了,没找出问题,只说不是病毒引起的。 我于是抄起工具就去了。 到了那里一看,机器是XP SP2,补丁都全的,还装了某个牌子的杀毒软件。机器一启动,就有七八十兆的流量——全是ARP和UDP的广播包,sniffer抓包显示,源IP和源MAC都是这台机器的。 我想了半天,没想出什么已知的蠕虫和木马会干这种无聊的事情。只好开始啃系统。先作了常规检查,根据以往的经验,百分之九十五以上的入侵事件在三十分钟内一定可以找出根源。如果三十分钟找不出来,那可能就要花三个小时或者更多的时间。 三十分钟过去了,没找出来。我有点着急,因为我妈来北京旅游了,说好晚上一起吃饭。 我在应用层把每个进程手工检查了一遍,一些主要进程还作了线程分析,都没问题。系统像圣母玛丽亚一样贞节,连个3721都没有。 然后又检查内核……还是没发现问题…… 这时候我妈打电话过来了,说已经到了公司楼下,可是这边还一点头绪都没有,甚至不能判断机器到底有没有被入侵。我只好让她先到我们办公室去等,小四和star他们都认识我妈,可以替我招呼。 我脸上还很镇定,脑门上多少有点汗。以前做客服从未失过手,保持三年的完美全胜纪录,不能今天栽在这里,坏了名声。可是问题究竟出在哪里呢? 如果说是正常应用导致的,但是我没有捕捉到任何发送ARP包的调用,把所有应用都停了也不见效果。那么是不是入侵呢 ?我对自己啃系统的技术还是有点自信的,不过毕竟山外有山人外有人,难道遇到世外高人了?但是写一个隐藏如此之深的后门要花费大量心血,谁会无聊到拿来发广播包玩? 这时候我注意到一个问题,系统接受到的ARP包数量远大于发送的,差不多是25000倍。如果这些ARP包真的是这台机器发送的,那么这个比率最多是三位数。那么是别的机器伪装这台机器发送的?我们把HUB(上面写的是交换机,客户说是HUB)上另两个水晶头都拔了,只保留这台机器。果然,数据包就停了。然后插上一个水晶头,没事;再插上一个,数据包又来了。忽然发现,原来另两个水晶头居然是同一个网线的两端!!! 先不管那是交换机还是HUB,我们将那台XP的水晶头称为A,那根网线的两头分别为B和C。A连到网络上必然会发送广播包,现在这个广播包被B收到了,然后以光速顺着网线通过C又发送出来,因为是广播包,所以每个口都能收到,自然也包括A和B,然后B又通过C发出来……死循环就这么出现了。只要有任何一个广播包作为种子,就会被无限制的复制。世界上最快的发包器也快不过一根网线呀。 忙了一下午,被根网线给玩了。不过也学了一招,这种发包方法也许可以拿来做压力测试。 七点半回到公司,我妈已经等了很久了。晚上带她吃水煮鱼补偿一下。