安全路透社
当前位置:安全路透社 > 安全客 > 正文

【木马分析】金融木马:银行木马软件Zeus Panda 的Webinjects分析(part 1)

http://p8.qhimg.com/t012582131dccb8a84b.jpg


简介


我们的母公司G DATA(歌德塔杀毒软件)拥有强大的恶意软件样本自动化处理的基础设施,以用来向AV客户提供最新的安全保护措施。在G DATA 高级恶意软件分析中,我们已经将这些自动化分析流程整合到我们自己的系统中了,以便向我们的银行客户提供欺诈检测的解决方案。

最近我们观察到感染Zeus Panda银行木马的用户越来越多,经过一周对Zeus Panda银行木马样本加密配置文件的分析,我们决定对解密后的配置文件进行详细的研究和分析。由于之前已经有文章对Zeus Panda银行木马的基本功能做了详细的分析,所以我们将集中精力分析该银行木马的webinjects文件(该文件中包含更多代码指令用来指明其攻击目标和如何进一步实施攻击操作),通过对Webinjects的分析让我们发现了一些很有趣的事情,跟其他的恶意软件一样,webinject文件中的JavaScript代码使用了混淆技术以躲避安全软件的分析,混淆后的内容如下所示:

var _0x2f90 = ["", "\x64\x6F\x6E\x65", "\x63\x61\x6C\x6C\x65\x65", "\x73\x63\x72\x69\x70\x74", "\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74", "\x74\x79\x70\x65", "\x74\x65\x78\x74\x2F\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74", "\x73\x72\x63", "\x3F\x74\x69\x6D\x65\x3D", "\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64", "\x68\x65\x61\x64", "\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x73\x42\x79\x54\x61\x67\x4E\x61\x6D\x65", "\x76\x65\x72", "\x46\x46", "\x61\x64\x64\x45\x76\x65\x6E\x74\x4C\x69\x73\x74\x65\x6E\x65\x72", "\x44\x4F\x4D\x43\x6F\x6E\x74\x65\x6E\x74\x4C\x6F\x61\x64\x65\x64", "\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65", "\x63\x6F\x6D\x70\x6C\x65\x74\x65", "\x6D\x73\x69\x65\x20\x36", "\x69\x6E\x64\x65\x78\x4F\x66", "\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65", "\x75\x73\x65\x72\x41\x67\x65\x6E\x74", "\x49\x45\x36", "\x6D\x73\x69\x65\x20\x37", "\x49\x45\x37", "\x6D\x73\x69\x65\x20\x38", "\x49\x45\x38", "\x6D\x73\x69\x65\x20\x39", "\x49\x45\x39", "\x6D\x73\x69\x65\x20\x31\x30", "\x49\x45\x31\x30", "\x66\x69\x72\x65\x66\x6F\x78", "\x4F\x54\x48\x45\x52", "\x5F\x62\x72\x6F\x77\x73\x2E\x63\x61\x70", "\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64", "\x64\x69\x73\x70\x6C\x61\x79", "\x73\x74\x79\x6C\x65", "\x6E\x6F\x6E\x65", "\x68\x74\x6D\x6C", "\x70\x6F\x73\x69\x74\x69\x6F\x6E", "\x66\x69\x78\x65\x64", "\x74\x6F\x70", "\x30\x70\x78", "\x6C\x65\x66\x74", "\x77\x69\x64\x74\x68", "\x31\x30\x30\x25", "\x68\x65\x69\x67\x68\x74", "\x7A\x49\x6E\x64\x65\x78", "\x39\x39\x39\x39\x39\x39", "\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64", "\x23\x46\x46\x46\x46\x46\x46"];
// ... further script code ...

解密这个脚本后,结果如下所示:

var vars = ["", "done", "callee", "script", "createElement", "type", "text/javascript", "src", "?time=", "appendChild", "head", "getElementsByTagName", "ver", "FF", "addEventListener", "DOMContentLoaded", "readyState", "complete", "msie 6", "indexOf", "toLowerCase", "userAgent", "IE6", "msie 7", "IE7", "msie 8", "IE8", "msie 9", "IE9", "msie 10", "IE10", "firefox", "OTHER", "_brows.cap", "getElementById", "display", "style", "none", "html", "position", "fixed", "top", "0px", "left", "width", "100%", "height", "zIndex", "999999", "background", "#FFFFFF"];
// ... further script code ...

仔细观察这个解密后的脚本,我们可以确定该恶意软件具有以下功能:

1. 首先检查浏览器版本,以添加针对某浏览器的特定事件侦听器(例如对于Firefox使用DOMContentLoaded事件)

2. 设置一些木马软件所需的参数变量,如:

a) botid:受害者系统的唯一标识符

b) inject:加载下一个攻击阶段的URL

3. 进一步加载并执行针对特定目标(银行)的JavaScript代码,如注入变量中定义的代码等。

事实证明,webinject初始阶段是用一个通用加载器从Web服务器下载针对特定目标的攻击代码。在这种情况下,“目标”是指银行和提供支付服务的提供商。这个推断可能需要进一步的分析,因为当前的webinjects会在多个阶段加载最终的攻击,或许这些webinjects中还包括更多的Zeus Panda组件。


代码分析和示例展示


在下载得到第二阶段的webinject后,我们对文件的实际大小感到很惊讶:该文件的大小足足有91.8 KB。简要分析之后我们发现该webinject包含了很多功能,一些功能是通用的,可以在每个网站上实施攻击操作,其他包括了一些针对具体目标的代码,如特定的HTML属性。例如,webinject使用唯一的id属性来标识目标网上银行的网站信息。在撰写本文时,我们仍在分析该webinject包含的大量功能。现在,我们将要对其基本功能做个简要的概述。

如上图所示,加载针对具体目标的JavaScript后,将调用图1所示的init函数。首先,该函数会检查是否位于页面顶部,如果没有,则调用showpage()函数,搜索标识符_brows.cap并删除此DOM元素(如果存在)。否则调用下一个检查函数are(),它搜索“登录”,“密码”和“按键”这三个字符串。如果没有找到这些字符串,则调用get()函数来检查当前用户是否处于登录状态。这是通过检查注销元素是否存在来完成的,只有当用户当前登录时才可用,如果没有,showpage()函数将被调用以完成清理操作。否则,status()函数用于将状态变量设置为字符串“CP”。之后收集的数据通过send()函数进行过滤。

如果恶意软件找到所有的目标字符串(“登录”,“密码”和“按键”),则会调用下一个函数preventDefault()stopPropagation()(图1的左侧分支)。这将覆盖目标网站默认的表单操作,以收集用户在表单中输入的数据。另外,处理输入按钮的事件被hook,使得无论目标网站的提交方法是如何实现的,用户在表单中输入的数据都会被捕获。

由于此实现在Internet Explorer中不起作用,脚本将检查是否存在cancelBubble事件。如果存在,则调用针对Internet Explorer的特定代码,其提供与stopPropagation()函数相同的功能。

收集到用户在表单中输入的数据后,恶意软件会调用status()函数来设置分支变量。分支变量定义了一旦某个条件满足应该触发哪个动作。在我们的例子(左分支)中,该值被设置为字符串“SL”,该操作伪造假冒的网站,并提示用户该站点存在技术问题已不能再提供网络服务,下图展示了两种伪造站点的示例,图2是德语网站的伪造示例,图3是英语的伪造示例。

图5:管理员 – 面板详细视图

结论


银行木马仍然是网络犯罪分子最有价值的收入来源之一。鉴于这种恶意软件已经被开发和优化了很多年,恶意代码执行过程中遇到的任何错误都会发送到恶意软件作者那里,作者可以根据金融机构实施的任何新的防御措施进行相应的调整。注入的脚步也可以模仿用户的行为,增加填写表单和提交表单动作的延迟,使得其操作更加逼真,更有欺骗性。木马后台管理系统可以使攻击者将全部精力放到操控网络攻击上,而不需要知道详细的技术实现细节,在后续的博客文章中,我们将对webinject脚本攻击的其他功能进行详细的分析。


Indicators of compromise(IOCs)


http://p1.qhimg.com/t01ffaa9074dd3524d1.png


原文链接:https://cyber.wtf/2017/02/03/zeus-panda-webinjects-a-case-study/

未经允许不得转载:安全路透社 » 【木马分析】金融木马:银行木马软件Zeus Panda 的Webinjects分析(part 1)

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册