【技术分享】借助谷歌搜索传播:对宙斯熊猫银行木马新变种的技术分析

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

译者:eridanus96

预估稿费:200RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿


通过搜索引擎结果攻击

目前,人们都会使用谷歌等搜索引擎,来查找自己不知道的信息。通过搜索,我们能迅速找到所需要的内容。然而,谷歌搜索所返回的链接,并不能保证是一定安全的。正因如此,攻击者借助于搜索引擎优化(SEO),使他们的恶意链接在搜索结果中更多地出现,从而让他们的目标用户群体感染宙斯熊猫银行木马(the Zeus Panda banking Trojan)。使特定银行相关关键词的搜索结果发生变动,是一种独特的攻击方式,可以有效地针对特定用户实现攻击,就像是在井里投毒。

攻击者主要对财务相关的关键字进行搜索,确保搜索结果能显示恶意链接,以最大限度地提高其病毒感染的转化率。因为他们确定,受感染的用户将会定期使用各类金融平台,攻击者就可以快速地获取到用户凭据、银行卡信息和信用卡信息等内容。

通过对用于传播这一病毒的基础结构进行分析,我们发现其整体配置和操作过程非常特殊,其不依赖于常见的恶意软件扩散方式。攻击者不会一味沿用已有的技术,而是会定期改进。由此也可以说明,及时更新威胁情报,对于确保组织能随时抵御新的威胁,是至关重要的。

初始攻击向量

电子邮件并不是这一病毒最初的传染源。攻击者针对的是特定的搜索关键词集合,这些关键词可能会被潜在目标使用Google等搜索引擎查询到。通过利用存在漏洞的Web服务器,攻击者能确保他们的恶意结果在搜索引擎中得到较高排名,从而增加了潜在受害者点击的可能性。

举例来说,攻击者似乎以下列关键词作为目标:

http://p3.qhimg.com/t019762d029accccf6a.png

在大多数情况下,攻击者能够在搜索引擎结果页面(SERP)的首页上显示多条带有病毒的结果,以便将其作为目标。在这个例子中,关键词为“Rajhi银行在斋月的工作时间”,下面是Google搜索返回的内容:

http://p5.qhimg.com/t01a4b2413ee28452a9.png

通过对已有评级的商业网站进行攻击,攻击者可以使搜索结果看起来更安全,比如在SERP中的结果中显示5星和100%的评级。

攻击者针对的是大量关键词组合,其中大多数是针对潜在受害者可能搜索的银行或金融相关信息而量身定做的。并且,也会集中对某个地理区域发动攻击,该病毒会以印度和中东的金融机构为主要目标。其他的一些关键字还例如:

http://p2.qhimg.com/t01019fc86a5e463018.png

此外,所有恶意页面的标题都有附加的短语。使用“intitle:”搜索参数,我们就能够主动识别出数以百计的恶意页面,这些恶意页面会引导用户下载病毒。下面列出了这些附加短语的一些示例:

http://p4.qhimg.com/t015a79dbeca0fdd20d.png

如果用户试图浏览这些受攻击的服务器上的网页,将会开始多级的恶意软件感染过程,我们接下来将详细分析。

比较讽刺的是,在研究过程中我们还发现,存在相同的重定向系统及相关基础设施,用来指导受感染的用户联系假冒的技术支持。通过显示图像,通知用户系统感染了宙斯病毒,并指导他们联系指定电话号码。

http://p4.qhimg.com/t01c38a834612a2344e.png

感染过程分析

当受害者访问恶意网页时,该网站使用Javascript将客户端重定向到中间站点上托管的Javascript。

http://p9.qhimg.com/t01a0bf96d90f5805cc.png

这将导致客户端检索和执行位于被document.write()方法所指定地址的Javascript。随后的页面包含类似的功能,是将一个HTTP GET请求转向到另一个页面。

http://p3.qhimg.com/t0130f1756db87df6d9.png

随后,中间服务器将返回HTTP 302对客户端进行相应,将客户端重定向到另一个被攻击的站点,这个站点实际上是用来保存恶意Word文档的。因此,客户端会通过这次重定向,下载恶意文档。这是一种通常被称为“302缓冲”的技术,在开发工具包中广泛使用。

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

按照重定向结果,下载恶意Microsoft Word文档。

http://p7.qhimg.com/t01456d0d25ab1c5c05.png

下载恶意的Word文档后,受害者的浏览器会询问“打开或保存该文件”。如果选择打开文件,打开后文档将显示以下消息,提示受害者“启用编辑模式”并点击“启用内容”。

http://p7.qhimg.com/t0181c24999f2aa92b1.png

一旦选择了“启用内容”,就会执行Word文档中嵌入的恶意宏。正是这些宏,负责下载和执行PE32的可执行文件,从而感染了系统。宏代码本身不具有危害性,而且十分简单,它只是负责下载恶意可执行文件,将其保存到系统的%TEMP%目录中,并且使用类似于“obodok.exe”的文件名。

http://p2.qhimg.com/t015c60fc67a4bd23e0.png

在这个样本中,恶意可执行文件位于以下URL中:

hXXp://settleware[.]com/blog/wp-content/themes/inove/templates/html/krang.wwt

这些宏使用以下 Powershell 命令启动此过程:

http://p0.qhimg.com/t019b183c0668075cb1.png

根据对病毒所在恶意域名DNS相关信息的查看,我们发现在2017年6月7日至8日期间,试图解析域名的DNS请求数量有两个明显的峰值。

http://p4.qhimg.com/t01c11c8087f9d13414.png

Settleware Secure Services, Inc.是一个文档电子签名服务, 允许以电子方式签署文档。它可以跨多个不同的过程使用,包括不动产代管电子签名,此外也提供eNotary服务。


木马原理分析

与该感染模式相关的病毒,是一个新版本的宙斯熊猫银行木马,该木马用于窃取银行及其他敏感凭据。

我们认为,其有效载荷是分为多阶段的。初始阶段的有效载荷,具有反分析技术,可以有效逃避检测。除此之外,它还具有几个规避技术,用于确保恶意软件在自动化分析环境及沙盒中不会正常执行。我们特别关注该木马的伪装手段。

木马将首先查询系统的键盘映射, 以确定系统上使用的语言。如果检测到下列任何键盘映射, 它将终止执行:

LANG_RUSSIAN

LANG_BELARUSIAN

LANG_KAZAK

LANG_UKRAINIAN

木马还执行检查,以确定它是否在以下管理程序或沙盒环境中运行:

VMware

VirtualPC

VirtualBox

Parallels

Sandboxie

Wine

SoftIce

它还检查了安全人员在分析恶意软件时经常运行的各种工具和实用程序是否存在,其完整列表如下:

http://p5.qhimg.com/t0163baceaa4dd601e9.png

如果满足上述的任何一条,该木马首先会将一个自我删除的批处理文件写入%TEMP%目录,并使用Windows命令提示符执行该操作。木马使用RDTSC,基于时间产生用于存储批处理文件的文件名。这个批处理文件负责删除原始样本。一旦完成原始样本的删除工作,它就会从%TEMP%中删除其自身。

http://p9.qhimg.com/t01b8d6acc5378e5344.png

为阻止分析,其在初始阶段将使用无效参数,去调用数以百计的有效API。它还会利用结构化异常处理(SEH)来修补其自身的代码。它会多次查询和存储当前指针位置,以检测活动,并确定自身是否在沙盒或自动分析环境下执行。下面是使用无效参数的有效API调用的示例,其中获取指针位置的调用是有效的,而对ScreentoClient的调用则包含无效参数。

http://p3.qhimg.com/t01976086c9c54421d5.png

下面是一个虚假调用的例子,用来迷惑分析人员,增加分析该木马所需的时间和精力。我们经常看到用来迷惑反汇编器的无效操作,但在这里,由于它位于上百个结构之前,使得更难去识别有效的变量。

http://p6.qhimg.com/t013d5835948ad13565.png

下面的截图展示了通过IDA自动填充和无用结构的列表。这些措施都是为了加大分析的难度,让分析人员无法从代码执行流的角度,分析出其真正意图。

http://p8.qhimg.com/t010b2f438daa7508e3.png

每隔一段,我们能找到一个有效的和有用的操作。下面的EAX寄存器存储在一个变量中,以便之后再次使用,用来分配堆内存块,并启动它自己的解压缩代码。

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

该木马还是用了其它技术,使分析变得更加困难,比如创建了上百个条件比较,这使得跟踪代码更加困难。在下面的例子中,几个if条件语句的伪代码演示了这一过程,并说明了它是如何阻碍对代码的跟踪。

http://p0.qhimg.com/t0188847bd4956db4ff.png

为了解密恶意代码,它安装了一个异常处理程序,负责解密一些内存字节,以继续执行。

下面是SEH刚刚被初始化:

http://p3.qhimg.com/t019577c1f5cb15edbd.png

在同一个例程中,它会执行以下代码的解密例程。我们还发现,大量的异常调用会导致一些沙盒崩溃,这也是防止自动化分析的一种手段。

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

一旦将数据解密并存储到以前分配的缓冲区中,它将使用已知机制(EnumDisplayMonitor的回调例程功能)在winmain中继续执行,方法是将回调例程的值设置为修复的内存。

http://p8.qhimg.com/t01c9688188cc209467.png

在此执行过程中,恶意软件将继续修补自身并继续执行。

字符串使用XOR值进行加密,但是每个字符串都使用单独的XOR值来防止简单的检测机制。下面是一些可以用来解密字符串的IDA Python代码。

http://p4.qhimg.com/t01a3483a05243182d4.png

这段代码对应IDA字符串的解密及引用,0x1250EBD2对应解密例程,0x1251A560对应加密的字符串表。

http://p6.qhimg.com/t01fd4e96fca38f064b.png

通过下面这些注释,我们可以理解该木马中的不同功能。

http://p9.qhimg.com/t01be361352931afa78.png

对于API调用,它使用如下算法。这段代码可以在IDA中使用,以便对API调用进行注释。

 http://p3.qhimg.com/t011c79c103ee20e758.png

该木马使用的通用函数,涉及以下参数:

与模块对应的 DWORD 值;

对应于模块的加密字符串表的索引项(如果未加载);

API本身的哈希值;

用于存储API调用地址的索引。

http://p8.qhimg.com/t0178bc8cae781664a5.png

下面是一个伪代码示例,它展示了如何执行API调用。仅仅是使用快照列表,查找内存中的进程。

http://p4.qhimg.com/t0184c00d11bd00e741.png

一旦木马开始完全执行,它就会将一个可执行文件复制到以下位置:

C:Users<Username>AppDataRoamingMacromediaFlash Playermacromedia.comsupportflashplayersys

它还会通过创建以下注册表项来保证持久性:

HKEY_USERS<SID>SoftwareMicrosoftWindowsCurrentVersionRunextensions.exe

它将此注册表项的数据值设置为由木马创建的路径/文件名。下面是数据值的一个示例:

"C:Users<Username>AppDataRoamingMacromediaFlash Playermacromedia.comsupportflashplayersysextensions.exe"s\0

在特殊情况下,创建的文件被命名为“extensions.exe”,但是我们已经发现其还会使用其他几个不同的文件名。

针对宙斯熊猫银行木马,如果日后有其他分析,将会在这里补充发布:

https://cyberwtf.files.wordpress.com/2017/07/panda-whitepaper.pdf

总结

攻击者不断尝试寻找新的方法来引诱用户运行病毒,这些病毒则可以感染受害者的计算机。通常来说,病毒邮件、诱骗点击和水坑攻击是较为常见的攻击方式。然而这一次,我们发现了另一个完整的攻击框架,通过“SERP投毒”使用户误点击特定网站,并感染宙斯木马。在这种情况下,攻击者必须确保其恶意链接在搜索引擎中排名较为靠上。

随着威胁的格局不断演变,攻击者不断在寻找新的攻击媒介。因此,如果具备一个健全的、分层的纵深防御策略,将有助于确保组织能够响应不断变化的威胁环境。需要提醒用户的是,必须时刻保持警惕,在点击链接前三思而行,不能对邮件附件或是搜索引擎的搜索结果产生盲目信任。


病毒相关域名、IP及样本Hash

恶意文档域名:

mikemuder[.]com

恶意文档IP:

67.195.61[.]46

相关恶意域名:

acountaxrioja[.]es

alpha[.]gtpo-cms[.]co[.]uk

arte-corp[.]jp

bellasweetboutique[.]com

billing[.]logohelp[.]com

birsan[.]com[.]tr

bitumast[.]com

bleed101[.]com

blindspotgallery[.]co[.]uk

blog[.]mitrampolin[.]com

calthacompany[.]com

cannonvalley[.]co[.]za

coinsdealer[.]pl

corvettescruisingalveston[.]com

craigchristian[.]com

dentopia[.]com[.]tr

dgbeauty[.]net

dressfortheday[.]com

evoluzionhealth[.]com

gemasach[.]com

japan-recruit[.]net

jaegar[.]jp

michaelleeclayton[.]com

www[.]academiaarena[.]com

www[.]bethyen[.]com

www[.]bioinbox[.]ro

www[.]distinctivecarpet.com

www[.]helgaleitner[.]at

www[.]gullsmedofstad[.]no

usedtextilemachinerylive[.]com

garagecodes[.]com

astrodestino[.]com[.]br

中间重定向域名:

dverioptomtut[.]ru

Word文档文件名:

nordea-sweden-bank-account-number.doc

al-rajhi-bank-working-hours-during-ramadan.doc

how-many-digits-in-karur-vysya-bank-account-number.doc

free-online-books-for-bank-clerk-exam.doc

how-to-cancel-a-cheque-commonwealth-bank.doc

salary-slip-format-in-excel-with-formula-free-download.doc

bank-of-baroda-account-balance-check.doc

bank-guarantee-format-mt760.doc

incoming-wire-transfer-td-bank.doc

free-online-books-for-bank-clerk-exam.doc

sbi-bank-recurring-deposit-form.doc

Word文档Hash值:

713190f0433ae9180aea272957d80b2b408ef479d2d022f0c561297dafcfaec2 (SHA256)

PE32 URL:

settleware[.]com/blog/wp-content/themes/inove/templates/html/krang.wwt

PE32 Hash值:

59b11483cb6ac4ea298d9caecf54c4168ef637f2f3d8c893941c8bea77c67868 (SHA256)

5f4c8191caea525a6fe2dddce21e24157f8c131f0ec310995098701f24fa6867 (SHA256)

29f1b6b996f13455d77b4657499daee2f70058dc29e18fa4832ad8401865301a (SHA256)

0b4d6e2f00880a9e0235535bdda7220ca638190b06edd6b2b1cba05eb3ac6a92 (SHA256)

C2域名:

hppavag0ab9raaz[.]club

havagab9raaz[.]club

C2 IP:

82.146.59[.]228

(完)