在Kronos阐发的第一部分中,咱们阐发了Kronos恶意软件的装置进程,并具体说明了恶意软件为了坚持隐蔽性而应用的各类技能。如今咱们将继承对Kronos的歹意行动停止阐发。
阐发样本
ede01f7431543c1fef546f8e1d693a85-downloader(一个包括恶意代码的word文档)
2a550956263a22991c34f076f3160b49 -bot歹意法式
分外感激@shotgunner101和@chrisdoman分享恶意软件样本。
设置装备摆设和目的
Kronos是一款银行木马,其bot法式必要起首从C&C服务器上下载额定的设置装备摆设文件,并以加密的情势存储在装置文件夹中。经由进程阐发咱们发明,当经由进程收集发送该设置装备摆设文件时,它应用CBC情势的AES 加密算法对文件停止加密停止加密,然则当该设置装备摆设文件存储在磁盘上时,将应用ECB情势的AES加密算法停止加密。从下图咱们可以或许看到,Kronos歹意软件的装置目次是%APPDATA%/Microsoft,目次中的文件夹称号被用来表现BotId。并且,该文件夹中存储的文件,可执行文件和设置装备摆设文件都具备雷同的称号,只是扩大名分歧罢了:
咱们将捕获到设置装备摆设文件停止懂得密操纵,你可以或许在以下的github地点上找到该解密文件:
https://gist.github.com/malwarezone/d6de3d53395849123596f5d9e68fe3a3#file-config-txt
设置装备摆设文件的格局遵守了Zeus歹意软件中界说的尺度,歹意软件在该文件中指定了要在目的网站中注入的内部剧本和注入地位。下图是一个设置装备摆设文件的片断:
上述例子中注入的内部剧本是figrabber.js,该剧本被托管在进击者的服务器上:
该剧本以后的设置装备摆设重要用来对几家银行实行收集进击,不外该剧本还被用来盗取Google,Twitter和Facebook等网站的登录凭证。假如用户的机械上沾染了Kronos歹意软件,那末设置装备摆设文件中界说的代码片断会被植入到了合法网站的源代码中,一旦用户关上歹意软件所针对的目的网站,注入到合法网站上的剧本就会开端执行了,具体例子以下图所示:
Facebook的:
花旗银行:
注入的剧本卖力关上额定的窗口,该窗口正在测验考试诱骗用户并盗取他/她的小我数据:
富国银行:
图片中的表单是都是歹意软件自界说的,以顺应每一个页面的主题。然则,其内容对付每一个目的都是雷同的。总的来说,该歹意软件针对银行的进击操纵其实不十分复杂,轻微有些平安认识的用户都会对上述的进击行动发生狐疑,究竟该歹意软件试图压服用户输出与银行业务相干的一切小我数据:
Downloader
Kronos歹意软件除沾染浏览器和盗取数据外,它还具备下载功效。在咱们的测试中,它下载了一个新的可执行文件,并将其保存在%TEMP%目次中,歹意软件的有用载荷存储在与主装置目次雷同称号的其余目次中:
已下载的payload
6f7f79dd2a2bf58ba08d03c64ead5ced -nCBngA.exe
从Kronos C&C下载的payload:
下载的进程中发明payload未加密传输:
在上述案例中,下载的payload只是Kronos歹意软件bot组件的更新法式。然则,异样的功效也可用于获得和安排其余歹意软件系列。
敕令和节制(C&C)服务器
经由进程咱们的阐发发明,Kronos歹意软件在其C&C服务器上应用了Fast-Flux技巧,域名每次都被剖析成分歧的IP。比方,针对hjbkjbhkjhbkjhl.info这个域名,每次从上面给出的IP地点池中随机抉择一个作为域名的IP地点:
46.175.146.50
46.172.209.210
47.188.161.114
74.109.250.65
77.122.51.88
77.122.51.88
89.25.31.94
89.185.15.235
91.196.93.112
176.32.5.207
188.25.234.208
109.121.227.191
经由进程对C&C服务器收集通讯流量的阐发,咱们察看到歹意软件每次都经由进程connect.php这个php文件与C&C服务器停止通讯,并附带一个可选参数a:
connect.php-初始信标
connect.php?a = 0向C&C发送数据
connect.php?a=1从C&C下载设置装备摆设文件
C&C治理后盾
在网上咱们找到了透露的C&C治理后盾代码,这个发明可以或许让咱们对Kronos歹意软件有更进一步的懂得。像大多数歹意软件治理后盾异样,Kronos治理后盾应用PHP编写,并应用MySQL数据库,涉及到的文件以下图所示:
事实证明,bot法式总共有三个敕令:
a=0 :发送抓取的页面内容
a=1 :获得设置装备摆设文件
a=2 :发送记载的窗口
下图是治理后盾代码的一个代码片断(具体完成位于connect.php文件中),该php文件卖力剖析和存储相应敕令上传的数据。
#0敕令(a=0):
#2敕令(a=2):
#1敕令(a=1):
咱们还可以或许非常清楚地看到C&C服务器应用CBC情势的AES加密算法对设置装备摆设文件停止加密,且加密密钥是BotId的md5值的前16个字节。
但是,AES并非Kronos所应用的独一加密算法。其余敕令在ECB情势下应用BlowFish加密算法:
#0敕令(a=0):
#2敕令(a=2):
在一切情况下,都有一个名为UniqueId的变量用作加密算法的密钥。实在,UniqueId变量便是BotId,该变量值在每一个POST哀求中颠末XOR编码后被发送进来。
你可以或许在这里找到相应的Python剧原来解码相应的哀乞降相应:
https://github.com/hasherezade/malware_analysis/tree/master/kronos
Kronos歹意软件还支撑插件功效,以扩大其核心功效:
解密通讯流量
在剧本法式(可以或许在这里下载)的赞助下,咱们可以或许解密Kronos bot和C&C服务器之间通讯的收集流量,具体以下所述:
1.BotId
因为BotId被用作加密算法的加密,是以咱们起首必要获得BotId变量的值,咱们在bot法式发送给其C&C服务器(74字节长)的哀求中可以或许找到它:
转储哀求后,咱们可以或许应用以下剧本对其停止解码:
./kronos_beacon_decoder.py --infile dump1.bin
解码输出成果中包括了以下两个字段:
1.设置装备摆设文件的哈希值(假如今朝没有设置装备摆设文件,这部分将填写“X”字符)
2.BotId
比方:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {117BB161-6479-4624-858B-4D2CE81593A2}
是以,上图中的BotId便是{117BB161-6479-4624-858B-4D2CE81593A2}。
2.设置装备摆设
获得BotId以后,咱们可以或许用它来解密设置装备摆设文件,设置装备摆设文件位于a=1哀求的相应报文中:
下图是一个哀求示例:
在转储相应以后,咱们可以或许应用另一个剧本停止解码,给出BotId作为参数:
./kronos_a1_decoder.py --datafile dump2.bin --botid {117BB161-6479-4624-858B-4D2CE81593A2}
解码后的数据曾经上传到github上了,概况参考:
https://gist.github.com/malwarezone/a7fc13d4142da0c6a67b5e575156c720#file-config-txt
3.发送申报
偶然咱们可以或许在哀求中找到Kronos bot申报给C&C服务器的加密数据:
下图是加密哀求示例:
在转储哀求提数据以后,咱们可以或许应用一个剧本对数据停止解密:
./kronos_a02_decoder.py --datafile dump3.bin --botid {117BB161-6479-4624-858B-4D2CE81593A2}
解密后的数据曾经上传到github上了,概况参考https://gist.github.com/malwarezone/a03fa49de475dfbdb7c499ff2bbb3314#file-a0_req-txt
论断
Kronos 歹意软件的代码品质方面很高,但相较于其余歹意软件,其功效并无甚么“高超”的地方。只管bot法式在暗盘服装论坛t.vhao.net上得到了很好的评估,但因为其订价过高,是以在受欢迎水平方面,它老是落后于其余歹意软件。