最近在研究APT攻击,我选择研究APT的方法是通过一个APT组织入手,我选择的是APT28这个组织,APT28组织是一个与俄罗斯政府有关的高级攻击团伙,我将通过分析该组织的攻击样本、攻击方法、攻击目的来研究一个APT组织。本次分析的是该团伙使用的宏病毒,所有资料均来自互联网。
此次分析的样本一共如下三个:
攻击时间 攻击具体目标 发现安全公司 投递方式
文件名称 crash list(Lion Air Boeing 737).docx
SHA-256 2cfc4b3686511f959f14889d26d3d9a0d06e27ee2bb54c9afb1ada6b8205c55f
创建时间 2018:09:11 04:22:00Z
文件大小 32.9 KB (33,775 字节)
打开的时候发现会进行远程模板加载,使用这种攻击首先初始文件不会有由明显的恶意代码,并且可以收集受害者的IP,一旦攻击成功,就关闭服务器,难以追踪。
打开后并没有针准对性的构造,而是使用常见的提示加载宏。
远程模板的位置 http://188.241.58.170/live/owa/office.dotm
并对宏代码进行了加密
可以看到代码跟以前发现的宏样本,还是没有进行一些混淆工作,但是这次使用AutoClose,这样只有文档关闭的时候,恶意代码才会执行。这样会绕过一些不关闭文档的沙箱检测
此次宏文件一共会创建两个文件,分别为在如下两个所示,分别从 UserForm1.Label2.Caption和UserForm1.Label1.Caption 中提取出来使用base64编码的恶意文件
Environ("APPDATA") "\MSDN\" "~msdn"
Environ("TEMP") "~temp.docm"
可以看到UserForm1 时窗体,右键保存后,可以看到里面经过base64编码的恶意文件
在将~msdn和~temp.docm写入后开始加载~temp.docm,最后运行~temp.docm的Module1.Proc1。
最后可以看到通过shell运行释放的exe
文件名称 Hotel_Reservation_Form.doc
SHA-256 a4a455db9f297e2b9fe99d63c9d31e827efb2cda65be445625fa64f4fce7f797
创建时间 2017:07:03 05:33:00Z
文件大小 76.7 KB (78,600 字节)
样本运行完如下,可以看到针对特定的攻击目标对内容进行了特定的定制化。
分析宏代码,发现宏代码时加密过的
解密可以看到三个函数,攻击者并没有做太多的混淆,而是将关键的PE文件BASE64编码放到XML文件中
AutoOpen()
DecodeBase64(base64)
Execute()
获取指定xml节点的
最后发现在docProps/app.xml中 发现了这个base64编码的文本
之后将base64文本文件解码
解密后为一个PE文件
发现将样本放到 APPDATA环境变量的目录下,文件名为user.dat,最后使用了WMI调用
rundll32.exe 启动
文件名称 Conference_on_Cyber_Conflict.doc
SHA-256 e5511b22245e26a003923ba476d7c36029939b2d1936e17a9b35b396467179
ae
创建时间 2017:10:03 01:36:00
文件大小 333 KB (341,504 字节)
样本运行完如下,可以看到针对特定的攻击目标对内容进行了特定的定制化。
对宏代码进行了加密
解密可以看到三个函数,攻击者并没有做太多的混淆,而是将关键的可执行文件分散放编码放到文件属性中,
AutoOpen()
DecodeBase64(base64)
Execute()
将base64数据放到了word的内置属性中
合并获取的编码值并解码
最后设置bat脚本,然后启动
通过分析发现,样本内容是有很多针对性的,虽然是宏病毒,但是也是使用了很多反沙箱的技术的。
参考链接:
https://www.fireeye.com/blog/threat-research/2017/08/apt28-targets-hospitality-sector.html
https://researchcenter.paloaltonetworks.com/2018/11/unit42-sofacy-continues-global-attacks-wheels-new-cannon-trojan/
https://blog.talosintelligence.com/2017/10/cyber-conflict-decoy-document.html