公开情报中的StrongPity联网组件
2020年5月23日,推特用户发布了一条推文,公开一个StrongPity的样本信息:
分析后发现这是一个很明显的多组件攻击链中的联网组件,且该组织的披露信息较少,于是对样本进行分析和历史样本追踪。
样本特征及检测规则
具体行为总结如下:
- 拼接字符串,解密部分拼接的字符串;
- 通过“CreateProcessW”运行“C:\Users\Administrator\AppData\Local\Temp\Panda”文件夹下的“winmsism.exe”和“sppser.exe”;
- 构建数据包上传到C2的parse_ini_file.php接口,上传字符串“v18_kt68p1_2854603683”;
- 接受C2服务器返回的指令,执行:
4.1. 从返回的数据流中解密还原出PE文件保存到工作目录下,并执行;
4.2. rmdir删除Panda工作目录并退出进程; - 遍历工作目录下只读隐藏的系统属性的“.sft”文件发送到C2服务器。
代码特征:
- 分离赋值:
- 获取磁盘的卷序列号
- 异或解密
- 特殊字符串
4.1 %sfilename="%ls"
4.2 name=%ls&delete=ok
YARA规则思路
特殊字符串
YARA是一个匹配工具,匹配的信息不止是字符串,还有十六进制的汇编代码等等。所以本文样本中的特殊字符串分为.Text
段中的分离赋值代码、.rdata
段中保存的字符串和异或解密代码。
由于在日常的APT组织跟踪时,发现恶意程序经常更换解密的密钥(StrongPity该组件也是),故不推荐作为主要检测手段。常见的一些APT样本YARA编写就不在此赘述了。
字符串
如有char类型特殊字符串“name=%ls&delete=ok”,和“%sfilename="%ls"”:
rule SpecialStrings
{
meta:
description = <