返回顶部

色情网站的光棍节“福利”:加密式挂马玩转流氓推广

结语:
攻击者对相关加密算法比较了解,选用了较为少见的Rabbit对称加密算法;攻击者具备一定的前端开发经验,代码容错性强,兼容性高了;后台不再是静态文件,而采用了动态生成内容,生成的网址也是一次性的;所有的js代码均经过了混淆变量的操作。
攻击者逐步开始学习国外流行Exploitkit的做法,动态生成攻击页面,并对漏洞利用代码加密,防止网关过滤和流量包重放分析,加大了分析难度,也有助于保密攻击代码。
对于普通用户建议应该尽量避免使用外挂辅助、避免点击伪装色情网站的恶意广告、开启安全软件进行防护。

 

 

https://bbs.safewiki.org/thread-141-1-1.html

 

 

 

 

最近,360安全中心监测到一起网站弹窗广告挂马事件,弹出的网络广告出现挂马,广告内容以同城交友等伪装色情诱惑信息为主,通过对整个挂马攻击的过程分析发现该挂马脚本以及攻击负载(Payload)在通过中招者网络时进行加密,并在最后阶段通过进行解密执行。攻击负载甚至还利用regsrv32实用程序执行一个.sct文件来绕过AppLocker的脚本规则。
下面就对该挂马木马进行简单分析:

通过监控追踪发现主要来源于外挂以及色情网站的自动弹窗广告,用户使用此类外挂自动弹出同城交友广告或浏览某些色情网站就可能触发带漏洞攻击的页面,如果此时受害者的机器没有打相应补丁的话,就会触发相应漏洞,开始下载木马并执行:

<ignore_js_op>



<ignore_js_op>
该页面客户嵌入的js脚本过程如下:

 

<ignore_js_op>
挂马代码加密过程简图:

 

<ignore_js_op>


主要功能:
每次服务器都会生成一个随机的validate值放入表单中,这个值每次刷新得到的结果都不一样,通过这个值作为浏览器的会话标记。
此外,攻击者使用IE官方的HTML条件注释来进行浏览器版本判断,这种判断对于常见的前端设计是有效的,但是对于浏览器漏洞利用却是错误的,因为不同浏览器都会开启不同程度的兼容模式,导致错误的兼容性设置结果,所以不如直接判断浏览器版本好。
根据浏览器的上述的结果,构造最终需要提交的表单数据,并进行GET提交

<ignore_js_op>

 

<ignore_js_op>

 

第二个页面:


GET提交的地址http://174.*.*.42/p/servlet?token=&id=49457&validate=XXXXXXXXXX
参数中有servlet,故猜测有可能后台是java。
这个请求会被302重定向到另外一个页面:
http://174.*.*.43/rt/ab06add394fb469b6510973131acb870.html?id=49457
这个页面会根据ID返回Rabbit或者RC4的加密后的Load代码,页面载入了额外的两个js库文件(encrypt.min.js、tinyjs.min.js),提供相关的对称和非对称加密算法。

<ignore_js_op>
解密得到的结果:


代码中会预制一个RSA公钥,然后使用随机数生成函数来生成一段字符串作为后续的对称加密密钥,并将该数据POST到服务器,此外还会动态生成一个字符串,两者拼接后作为后续通讯加密的密钥。POST请求会从服务端返回这个密钥加密的漏洞利用代码。此时会根据接收到的数据选项,选择使用RC4还是Rabbit算法进行解密并执行。


<ignore_js_op>

 

漏洞利用:最终解密执行的漏洞利用代码可以很明显看出是CVE-2016-0189。



漏洞利用成功后,会利用regsvr32调用sct文件执行对应脚本。
Regsvr32Windows命令行实用工具用于注册动态链接库文件,向系统注册控件或者卸载控件的命令,以命令行方式运行。国外网友Casey Smith@subTee发现通过调用regsrv32实用程序执行一条命令或者.sct文件有可能绕过AppLocker的脚本规则。由于该实用程序是具有微软官方签名的所以好处自不用多说了,并且支持TLS加密,遵循重定向方式,且不会在磁盘上留下痕迹。鉴于这么多优点,挂马者自然不会错过)

<ignore_js_op>
 

 

regsrv32命令行参数选项:

 

/s 静默执行


/n 指定不调用DllRegisterServer,此选项必须与/i共同使用


/i 调用DllInstall将它传递到可选的[cmdline],在与 /u 共同使用时,它调用DllUnstall





Sct文件:
文件中包含了经过base64编码后的恶意dll文件,利用ActiveXObject写入到本地文件,
在使用脚本操作二进制文件时,常常会因为不可见字符报错,所以挂马者通常会选择先对二进制文件作base64编码再操作,最后通过解码还原出二进制文件;

<ignore_js_op>



以下是测试将sct文件中的Base64部分转换成dll文件的js脚本:




然后会通过regsvr32加特定的参数执行:参数中包含lua脚本的下载链接。




<ignore_js_op>

 

在config.lua文件中其判断了是否为网吧环境,若是网吧环境则只安装小黑记事本(xiaohei.lua)和abc看图(abc.lua);否则安装如下图所示多款软件。



<ignore_js_op>



<ignore_js_op>

 

以duba.lua为例其中的lua脚本内容如下,主要判断未安装推广软件的环境下进行下载安装:

 

<ignore_js_op>

 

最终普通中招用户机器上被推广安装上10款推广软件:



<ignore_js_op>

 

根据监测及同源分析,该木马在早期的版本中还加入了“隐魂”木马,不过在近期传播的样本中并没有发现“隐魂”木马。

 

[360安全中心在8月份截获的感染MBR(磁盘主引导记录)的“隐魂”木马]

 

http://www.freebuf.com/articles/web/143912.html史上反侦察力最强木马“隐魂”:撑起色情播放器百万推广陷阱

 

http://www.freebuf.com/articles/system/144792.html“隐魂”木马篡改主页分析:史上反侦察力最强木马的犯罪素描



360安全卫士已经可以有效拦截此类网站挂马:



<ignore_js_op>
360安全卫士拦截木马利用regsvr32 注册sct木马:



<ignore_js_op>
<ignore_js_op>
<ignore_js_op>


结语:
攻击者对相关加密算法比较了解,选用了较为少见的Rabbit对称加密算法;攻击者具备一定的前端开发经验,代码容错性强,兼容性高了;后台不再是静态文件,而采用了动态生成内容,生成的网址也是一次性的;所有的js代码均经过了混淆变量的操作。
攻击者逐步开始学习国外流行Exploitkit的做法,动态生成攻击页面,并对漏洞利用代码加密,防止网关过滤和流量包重放分析,加大了分析难度,也有助于保密攻击代码。
对于普通用户建议应该尽量避免使用外挂辅助、避免点击伪装色情网站的恶意广告、开启安全软件进行防护。

posted @ 2018-04-18 16:30  beiank  阅读(2458)  评论(0编辑  收藏  举报