本文介绍FindMyName攻击活动中出现的Azorult恶意软件变种和使用的混淆技术。

Azorult是通过垃圾邮件活动传播的恶意宏文档中使用的木马家族,同时也是RIG利用套件中的备用payload。2018年10月,研究人员发现一起使用Fallout利用套件将新Azorult变种作为主payload进行传播的正在进行的攻击活动。因为final利用页面的域名是findmyname[.]pw,因此研究人员将该攻击活动命名为FindMyName

FindMyName攻击活动第一阶段分析

10月20日,研究人员发现了FindMyName攻击活动。在随后的3天内,研究人员共发现Fallout 利用套件使用的5个不同的URL链。这5个URL链都将受害者重定向到同一个域名:findmyname[.]pw

FindMyName攻击活动的第一阶段如图1所示:

图1 攻击的第一阶段

虽然findmyname[.]pw的5个final页面都是不同的,但是内容是相似的。如图2所示:

图2 混淆后的landing page
Fallout利用套件使用了不同的html标签来隐藏真实的利用代码和高度混淆的标签内容,包括span, h3, p等。解密后,真实的VBScript代码利用了 IE VBScript漏洞CVE-2018-8174

图3利用CVE-2018-8174的代码段

漏洞利用成功后,Fallout利用套件会下载一个.tmp文件到%Temp%目录,并调用CreateProcess来执行tmp文件。进一步分析发现.tmp文件是最新的Azorult变种。这也是研究人员首次发现Azorult恶意软件变种被Fallout利用套件用作主要的payload。

FindMyName攻击活动第二阶段分析

Azorult恶意软件变种分析

Azorult恶意软件加载是暗网出售的商业化木马。研究人员在FindMyName攻击活动中共发现3个Azorult恶意软件的变种,其中有2个之前没有出现过。研究人员分析获取的样本发现恶意软件有以下特征:

  1. 通过API洪泛绕过反病毒模拟器;
  2. 阻碍通过控制流平坦化(control flow flattening)混淆技术来逆向恶意软件;
  3. 使用process hollowing进程创建技术构造新的恶意软件镜像;
  4. 窃取更多浏览器的凭证、cookie、历史记录和保存的自动填充;
  5. 窃取更多的加密货币钱包;
  6. 窃取skype, telegram, steam, FTP客户端, Email客户端的凭证和历史记录;
  7. 通过安装的程序、截屏、机器信息、用户名、操作系统版本和运行的进程来获取受害者信息;
  8. 从用户桌面收集文件;
  9. 反取证组件可以清除所有释放的文件;
  10. 根据C2通信执行特定的文件。

API洪泛和控制流平坦化混淆

最早的Azorult恶意软件是用Microsoft Visual C++ 7.0编写的。

  • 首先,Azorult恶意软件会尝试使用control flow flattening混淆来阻碍逆向分析恶意软件,如图4。
  • 第二,样本使用API洪泛技术,如图5。API洪泛是恶意软件用来绕过防病毒模拟器的技术。出于性能的考虑,防病毒模拟器模拟在受害者机器上执行恶意软件时间会设置计时器timer。如果模拟器模拟上百个time consuming函数,当模拟器超时时会将文件标记为非恶意的。

图4 control flow flatten

图5 API flooding

Process Hollowing

Azorult会使用process hollowing技术来构造新的恶意软件镜像。

  • 首先,恶意软件会解密内存中的payload。
  • 然后,创建一个自己的新的挂起进程。
  • 第三,将解密的payload注入新进程。
  • 最后,恢复新进程的执行并展示恶意行为。

恶意软件执行如图6所示:

图6 样本process hollowing

C2通信

从进程中复制出的新木马文件是用Delphi编写的。当样本执行时,会连接到C2服务器接收指令。为了绕过IPS,C2流量也被混淆了。发回C2的数据包括用哈希算法编码的机器GUID、Windows产品名、用户名和计算机名形成的唯一受害者ID。然后恶意软件会解密C2地址,并将加密的受害者IDPOST51[.]15[.]196[.]30/1/index.php。C2流量如图7所示。

图7 C2请求

样本会解密并验证C2响应的有效性。解密的C2内容由三个部分组成。第一个部分在<n></n>标签中,含有48个合法的DLL,用于信息窃取。第二部分在<d></d>标签中,含有用于信息窃取的应用信息:包括应用路径、相关的注册表和凭证文件名。第三部分位于<c></c>标签中,含有样本的C2配置。C2配置文件如图8所示。根据pcap分析,研究人员发现该样本会检查以下字符:

  1. “+”: 启用特定的恶意函数
  2. “-”: 禁用特定恶意函数
  3. “I”: 收集主机IP信息
  4. “L”: 从远程服务器下载和执行文件

图8 C2配置

C2中说明的恶意软件:

  1. 窃取浏览器密码凭证;
  2. 窃取浏览器cookie、自动填充凭证,从FTP客户端、Email客户端窃取凭证;
  3. 窃取浏览器历史;
  4. 窃取比特币钱包;
  5. 窃取Skype聊天信息main.db
  6. 窃取telegram凭证;
  7. 窃取steam凭证(ssfn)和游戏metadata(.vdf);
  8. 截图并发送给攻击者;
  9. 清除临时恶意软件;
  10. 从桌面收集文件;
  11. 发送GET请求到ip-api[.]com/json来获取主机IP信息;
  12. 下载和执行C2指定的文件。

图9是从Firefox和Thunderbird中窃取敏感信息的C2配置示例:

图9 窃取信息的C2配置

C2流量如图10所示:

图10 C2流量概览

信息窃取器

样本会从32中浏览器中窃取凭证和用户数据,包括Chrome, Firefox和Qihoo 360等主流浏览器。为了从浏览器窃取凭证,样本会从C2响应中下载48个合法的dll文件到%AppData%\Local\Temp\2fd文件夹,如图11所示:

图11合法dll文件

这一动作的目的是加载nss3.dll和下面的函数:

  • sqlite3_open
  • sqlite3_close
  • sqlite3_prepare_v2
  • sqlite3_step
  • sqlite3_column_text
  • sqlite3_finalize
  • NSS_Init
  • PK11_GetInternalKeySlot
  • PK11_Authenticate
  • PK11SDR_Decrypt
  • NSS_Shutdown
  • PK11_FreeSlot

这些函数都用于复制敏感的浏览器信息。比如恶意软件会用sqlite3_*函数来获取Firefox浏览器历史信息,如图12所示:

图12使用nss3.dll中的APIs窃取Firefox敏感信息

下面是从保存的Chrome数据中窃取用户名和密码。恶意软件样本会在路径%LOCALAPPDATA%\Google\Chrome\User Data\下搜索Login Data。绕过搜索到,就复制Login Data文件到%AppData%\Local\Temp,并调用nss3.dll中的sqlite3_prepare_v2函数来窃取凭证,如图13所示:

SELECT origin_url, username_value, password_value FROM logins

图13 从窃取的浏览器凭证中选择字符串

恶意软件样本也会从前面提到的浏览器中提取cookie、书签和自动填充信息。凭证信息保存在PasswordsList.txt,cookies保存到CookieList.txt

样本还会从窃取以下加密货币钱包:

  • Ethereum
  • Electrum
  • Electrum-LTC
  • Jaxx
  • Exodus
  • MultiBitHD

恶意软件会找到含有加密货币钱包敏感信息的特定文件。比如,图14就是样本尝试在Coins\MultiBitHD中找到并发送mbhd.wallet.aes文件。

图14 窃取加密货币钱包

恶意软件样本会从主流应用中窃取凭证和用户数据,包括Thunderbird, FileZilla, Outlook, WinSCP, Skype, Telegram, Steam。样本也会窃取桌面的文件。图15是样本从%appdata%\Telegram Desktop\tdata目录中找到D877F783D5*.map*文件来从Telegram中窃取敏感信息。

图15 窃取应用凭证

恶意软件样本会收集用户信息,包括当前进程,安装的软件,系统语言和时区。窃取的凭证和用户信息都会发送给C2。下面是收集的一些系统信息:

  • 恶意软件获取受害者主机截屏,并保存为scr.jpg,如图16所示。

图16截屏

  • 恶意软件上传文件到C2响应中的路径。
  • 发送GET请求到ip-api[.]com/json,来获取受害者主机IP信息。保存json响应到ip.txt
  • 收集以下信息,保存为system.txt:
    • 机器GUID
    • Windows产品名
    • 用户名
    • 计算机名
    • 系统架构
    • 屏幕宽和高
    • 系统语言
    • 当前时区
    • CPU核数
    • 调用CreateToolhelp32Snapshot来获取当前进程列表
    • 显示版本
    • 安装的软件(Software\Microsoft\Windows\CurrentVersion\Uninstall\
    • 获取当前账户权限

恶意软件收集的信息如图17所示:

图17 恶意软件收集的信息

执行指定文件

攻击者可以通过Create ProcessShellExecute远程控制受感染的系统执行任意文件,如图18所示。研究人员还发现恶意软件可以访问恶意URLplugin-update[.]space/download/10.17.18.exe来获取文件。

图18 调用Create ProcessShellExecute来执行文件

Azorult新变种还可以以本地系统权限执行恶意软件。通过以下逻辑来检查当前SIDtoken,如图19所示:

  • 如果当前级别是local_system
    • 调用WTSQueryUserTokenCreateProcessAsUser来创建一个系统权限的新进程,如图20。

图19 检查SID和token

图20 以本地系统权限创建进程

擦除痕迹和删除文件

恶意软件会擦除%temp%\2fda中的所有文件,并根据C2命令删除文件,如图21和图22所示:

图21 擦除感染痕迹

图22 根据C2命令删除文件

总结

研究人员发现一起新的攻击活动findmyname,攻击者使用Fallout利用套件传播Azorult恶意软件的新变种。该新变种增强了许多能力,可以从更多的软件和加密货币钱包中窃取信息。相比而言,最新的Windows系统主机感染率更低。

https://researchcenter.paloaltonetworks.com/2018/11/unit42-new-wine-old-bottle-new-azorult-variant-found-findmyname-campaign-using-fallout-exploit-kit/

点击收藏 | 0 关注 | 1
  • 动动手指,沙发就是你的了!
登录 后跟帖