自covid-19肺炎病毒在世界范围内爆发以来,伏影实验室密切关注该时事话题在黑客产业链中的利用情况。近期,伏影实验室发现了新的利用疫情话题传播的邮件木马,隐藏在其中的攻击流程显示黑客已将现阶段的主流攻击手法与疫情诱饵结合起来,给疫情诱饵邮件的大规模传播制造了条件。
总览
本次事件可以认为是已知成型攻击链的升级版本。黑客通过构造漏洞rtf文档执行恶意代码,进而分阶段地启动和注入用户进程,最终不落地加载SmokeLoader木马。
本次事件攻击流程如下图:

分析
rtf文档
文档名称为como usar mascarilla.doc,西班牙语意为“如何戴口罩”。文档打开后,将显示以下图片内容:

该内容为欺骗信息,恶意代码会通过rtf文档中的漏洞执行。
cve-2018-11882
该rtf文档使用的漏洞为cve-2018-11882,使用常见的GlobalLock方式跳转至Ole流中执行shellcode:

shellcode
shellcode中,程序向硬编码的短链接bit.ly/2Q*yP获取下一阶段载荷,该短链接指向http://213.*.*.134/m1/21397.jpg,程序会将获取到的二进制文件存储在路径”C:\Users\Public\908.exe”并运行。

AutoIT脚本
该二阶段载荷908.exe为AutoIT独立运行程序,是对AutoIT脚本的封装。该程序会加载资源段中的AutoIT脚本并执行:

复原该AutoIT脚本,发现其调用powershell运行命令。去除混淆后的命令如下:

该命令将在http://paste.ee/r/N*H处下载下一阶段载荷,并利用该载荷作为跳板,将最终载荷从https://paste.ee/r/k*g处下载并注入到MSBuild.exe中执行。
Hackitup注入工具
powershell下载的第一个载荷N*H是使用c#编写的dll注入工具。该工具经常被黑客用于进程注入。
该工具以Hackitup类的exe方法作为入口点,exe方法获取待注入程序和将注入程序路径,进而调用POPO类实现傀儡进程运行:

SmokeLoader
在注入工具的作用下,MSBuild傀儡进程访问https//paste.ee/r/k*g,最终加载了SmokeLoader木马。
该SmokeLoader变种分为两部分,分别是外部注入器和本体shellcode。
注入器
外部注入器会使用MapViewOfSection与PROPagate结合的方式将本体shellcode注入到explorer.exe中。
PROPagate注入关键函数SetPropA调用:

被重定向的UxSubclassInfo子类的头部:

外部注入器最后向explorer.exe发送WM_NOTIFY和WM_PAINT信息,使其调用UxSubclassInfo,创建本体shellcode线程:

shellcode
shellcode部分是SmokeLoader木马主体,与硬编码c2通信,获取c2下发的组件并加载。
从shellcode复原的部分c2通信逻辑:

通信
该SmokeLoader变种的通信分为两部分,首先由外部注入器尝试连接http://www.msftncsi.com/ncsi.txt,检查网络联通性:

随后SmokeLoader与c2地址http://213.*.*.197/1/进行通信:

通信使用rc4加密,密钥为0xDEADB97F:

木马初始通信内容解密后为带有木马版本和受控端id等信息的二进制数据:

遵循以下格式:
trojanversion+clientID+secondID+hardcoded0x61+byteflag1+byteflag2+thirdID+intflag1+intflag2+extracontents
c2的回复消息会伪装成HTTP 404信息。如果c2主机在线,将响应木马的信息发送大量组件。目前已知的SmokeLoader组件包括窃密工具、文件遍历工具、DDoS工具等,此外SmokeLoader还可以投放其他知名木马或挖矿木马。
结论
SmokeLoader是通过黑市传播的木马,通常由个人黑客或小型组织购买使用,并在软件基础上封装,构造攻击链并进行传播。
从此事件可以看出,如今这些小型黑客团体或个人也开始注意到covid-19疫情信息在木马传播方面的易用性,开始利用疫情诱饵展开攻击。
随着这些占黑客群体大多数的个体开始活跃,疫情诱饵邮件的数量也将达到泛滥的地步,这对一般用户和安全厂商都是一场考验。