BlackHole重出江湖:一次针对专业军事论坛的“游击式”挂马事件分析报告首席安全官频道

111日,首席安全官频道360安全卫士云安全系统检测到国内知名军事论坛“军号网”上出现可疑的挂马行为,随即进行追踪分析。经过进一步确认,发现这是一次攻击范围很小、时间短暂,而且被攻击者迅速清理现场的挂马,很可能是有明确目标的针对性攻击事件。

攻击者使用改造升级版的BlackHole EK挂马工具包(BlackHole作者早在2013 年已被逮捕),结合论坛的XSS漏洞进行挂马,相比普通黑产具有更高的技术水平。

论坛挂马手段

这次挂马点比较隐蔽,经过反复检查后确认是利用论坛的漏洞插入了挂马页面。该漏洞是Discuz论坛针对ed2k协议解析时的一个 XSS漏洞[2] ,在解析过程论坛会自动对e2dk链接中的文件大小进行识别并直接输出,并且未进行过滤,导致出现了一个存储型 XSS。攻击者利用该漏洞插入了恶意js脚本代码,调用document.w   rite 函数向页面中插入挂马 iframe页面和恶意js脚本。

1.png


1.png


图1 攻击者发帖

2.png

2.png

图2 插入的XSS代码

挂马页面分析

攻击者在帖子中插入了两类代码,其中第一类仅在其发表的第一个帖子中存在,该脚本是从网上的获取cookie代码修改而来,怀疑也是类似获取用户访问的信息,但是可能编写有问题,并没有获取成功。

3.png

3.png

图3 获取信息的脚本内容

而在其他帖子中则插入的恶意挂马代码,利用js载入一个iframe,地址是hxxp://lynxlyragrus.com/aengewauhg/ball/nobody_grows-leaving-complained.php ,注意这个网址采用了 com域名,其他相关的url也有伪装模式。载入的页面是攻击包的着陆页面,该页面的代码加密特点是使用了 -1 来分割加密的字符串,具体的解密算法如下图所示:

4.png

4.png

图4 着陆页面解密代码

解码后整体代码分成三部分,第一部分则是一个内容异常丰富的浏览器及各种插件版本判断方法,代码编写规范,相比其他常见的EK更加的工程化。第二部分是使用js JavaFlash 进行版本判断,并选择执行对应的挂马函数。

5.png

5.png

图5 版本判断代码

然后是最重要的第三部分,其主要功能是待执行的多个函数代码,分别为命名为f1f2f3 i1 i2i3 p2j1,通过调用这些函数,引入漏洞利用文件和js代码。这些函数也会在引入文件的同时向服务端传递动态生成的参数信息,以保证漏洞页面只能被一次性访问。

6.png

6.png

图6 引入攻击代码

其中f2函数则载入了一个Flash文件,该文件会通过RC4 加密方法把实际的漏洞利用代码加密到BinaryData中,解开后根据代码确认是 CVE-2015-8651

t01b0b992d79dac7b12.png


t01b0b992d79dac7b12.png


图7 CVE-2015-8651代码

i1代码引入的js文件是被Base64编码过的,解开之后是 CVE-2013-2551的漏洞利用代码,因为该漏洞时间较久,因此很少有攻击包会选择这个漏洞。

8.png

8.png

图8 CVE-2013-2551代码

进一步分析

复现挂马之后,我们对这个挂马页面进行了多次试探,试图发现更多信息。经过多次尝试,我们发现所有的页面访问都具备漏洞攻击包的常见安全措施,页面会对请求做一定的防范措施,使用错误的链接和过期的网址参数访问只会获得“Industry is the parent of success”的字符串。此外,我们还发现该漏洞针对不同浏览器版本会引入不同漏洞攻击函数,如图 6所示的着陆页面漏洞攻击函数中有很多是空白直接返回的,但是使用IE9访问时i3函数出现了的具体攻击代码内容,而换用 Chrome去访问,则能够获取函数f1 f3代码内容,根据函数命名猜测 i1 i2i3ie 的漏洞页面, f1f2f3是针对 Flash 的相关漏洞,p2 则是pdf相关漏洞,j1 则是 java的漏洞。

但是因为挂马页面很快失效,未能够及时获取对Flash与其他攻击文件,即使这样我们根据着陆页面中相关插件软件的版本判断,结合以往常见漏洞的利用情况[3],大致猜测该攻击包所利用的漏洞情况如表 1所示。

表1 漏洞利用情况

漏洞对象 版本环境 CVE编号 备注
Flash <18.0.0.203 Chrome CVE-2015-5122 猜测
<=20.0.0.235 CVE-2015-8651 已确认
18.0.0.333~21.0.0.197 Chrome CVE-2016-1019 猜测
IE IE8 CVE-2013-2551 已确认
未知 CVE-2014-6332 猜测
IE9 CVE-2016-0189 已确认
Java <1.7.9 CVE-2012-5076 猜测
<1.6.33 CVE-2012-1723 猜测

根据着陆页面的代码风格与部分特殊函数命名,我们发现该攻击包是修改自以往的BlackHole Exploit KitBlackHole Exploit Kit是前几年比较流行的攻击包,但是作者在 2013年被逮捕,随后该攻击包不再更新并逐渐消失。这次的攻击代码显然是基于最后的 BlackHole版本,代码与最后活跃版本的BlackHole 基本一致 [4],并且更新了最新的相关漏洞,怀疑是有人在以往购买的BlackHole基础上进行修改并增加了最新的漏洞。

载荷分析

最后释放到本地的文件是一个基于Zeus Bot代码的新变种,我们根据它的配置信息把它命名为ff0bot木马。 Zeus Bot是有史以来最臭名昭著的网银木马之一,该木马的完整源代码曾被人泄露在互联网上,并被不断修改用于恶意攻击行为。

9.png

9.png

图9 木马配置信息

Ff0bot命令列表

10.png

10.png

图10 指令代码

其主要功能如下:

11.png


11.png


图11 窃取用户密码

12.png

12.png

图12 窃取证书私钥

13.png

13.png

图13 屏幕截图功能

14.png

14.png

图14 解密配置文件代码

总结

15.png

15.png

图15 攻击者发帖记录

这次挂马时间非常短暂,攻击者在110日凌晨第一次发布两个帖子,随后每隔1 天就在凌晨继续发布回帖,总共才发了4条帖子,然后 113 日晚挂马页面失效, 116晚攻击者删去所有攻击代码,并开始逐一删除相关回复帖子,至此销声匿迹仿佛什么也没有发生过。

相比我们以往监测到的挂马,这次挂马攻击范围比较小,攻击时间短暂并且注重隐蔽清理现场,利用的技术水平比常见的国内黑产更高,喜欢在现有成熟的攻击工具基础上进行改造升级。

最后,为了有效防范此类攻击,请大家及时更新系统补丁并及时升级常见软件,也希望各个论坛管理员能够及时更新论坛代码,减少用户遭受攻击风险。针对此类挂马攻击,360安全卫士也针对性的采用多层次防御体系进行有效阻止,保护用户电脑安全。

本文由360 QEX引擎团队和追日团队共同撰写。

参考文献

[1] 大批知名论坛被挂马,系 Discuz!论坛标签权限设置不当

[2] Discuz! X 储存型XSS (X1 ~ X3.1最新版)https://web.archive.org/web/20150125060822/http://www.wooyun.org/bugs/wooyun-2014-051123

[3] NeutrinoEK来袭:爱拍网遭敲诈者病毒挂马

[4] 2014-05-23- BLACKHOLE EK FROM 109.120.173.4 – BLACK1.WHA.LA

*本文作者:360安全卫士(企业账号),转载请注明来自FreeBuf

2017-01-20 14:02 阅读:176