欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

借助虚假海啸警报传播的恶意软件

来源:本站整理 作者:佚名 时间:2018-12-25 TAG: 我要投稿

一、前言
11月份时,FortiGuard实验室发现了一个邮件攻击活动,其中仿冒了针对日本民众的海啸警报。攻击邮件中包含指向假冒的日本气象厅(JMA)的一个链接,当用户点击该链接时就会下载Smoke Loader木马。监控这个伪造网站后,我们发现11月底时攻击者已经将Smoke Loader的下载链接替换成另一个链接,用来下载另一款高效木马:AZORult,这款木马可以用来收集被入侵系统的数据。

这两款恶意软件都只在俄罗斯地下论坛销售。目前,假冒的JMA网站仍然作为AZORult的C&C服务器在运行,并且会将用户重定向至合法的JMA网站。进一步调查假冒网站的域名信息后,我们发现了与同一攻击者有关的另一次攻击活动。

在本文中,我们分析了从假冒JMA网站上下载的恶意软件,也分析了同一攻击组织发动的其他攻击活动。

二、虚假海啸警报
2018年11月份,JMA两次发布安全公告,警告日本东北地区用户注意虚假海啸警报攻击活动。官方文档参考以下两处链接:

https://www.jma.go.jp/jma/press/1811/08c/WARNmail_20181108.pdf

https://twitter.com/JMA_kishou/status/1063345647653281794

这些垃圾邮件内容并没有使用标准日语,存在语法错误,因此很有可能由外国人编写,或者采用机器翻译。这两次攻击活动都会诱导用户下载恶意文件,文件下载链接如下所示:

hxxp://www.jma-go[.]jp/jma/tsunami/tsunami_regions.scr


图1. 虚假海啸警告邮件

攻击者将攻击域名伪装成合法的JMA域名(即https://www.jma.go.jp),但jma和go之间使用的是-符号。日本气象厅已经通过推特警告用户这两个域名有所不同。

图2. 官方JMA域名于伪造域名之间的区别

三、Payload变化历史
我们花了一个月时间监控恶意软件下载链接,发现攻击者对该链接做了多次修改,如下所示:

表1. hxxp://www.jma-go[.]jp/jma/tsunami/tsunami_regions.scr页面中恶意软件下载链接改动历史

表2. hxxp://jma-go[.]jp/jma/tsunami/1.exe中恶意软件下载链接改动历史

在十一月下半旬,该页面中已经删除了1.exe。

在11月25日后,网页上下载的恶意软件已经从Smoke Loader变成AZORult。这两款恶意软件都使用jma-go[.]jp域名作为C&C服务器地址。

其中,Smoke Loader C&C服务器地址为:

hxxp://jma-go[.]jp/js/metrology/jma.php
AZORult C&C服务器地址为:

hxxp://www.jma-go[.]jp/java/java9356/index.php
 

四、Smoke Loader
我们发现的所有4个样本均属于Smoke Loader家族,使用了相同的shellcode加载器(loader)和最终payload。一旦下载完毕,样本会尝试下载其他DLL插件或者下一阶段恶意软件。不幸的是,我们没有观察到攻击活动的下一阶段行为。CERT.PL之前发表过报告详细分析过Smoke Loader,大家可以参考此处链接阅读该报告。下文中我们会介绍样本的部分功能。

反分析功能
Smoke Loader在运行最终payload之前使用了多个反分析技术.

我们发现此次攻击活动中使用了各种技术,包括PEB标志检查和多重跳转等基本反调试技术。

恶意软件会检查程序是否使用了sbiedll,判断自身是否运行在沙箱环境中。

图3. 检查是否存在sbiedll模块句柄的反沙箱技术

恶意软件也会检查如下注册表项,判断其中是否包含某些知名的虚拟机名,检查虚拟环境:

HKLM\System\CurrentControlSet\Services\Disk\Enum
HKLM\System\ControlControlSet\Enum\IDE
HKLM\System\ControlControlSet\Enum\SCSI


图4. 检查注册表中特定字符串的反虚拟机技术

检查键盘布局
恶意软件也会检查目标系统的键盘语言信息,确保不会感染俄罗斯和乌克兰的用户。

图5. 检查键盘布局

PROPagate代码注入
这种注入技术最早于2017年发现,我们注意到Smoke Loader从2018年7月份就开始使用这种技术,大家可以参考此处阅读相关技术报告。

我们发现样本尾部存在如下代码。代码首先使用一个回调函数配合UxSubclassInfo结构来运行explorer.exe,触发注入的代码,然后将某个消息发送至窗口。触发回调代码后,恶意软件接着运行已注入的、解密后的AZORult payload。

图6. PROPagate代码注入

进程监控
在连接至C&C服务器之前,恶意软件会创建两个线程用来监控进程及窗口情况,这是另一个反分析功能。在线程中,恶意软件会计算进程名及窗口名的哈希值,然后将哈希值与payload中硬编码的名称哈希值进行对比。如果找到匹配的进程或者窗口,则会立即终止该进程或者窗口。

图7. 创建线程监听进程及窗口

C&C服务器
此次攻击活动中使用的所有Smoke Loader样本都使用如下URL作为C&C服务器地址:

hxxp://jma-go[.]jp/js/metrology/jma.php
恶意软件从某个结构体中解密出该URL,如图8所示。解密字符串的算法非常简单,如下所示:

decrypted_byte = not (encrypted_byte xor 0x36 xor 0x04 xor 0xAE xor 0xB8)


图8. Smoke Loader中用于加密URL的结构体

执行第二阶段恶意软件
Smoke Loader可以使用3种方法来下载第二阶段恶意软件或者插件:

1、无文件(fileless)方法:将下载的payload映射到内存中然后立即运行;

2、下载DLL并立即加载;

3、下载DLL或者EXE文件,然后使用regsvr32将其注册为服务。

五、AZORult
此次攻击活动中使用的AZORult为3.3版。该版本于2018年10月份首次发现。与3.3版相比,此次攻击活动中使用的AZORult功能一样,并没有任何修改。下文介绍了该样本的部分功能。

信息窃取功能
AZORult可以收集受害系统中的应用信息,具体目标如下:

1、浏览器历史记录

2、加密钱包

3、Skype

4、Telegram

5、Steam

C&C服务器
此次攻击活动中,恶意软件使用jma-go[.]jp作为C&C服务器地址:

hxxp://www.jma-go[.]jp/java/java9356/index.php
在3.3版的AZORult中,恶意软件使用Key-Weight(键值-权重)方式处理经过加密的URL:

表3. Key缓冲区以及对应的权重值数组(十六进制格式)

比如,解密目标域名首字母的过程如图9所示:

图9. AZORult中经过加密的URL以及首字母解密过程

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载