导语:2018年5月,Proofpoint研究人员发现一起垃圾邮件活动中出现了一个名为AdvisorsBot的下载器。该攻击活动主要攻击酒店、餐馆、电信机构等,背后的运营者是TA 555。截止目前,研究人员发现AdvisorsBot被用作第一阶段payload,加载指纹模块,
2018年5月,Proofpoint研究人员发现一起垃圾邮件活动中出现了一个名为AdvisorsBot的下载器。该攻击活动主要攻击酒店、餐馆、电信机构等,背后的运营者是TA 555。截止目前,研究人员发现AdvisorsBot被用作第一阶段payload,加载指纹模块,与Marap一起用于识别目标来感染其他模块或payload。AdvisorsBot目前正在主动开发中,研究人员还发现了该恶意软件PowerShell 和.NET重写的版本。
活动分析
研究人员是2018年5月发现传播AdvisorsBot的攻击活动的。之后,攻击活动在邮件中使用了不同的主题,第一个是double charge,第二个是food posioning,第三个是resume,分别是针对酒店业、餐饮业和电信业的。分析发现,许多诱使用户点击的内容与攻击目标是不相关的。
5月和6月的活动中,含有宏的文档会执行PowerShell命令来下载和执行AdvisorsBot。8月8日的活动中,攻击者转变了战术,使用宏来执行一个PowerShell命令,该命令会下载另外一个PowerShell脚本。下载的脚本会执行嵌入的运行AdvisorsBot的shellcode,而无须写入硬盘中。8月15日,攻击者又做出了一些改变,下载和执行PowerShell的宏称之为PoshAdvisor。
图1: 针对酒店业进行攻击的传播AdvisorsBot的消息
图2: 针对餐饮业进行攻击的传播AdvisorsBot的消息
图3: 含有简历的传播AdvisorsBot的消息
图4: 宏文档示例
恶意软件分析
AdvisorsBot名称的来源是因为C2域名都含有advisors这个词。该恶意软件是用C语言编写的,但攻击者最近又创建了一个代码副本,之后在PoshAdvisor中进行分析。
反分析技术
与多数恶意软件相比,AdvisorsBot使用了大量的反分析技术。其中最有效的就是垃圾代码(junk code),比如额外的指令、条件声明和循环,这些都可以减缓逆向工程的速度。
图5: 恶意软件x86版本中明显含有很多的垃圾代码
图6: 恶意软件x86版本中含有垃圾代码数量较少
从图中,还可以看出两种其他的反分析特征:
Stack strings中存放的字符串更多,字符串中的字母是用单独的指令手动推送到栈内存中的。这就很难分析恶意软件使用的字符串。
Windows API函数哈希,这会阻碍恶意软件功能的识别。Github上有哈希算的的python实现过程。
为了检测不同的恶意软件分析工具,AdvisorsBot对系统卷序列号和每个运行的进程都进行了CRC32哈希,然后与硬编码的哈希值进行比较。如果匹配,就说明存在恶意软件分析工具。为了检测是否运行在虚拟机内,恶意软件会检测系统的固件表(通过调用GetSystemFirmwareTable)中与虚拟机厂商相关的字符串。如果有匹配的记录,说明运行在虚拟机内。
8月8日的攻击活动中,很明显的是攻击者关注受害者连接到C2服务器的特征。攻击活动中更新版的AdvisorsBot含有额外的反分析检查,即比较系统的机器SID与13个硬编码的值。研究人员认为这是恶意攻击者已经发现在之前的攻击活动中找出了沙箱和反恶意软件系统的轮廓。
图7: AdvisorsBot比较受害者机器SID与黑名单的代码段
C2
恶意软件使用HTTPS与C2服务器通信。在从僵尸主机到C2的请求中,研究人员发现URI含有用来识别受害者的编码的数据:
/aa/rek5h/lnl5/s4zakljmo/4f/xbdju4a02tnxywx/etl2dni405a1khwxyg0r2.jpg
URI中编码的数据含有机器SID、计算机名的CRC32哈希、硬编码的值和windows版本:
图8: 表明URI格式的数据结构代码
数据通过下面的步骤编码:
生成4字节的随机XOR key;
用key对数据结构进行XOR编码,将key预先插入到加密数据中;
把key和加密数据从二进制变为小写字母和数字组成的base32编码;
加入随机的斜杠,使其看起来更像URI路径;
在GET请求中添加.jpg扩展,在POST请求中添加.asp扩展。
来自C2服务器的命令也是通过GET请求接收的,响应中含有的命令结构如下:
Offset 0: Command 命令
Offset 4: Unknown, possibly module ID or command ID未知,可能是模块id或命令id
Offset 8: Length of encrypted data 加密数据的长度
Offset 12: CRC32 hash of plaintext data 明文数据的CRC32哈希
Offset 16: XTEA IV
Offset 24: XTEA key
Offset 40: XTEA encrypted data using CBC mode 使用CRC模式的XTEA加密数据
AdvisorsBot目前可以接收并显现两个命令:
加载模块(命令id 1)
以线程的方式加载shellcode(任意的命令id)
这些模块是手动加载的DLL(分配缓存、复制PE header和section、重分配、解析输入表、执行入口点)。从下载器传递给模块一个通信函数,这样就可以将数据回传给C2服务器。这些请求与URI的风格系统,但使用的POST数据结构如下:
Offset 0: Length of encrypted data加密数据的长度
Offset 4: CRC32 hash of plaintext data明文数据的CRC32哈希
Offset 8: XTEA IV
Offset 16: XTEA key
Offset 32: XTEA encrypted data using CBC mode使用CRC模式的XTEA加密数据
模块
截止发文,研究人员只发现一个从C2服务器发送的系统指纹模块。该模块会执行下面的活动,并发送输出的结果到C2:
截图并用base64编码
提取出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的攻击活动。根系发现使用的payload就是用PowerShell和 .NET DLL重写的AdvisorsBot。研究人员将该变种命名为PoshAdvisor,该变种与AdvisorsBot虽然有所不同,但以下内容是相同的:
URL生成和格式(图9)
C2响应的格式和加密方式
模型下载和执行功能
系统指纹功能(图10)
图9: PoshAdvisor的URL生成代码段
图10: PoshAdvisor的系统指纹代码段
结论
目前还不清楚未来传播AdvisorsBot和PoshAdvisor的攻击活动是否会继续,但这对下载器使用的反分析技术和传播技术是值得关注的。