本文讲述的是利用Discuz e2dk地址XSS挂马分析报告(针对某专业军事论坛),旨在服务社会,供安全研究人员学习使用,请勿用于其他非法用途,违者后果自负。
1月11日,360安全卫士云安全系统检测到国内知名军事论坛“军号网”上出现可疑的挂马行为,随即进行追踪分析。经过进一步确认,发现这是一次攻击范围很小、时间短暂,而且被攻击者迅速清理现场的挂马,很可能是有明确目标的针对性攻击事件。
攻击者使用改造升级版的BlackHole EK挂马工具包(BlackHole作者早在2013年已被逮捕),结合论坛的XSS漏洞进行挂马,相比普通黑产具有更高的技术水平。
论坛挂马手段
这次挂马点比较隐蔽,经过反复检查后确认是利用论坛的漏洞插入了挂马页面。该漏洞是Discuz论坛针对ed2k协议解析时的一个XSS漏洞[2],在解析过程论坛会自动对e2dk链接中的文件大小进行识别并直接输出,并且未进行过滤,导致出现了一个存储型XSS。攻击者利用该漏洞插入了恶意js脚本代码,调用document.write函数向页面中插入挂马iframe页面和恶意js脚本。图1 攻击者发帖
图2 插入的XSS代码
挂马页面分析
攻击者在帖子中插入了两类代码,其中第一类仅在其发表的第一个帖子中存在,该脚本是从网上的获取cookie代码修改而来,怀疑也是类似获取用户访问的信息,但是可能编写有问题,并没有获取成功。
图3 获取信息的脚本内容
而在其他帖子中则插入的恶意挂马代码,利用js载入一个iframe,地址是hxxp://lynxlyragrus.com/aengewauhg/ball/nobody_grows-leaving-complained.php,注意这个网址采用了com域名,其他相关的url也有伪装模式。载入的页面是攻击包的着陆页面,该页面的代码加密特点是使用了-1来分割加密的字符串,具体的解密算法如下图所示
图4 着陆页面解密代码
解码后整体代码分成三部分,第一部分则是一个内容异常丰富的浏览器及各种插件版本判断方法,代码编写规范,相比其他常见的EK更加的工程化。第二部分是使用js对Java、Flash进行版本判断,并选择执行对应的挂马函数。
图5 版本判断代码
然后是最重要的第三部分,其主要功能是待执行的多个函数代码,分别为命名为f1、f2、f3、i1、i2、i3、p2、j1,通过调用这些函数,引入漏洞利用文件和js代码。这些函数也会在引入文件的同时向服务端传递动态生成的参数信息,以保证漏洞页面只能被一次性访问。
图6 引入攻击代码
其中f2函数则载入了一个Flash文件,该文件会通过RC4加密方法把实际的漏洞利用代码加密到BinaryData中,解开后根据代码确认是CVE-2015-8651。
图7 CVE-2015-8651代码
i1代码引入的js文件是被Base64编码过的,解开之后是CVE-2013-2551的漏洞利用代码,因为该漏洞时间较久,因此很少有攻击包会选择这个漏洞。
图8 CVE-2013-2551代码
进一步分析
复现挂马之后,我们对这个挂马页面进行了多次试探,试图发现更多信息。经过多次尝试,我们发现所有的页面访问都具备漏洞攻击包的常见安全措施,页面会对请求做一定的防范措施,使用错误的链接和过期的网址参数访问只会获得“Industry is the parent of success”的字符串。此外,我们还发现该漏洞针对不同浏览器版本会引入不同漏洞攻击函数,如图6所示的着陆页面漏洞攻击函数中有很多是空白直接返回的,但是使用IE9访问时i3函数出现了的具体攻击代码内容,而换用Chrome去访问,则能够获取函数f1和f3代码内容,根据函数命名猜测i1、i2、i3是ie的漏洞页面,f1、f2、f3是针对Flash的相关漏洞,p2则是pdf相关漏洞,j1则是java的漏洞。
但是因为挂马页面很快失效,未能够及时获取对Flash与其他攻击文件,即使这样我们根据着陆页面中相关插件软件的版本判断,结合以往常见漏洞的利用情况[3],大致猜测该攻击包所利用的漏洞情况如表1所示。表1 漏洞利用情况
根据着陆页面的代码风格与部分特殊函数命名,我们发现该攻击包是修改自以往的BlackHole Exploit Kit,BlackHole Exploit Kit是前几年比较流行的攻击包,但是作者在2013年被逮捕,随后该攻击包不再更新并逐渐消失。这次的攻击代码显然是基于最后的BlackHole版本,代码与最后活跃版本的BlackHole基本一致[4],并且更新了最新的相关漏洞,怀疑是有人在以往购买的BlackHole基础上进行修改并增加了最新的漏洞。
载荷分析
最后释放到本地的文件是一个基于Zeus Bot代码的新变种,我们根据它的配置信息把它命名为ff0bot木马。Zeus Bot是有史以来最臭名昭著的网银木马之一,该木马的完整源代码曾被人泄露在互联网上,并被不断修改用于恶意攻击行为。
图9 木马配置信息
Ff0bot命令列表
图10 指令代码
其主要功能如下:
图11 窃取用户密码
图12 窃取证书私钥
图13 屏幕截图功能
图14 解密配置文件代码
总结
图15 攻击者发帖记录
这次挂马时间非常短暂,攻击者在1月10日凌晨第一次发布两个帖子,随后每隔1天就在凌晨继续发布回帖,总共才发了4条帖子,然后1月13日晚挂马页面失效,1月16晚攻击者删去所有攻击代码,并开始逐一删除相关回复帖子,至此销声匿迹仿佛什么也没有发生过。
相比我们以往监测到的挂马,这次挂马攻击范围比较小,攻击时间短暂并且注重隐蔽清理现场,利用的技术水平比常见的国内黑产更高,喜欢在现有成熟的攻击工具基础上进行改造升级。
最后,为了有效防范此类攻击,请大家及时更新系统补丁并及时升级常见软件,也希望各个论坛管理员能够及时更新论坛代码,减少用户遭受攻击风险。针对此类挂马攻击,360安全卫士也针对性的采用多层次防御体系进行有效阻止,保护用户电脑安全。