新的模块化下载器分析 - AdvisorsBot
Posted 维他命安全
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新的模块化下载器分析 - AdvisorsBot相关的知识,希望对你有一定的参考价值。
概述
从2018年5月开始,Proofpoint的研究人员观察到一个以前未被记录过的下载器AdvisorsBot出现在恶意电子邮件活动中。这些活动似乎主要针对酒店、餐馆和电信公司,并由攻击组织TA555进行分发。到目前为止,我们观察到AdvisorsBot被用作第一阶段的payload,它与Marap一样,通过一个系统指纹模块来识别感兴趣的目标以进一步分发其它模块或有效荷载。AdvisorsBot还处于开发过程中,我们观察到该恶意软件的另一个基于PowerShell和.NET的重写版本。
垃圾邮件活动分析
2018年5月我们首次观察到分发AdvisorsBot的垃圾邮件活动。从那时起,这个垃圾邮件活动使用了多个不同的主题。第一个是针对酒店的重复收费主题(图1)。第二个是针对餐馆的食物中毒主题(图2)。第三个是同样针对餐馆的酒席预订主题(图3)。第四个是针对电信公司的简历主题。虽然我们观察到针对酒店、餐馆和电信公司的攻击活动,但这些攻击活动并不像它们的主题暗示的那样有针对性,很多信息的内容都与主题无关。
在五月和六月的垃圾邮件活动中,恶意文档包含用于执行PowerShell命令的宏,该PowerShell脚本可下载和执行AdvisorsBot。在8月8日的恶意活动中,攻击者转变了他们的技术:通过宏来执行PowerShell命令,该PowerShell命令又下载了另一个PowerShell脚本。此脚本通过执行内嵌的shellcode来运行AdvisorsBot,而不会将其写入磁盘。最后,8月15日攻击者做出了另一个重大改变:通过宏下载并执行一个PowerShell版本的AdvisorsBot,我们称之为PoshAdvisor。
图1:包含有关重复收费问题的钓鱼邮件
图2:包含有关食物中毒事件的钓鱼邮件
图3:包含有关酒席预订信息的钓鱼邮件
图4:包含简历信息的钓鱼邮件
图5:钓鱼文档示例
恶意软件分析
AdvisorsBot得名于其早期的命令与控制(C&C)域名包含词语advisors。该恶意软件是用C编写的,但攻击者最近创建了一个新的分支 – PoshAdvisor。
反分析功能
与大多数现代恶意软件一样,AdvisorsBot采用了许多反分析功能。其中最有效的一个方法是使用垃圾代码(例如额外指令、条件语句和循环)来减慢逆向工程的速度。例如,将函数的开头(“命令和控制服务器”章节中讨论的URI生成的一部分)在恶意软件的x86版本(图6)与x64版本中的相同函数(图7)进行比较,可以明显看到垃圾代码的影响。
图6:恶意软件的x86版本包含更多的垃圾代码
图7:x64版本包含的垃圾代码要少得多
在上述截图中,我们还可以看到另外两个反分析功能:
大多数字符串是栈字符串,这意味着字符串中的字符是通过单独的指令手动push到栈内存中。这使得快速查看恶意软件的字符串内容变得更加困难。
Windows API函数哈希,它阻碍了对恶意软件功能的识别。该哈希算法的一个Python版本的实现可在Github上找到[1]。
为了发现各种恶意软件分析工具,AdvisorsBot将获取系统卷序列号和每一个进程名称的CRC32哈希值,并将它们与硬编码的哈希值列表进行比较。如果找到匹配项,则该恶意软件将退出运行。为了检测是否在虚拟机上运行,该恶意软件将检查系统的固件表(通过调用GetSystemFirmwareTable)以查找与虚拟机供应商相关的字符串。同样,如果找到匹配项,该恶意软件将退出运行。
在8月8日的活动中,很明显攻击者密切关注连接到C&C服务器的受害者的特征。此活动中更新版本的AdvisorsBot包含一个额外的反分析功能,其将系统的机器SID与硬编码的13位值列表进行比较(图8)。我们认为他们在之前的恶意活动中对沙盒或恶意软件研究人员的系统进行了分析,并将其列入黑名单。
图8:AdvisorsBot将受害者机器的SID与黑名单进行比较的代码片段
命令与控制服务器(C&C)
该恶意软件使用HTTPS与C&C服务器通信。在与C&C的通信中,包含编码数据的URI用来识别受害者,例如:
/aa/rek5h/lnl5/s4zakljmo/4f/xbdju4a02tnxywx/etl2dni405a1khwxyg0r2.jpg
更具体地说,URI中的编码数据包含机器SID、计算机名称的CRC32哈希值、一些未知的硬编码值以及Windows版本:
图9:URI数据结构的代码片段
这些数据通过以下步骤进行编码:
生成随机的4字节XOR密钥
使用该密钥对数据结构进行XOR编码
使用类似于base32的编码格式将密钥和加密数据从二进制转换为小写字符和数字
添加随机的斜杠,使其类似于URL路径
在GET请求中添加.jpg扩展名,在POST请求中添加.asp扩展名
通过GET请求向C&C服务器请求命令。服务器发回的响应(包含命令)的结构如下:
偏移0:命令
偏移4:未知,可能是模块ID或命令ID
偏移8:加密数据的长度
偏移12:明文数据的CRC32哈希值
偏移16:XTEA IV
偏移24:XTEA密钥
偏移40:使用CBC模式的XTEA加密数据
AdvisorsBot目前只能接收和执行两个命令:
加载模块(命令ID 1)
在线程中加载shellcode(任何其它命令ID)
这里的模块是手动加载的DLL(分配缓冲区、复制PE头和部分、重定位、解析导入表以及执行入口点等)。“通信”功能从下载器传递到模块,以便它可以将数据发送回C&C服务器。这些请求具有相同的URI格式,其POST数据结构如下所示:
偏移0:加密数据的长度
偏移4:明文数据的CRC32哈希值
偏移8:XTEA IV
偏移16:XTEA密钥
偏移32:使用CBC模式的XTEA加密数据
模块
在本文档发布时,我们只观察到从C&C服务器发送的一个系统指纹识别模块。它用于执行以下活动并将其输出发送回C&C:
屏幕截图,并用base64对其进行编码
提取Microsoft Outlook帐户的详细信息
运行以下系统命令:
systeminfo
ipconfig /all
netstat -f
net view
tasklist
whoami
net group "domain admins" /domain
dir %USERPROFILE%\Desktop
wmic /namespace:\\root\securitycenter2 path antivirusproduct GET displayName,pathToSignedProductExe
PoshAdvisor
8月15日,我们观察到本月的第二个AdvisorsBot恶意活动。然而,在对有效载荷进行更仔细的分析之后,我们惊讶地发现攻击者已经利用PowerShell和一个内置的.NET DLL重写了该恶意软件。我们将该变体跟踪为PoshAdvisor,虽然它与AdvisorsBot不完全相同,但它确实包含相同的内容:
URI生成过程和格式(图10)
C&C响应格式和加密方法
模块下载和执行功能
系统指纹识别功能(图11)
图10:表明PoshAdvisor的URI生成过程具有相似性的代码片段
图11:表明PoshAdvisor的系统指纹识别功能具有相似性的代码片段
通常情况下很难看到用完全不同的编程语言重写恶意软件,因此这一情况值得注意。
结论
虽然攻击者是否会继续在未来的活动中分发AdvisorsBot及PoshAdvisor还有待观察,但该下载器具有大量的反分析功能和日益复杂的分发技术,因此还需要进行进一步的调查。AdvisorsBot以及我们上周详述的另一个类似但不相关的恶意软件(Marap)代表了一个小型、多面的恶意软件的增长趋势。这类恶意软件使攻击者能够灵活地发起攻击,并识别感兴趣的系统。
参考文献
[1] https://github.com/EmergingThreats/threatresearch/blob/master/advisorsbot/func_hashes.py
入侵指标 (IOCs)
https://www.proofpoint.com/us/threat-insight/post/new-modular-downloaders-fingerprint-systems-part-2-advisorsbot
声明:本资讯由启明星辰维他命安全小组翻译和整理
维他命安全简讯
微信:VitaminSecurity
信息安全那些事儿~
长按二维码关注
以上是关于新的模块化下载器分析 - AdvisorsBot的主要内容,如果未能解决你的问题,请参考以下文章