“SIDEWINDER”APT攻击样本分析报告 2019-10-14 启明星辰金睛安全研究团队
一、 基本信息
1.1 样本基本信息
样本一:
样本名:zhengce.doc
MD5:bfad291d000b56ddd8a331d7283685b2
样本二:
样本名:xiangshan_update.doc
MD5:7a919f65d74169acf29f5fb017968bf1
1.2 主要执行流程描述
二、 关键技术概览(必需)
2.1 关键技术一:漏洞利用
CVE-2017-11882
2.2 关键技术二:白加黑利用
使用系统文件Cwrite.exe dll劫持执行PROPSYS.dll
2.3 关键技术三:无文件技术
1.样本使用托管执行JS脚本
2.使用C#内存执行恶意代码
三、 详细分析(必需)
3.1 原始样本分析
原始样本为rtf格式的文件,经过多引擎检测,文档使用了CVE-2017-11882漏洞
使用oletools查看并提取出ole对象,共有两个ole对象,其中package会被默认释放到Temp文件夹下,会被命名为1.a,而Equation.3作为OLE对象触发公式编辑器CVE-2017-11882漏洞
其中1.a为Javascript代码
CVE-2017-11882漏洞所触发执行的shellcode较短,在最后会调用RunHTMLApplication,这个函数常被用于执行JS脚本代码,但是在这里并未借助于rundll32.exe这个系统进程执行,而是直接在shellcode代码中直接调用JS脚本的方式
RunHTMLApplication函数的参数参由函数本身使用GetCommandLine自行获取
在调用RunHTMLApplication之前,shellcode就已经在内存当中异或0x12解密出了当前进程的命令行字符串
这里执行的JS脚本代码的作用就是读取1.a的所有JS代码并执行
3.2 第一阶段1.a分析
1.a是Javascript的脚本代码,首先隐藏了窗口
检查当前.NET环境版本,设置环境变量以强制使用2.0/4.0的C#语言编译器
将shellcode解密后存放到内存流之中
解密之后的数据就是一个C#编写的PE文件,这个dll名字为StInstaller.dll,然后使用托管调用的方式,使用函数创建Program类实例,然后调用类的Work方法,传入了3个加密的参数
3.3 第二阶段StInstaller.dll分析
这个dll是一个C#程序,Work函数整体结构如下
在函数中首先通过解密出3个关键字符串,分别为目录域名和注册表键值名
C:\ProgramData\AuthyFiles目录下拷贝一个系统文件write.exe,并在注册表项中添加自启动
将之前传入的x、y参数进行base64解密后再修改部分数据,将数据以文件形式放入AuthyFiles目录下,其中x解密后变为PROPSYS.dll,y解密后变为随机名字的.tmp文件,write.exe为系统文件,最后执行write.exe,利用白加黑执行恶意文件。
3.4 第三阶段白加黑分析
首先write.exe加载PROPSYS.dll,PROPSYS.dll获取.tmp文件的内容进行解密,解密的方式为使用tmp文件的前32字节作为密钥做异或解密,然后调用解密后的代码
3.5 第四阶段.tmp文件分析
这是名为SystemApp.dll的恶意dll,整个恶意程序的主要功能都在这个dll之中,关键结构如下,主要功能就是窃取信息以及接收C&C命令
从名为Default的资源中解密出配置数据,解密方式同样使用前32字节作为密钥,解密出的数据包括路径信息、URL信息、窃取文件类型等重要信息,将配置内容加密后存入到Authy
接下来会在C:\Users\用户\AppData\Roaming\AuthyDat目录下生成3个文件,文件名随机生成,用来将接下来窃取的数据写入这3个文件当中
Sif文件主要用来收集当前用户权限、用户信息、桌面文件信息、硬盘驱动器信息、安装软件信息等
Flc文件主要遍历所有驱动器的目录,包括驱动器类型、大小、剩余空间等,所有目录名字、属性、创建时间、修改时间等,以及之前列举的文档文件名字、属性、路径、时间信息等
接下来似乎是判断系统中是否安装中文语音播报功能,并将收集的结果写入到flc文件当中
最后执行两个计时器函数,函数延迟5s后执行,第一个计时器函数用来从URL下载数据,解密执行
第二个计时器函数用来回传文件,发送之前收集的.sif/.flc/.fls以及发生错误生成的.err日志
四、 ATT&CK
T1193:Spearphishing Attachment
T1203:Exploitation for Client Execution
T1060:Registry Run Keys / Startup Folder
T1038:Application Shimming
T1116:Code Signing
T1073:DLL Side-Loading
T1143:Hidden Window
T1083:File and Directory Discovery
T1082:System Information Discovery
T11005: Data from Local System
T1032:Standard Cryptographic Protocol
五、 关联方法
5.1 代码特征关联
此次样本使用CVE-2017-11882与RunHTMLApplication技术相结合的技术,这种技术与曾披露出的响尾蛇样本一致(https://www.freebuf.com/articles/paper/172628.html
StInstall.dll的代码逻辑与19年2月的样本极其相似
5.2 IOC关联
本次样本的URL为trans-can.net,经各引擎查询,这是已被披漏的响尾蛇资产
六、 解决方案
6.1 流量检测特征添加原理
本次样本流量使用SSL加密,故暂时无法提取流量特征
6.2 IOC信息
IOC:bfad291d000b56ddd8a331d7283685b2
9617384CFE4BF722144FE7D80C5FB10E
0FE01E6A62AED9238155710F0F4B811D
A8062547159B820DDBBEAA32EF933F10
Trans-can.net
七、 参考链接
原始推文:
https://twitter.com/Timele9527/status/1182587382626996224
文档链接:
https://www.freebuf.com/articles/paper/172628.html
https://s.tencent.com/research/report/659.html