揭秘银行木马Chthonic:网银大盗ZeuS的最新变种

说到Zeus/Zbot,做安全多多少少都会有所了解。Zeus是对金融系统威胁最大的僵尸网络之一,控制者借助僵尸程序窃取账户登录信息和信用卡号码。Zbot往往通过垃圾邮件来传播,中招的会下载一个程序,这个程序会控制网银,偷取信息。近期卡巴斯基实验室发现了一款ZeuS的最新变种Chthonic。

2014年秋季,卡巴斯基发现了一款新的银行木马,之所以引起了卡巴斯基的注意是因为:

首先,从技术上来说这款病毒非常有趣,它使用了一种新技术加载模块。
其次,通过分析它的配置文件我们发现,这款木马针对的是大量在线银行系统:超过150家不同的银行,还有来自15个国家的20个支付系统。主要针对来自英国、西班牙、美国、俄罗斯、日本和意大利的银行。
卡巴斯基实验室将这款新病毒命名为Trojan-Banker.Win32.Chthonic。
虽然经过大量修改,我们还是察觉到这款木马是ZeusVM的变种。Chthonic使用与Andromeda bots相同的加密器,与Zeus AES和Zeus V2木马相同的加密方案,与ZeusVM和KINS类似的一款虚拟机。

感染方式

Trojan-Banker.Win32.Chthonic感染主机有两种方式: 

发送带有exploits的电子邮件:犯罪分子会附上一个“精心制作”的RTF文件,文件会利用微软Office产品中的CVE-2014-1761漏洞。文件的使用的是.DOC后缀,为的是看起来不那么可疑。

 

如果成功的话,受害者的主机就会下载一个downloader木马。上图例子中,这个downloader木马来自一个被攻陷的网站 —— hxxp://valtex-guma.com.ua/docs/tasklost.exe。
Andromeda bot则会从hxxp://globalblinds.org/BATH/lider.exe下载downloader木马。

下载木马

一旦downloader被下载,就会向msiexec.exe注入代码。似乎这款downloader是基于Andromeda bot的源代码修改的,虽然两者采用了不同的通信协议。

Andromeda和Chthonic downloader的相似之处

Andromeda和Chthonic C&C采用了不同的通信协议
Chthonic的downloader包含一个加密的配置文件(KINS和ZeusVM也使用了类似的加密)。配置文件主要包括:一个C&C服务器列表,一个用于RC4加密的16字节密钥,UserAgent和僵尸网络ID。

调用虚拟机函数的主要过程

解密配置文件后,内容即被以以下形式储存在堆内存中:

这个过程没有传递指针。Andromeda bot会通过RtlWalkHeap函数检查每个堆元素,将起始的4个字节与MAGIC VALUE匹配。
downloader会收集本地IP,僵尸id,系统信息,语言信息,uptime和其他信息,然后先用XorWithNextByte进行加密,再用RC4,接着把信息发送到配置文件中指定的一个C&C地址。
发送信息后,木马会收到一个扩展加载器。不是标准的PE文件,而是一系列片段,加载器会把这些片段映射到内存,这些片段包括:可执行代码,重定位表,入口点,导出的函数和引入表。

Andromeda和Chthonic中的import setup片段

头文件

扩展加载器中还包含一个使用虚拟机加密的配置文件。它会加载木马的主模块,然后主模块会下载其他模块。扩展加载器本身使用AES加密,而其他片段是用UCL打包的。主模块加载其他模块,建立引入表的方式与Chthonic downloader很相似。

模块加载过程见下图:

模块

Trojan-Banker.Win32.Chthonic采用模块结构。至今为止我们已经发现的模块:

 

木马中有很多函数通过各种手段窃取在线银行的用户名密码。而VNC和cam_recorder模块能让攻击者远程连接感染的电脑并且进行交易,还可以用电脑的摄像头和麦克风录下视频音频。

注入

Web注入是Chthonic的主要武器:他们能够用木马在浏览器打开的网页代码中插入自己的代码和图片。攻击者能够借此获取受害者的手机号码,一次性密码和PIN,还有受害者输入的用户名和密码。
例如,当用户访问日本银行时,木马会隐藏银行的提示警告,并且插入脚本,使得攻击者能够使用受害者的账号进行转账:

在线网银网页截屏(注入前/注入后)


注入的脚本中的函数

注入的脚本也会显示很多假窗口,以获取攻击者想要的信息,如下图所示,窗口显示一个警告,警告用户账号认证有问题,提示用户输入交易验证码(TAN,Transaction Authentication Number):

交易验证码输入窗口
不过我们的分析发现针对俄罗斯银行的注入有点异常。当受害者打开一个在线银行网页时,网页的整个页面都被替换了,而不是像其他银行一样只注入一部分。木马会创建一个与原来窗口大小一样的iframe,覆盖原网页。

下图是注入的代码的片段,这段代码会替换title与body结束标记之间的内容:

脚本内容:

如果注入成功,bot就会收到指令建立反向链接:

覆盖区域

病毒袭击了15个国家的150家银行和20个支付系统。攻击者主要针对英国、西班牙、美国、俄罗斯、日本和意大利的银行。

Chtonic目标的国家分布

值得注意的是,尽管配置文件的列表中有很多目标,但很多用于web注入的代码片段已经不能用了,因为银行更改了他们的网页,有的银行甚至域名都改掉了。另外,有些代码片段我们几年前在其他病毒(例如Zeus V2)的配置文件中看到过。

总结

我们看到ZeuS木马仍然在不断更新完善,加入新的技术。这得益于ZeuS源码的泄露。所以很多写木马的把它拿来当框架了,任何人都可以加入新功能满足需求。
所以,以后我们无疑会看到更多的ZeuS新变种。

部分md5: