AZORult是一种信息窃取的恶意软件,随着时间的推移已经发展成为一种多层功能的软件。Azorult是通过垃圾邮件活动传播的恶意宏文档中使用的木马家族,同时也是RIG利用套件中的备用payload。 本次获取的样本通过携带恶意shellcode 代码的诱饵文件,利用CVE-2017-11882 漏洞执行shellcode 代码从黑客服务器请求下载恶意文件并执行实现对受害者计算机的入侵,具体分析如下
0x00 概述
AZORult是一种信息窃取的恶意软件,随着时间的推移已经发展成为一种多层功能的软件。Azorult是通过垃圾邮件活动传播的恶意宏文档中使用的木马家族,同时也是RIG利用套件中的备用payload。
本次获取的样本通过携带恶意shellcode 代码的诱饵文件,利用CVE-2017-11882 漏洞执行shellcode 代码从黑客服务器请求下载恶意文件并执行实现对受害者计算机的入侵,具体分析如下。
0x01 样本信息
诱饵文件基本信息如下:
诱饵文件伪装为调查统计表诱导受害者打开。
利用office 组件漏洞执行shellcode,从http[:]//maontakt.az/chief.exe 请求下载,将下载所得的文件存放至%APPDATA% 路径下,并重命名为name.exe。
在下载完成后,使用ShellExecuteW() API 函数执行文件。
下载所得name.exe 基本信息如下:
对name.exe 进行分析发现,该文件为C# 编写,并且进行了混淆。
对样本行为观察发现,该文件在运行过程中会产生两个自身的子进程。
使用工具对name.exe 进行调试。Name.exe 在执行时,首先会创建一个互斥,实现单例运行。
当然,如果创建失败,会弹出提示窗口并结束执行。
Name.exe 文件本身不会直接执行恶意操纵,而是通过加载本身携带的被加密过的PE 结构数据并进行解密,待该数据加载到内存后调用其中函数实现对系统数据的窃取。
这里使用zip 加密方式对PE 数据进行加密,通过对数据解密,dump 真实的PE 结构并保存为test.bin。
Test.bin 本身为使用C# 编写的dll 文件,基本信息如下:
通过对该文件调试发现,该dll 文件于name.exe 类似,都是解密一段PE 数据并加载到内存中执行。
将解密的PE 数据dump 并保存为dump.bin,基本信息如下:
在虚拟环境下执行dump.bin并抓取程序行为。可以发现该程序在运行过程中会产生多个相同的子进程,并且这些进程都在执行一小段的时间后结束。
使用工具对该程序进行调试。在调试过程中,发现该程序导入了多个系统API 函数用于某些恶意操作。
并且在调试过程中,发现该会获取一些计算机信息,如硬件主板信息:
除此之外,程序还会对当前运行环境进行判断,检测是否为虚拟机环境或沙箱环境。其中对虚拟机环境的检测包括检测Virtual Box 平台、VMWare 平台以及QEMU 平台。
以及对沙箱的检测:
到此也解释了为何样本行为中所产生的多个子进程都执行很短时间就退出的原因。
此外,该程序还会对服务器发起请求,执行文件下载操作并保存到%TEMP% 路径下。
以及通过在%APPDATA% 路径下创建自身文件实现程序的自我复制。
通过创建计划实现程序的持久化操作。
除上述操作之外,程序还会创建自身子进程并将其挂起。
使用WriteProcessMemory 函数向该进程写入一段恶意数据。而该数据同样也是一段PE 结构数据。
与上述类似的操作,dump 下该数据并保存为dump1.bin,基本信息如下:
通过使用PEiD查看可知该文件为Delphi 编写。
对dump1.bin 进行调试。
在恶意功能开始前,程序会先对所需要使用到的函数地址进行获取,具体函数包括:
接着,程序会利用之前获取的部分函数实现对计算机信息的获取,如:
获取计算机机器码
获取当前系统版本
获取计算机用户名
在获取到这些信息后,对这些信息进行拼接,并且暂存到内存空间中,用于后续使用。
之后程序根据之前获取的信息生成独立的互斥体名称,并依据该名称创建互斥体。
在互斥体创建成功后,会执行一段对网络发起请求的操作,这里主要是向 地址发起POST 请求并保存回传的数据到系统中。不过目前该地址已经无效。
尝试与服务器主机地址70.35.203.53 建立连接。
该程序最重要的功能是窃密,这里所被窃取的数据包括浏览器Cookie数据、浏览器历史记录、比特币钱包数据、Skype 聊天数据、Steam 凭证、屏幕操作截图等。
除此之外,程序还可以通过调用系统函数执行系统内的文件,实现对受害者计算机的远程操作。
程序还会对计算机基本信息进行获取并存放为system.txt,这些基本信息大致包括计算机机器码、计算机名、用户名、系统版本、屏幕分辨率、进程列表、用户权限等。
当对程序对受害者计算机内所需数据获取完成后,程序会删除自身在系统中存在过的痕迹。
0x02 总结
本次获取的样本利用携带恶意shellcode 的诱饵文件触发漏洞下载恶意文件并执行,恶意文件通过逐层解密,最终在内存中执行真正的恶意代码。通过分析该样本,总结出其大致执行流程如下:
- 本文作者: tutuj
- 本文来源: 奇安信攻防社区
- 原文链接: https://forum.butian.net/share/1630
- 版权声明: 除特别声明外,本文各项权利归原文作者和发表平台所有。转载请注明出处!