8-BitQuest
菜单
[威胁情报]

南亚之蟒:针对印度国防部投递 Python 窃密软件

· 1 分钟阅读 · @admin

南亚之蟒 Python 窃密软件像素封面

针对印度国防部下属部门 CSD 的一次攻击里,初始访问用的是带远程模板注入的文档。受害者打开文档后,会加载含宏的远程模板,再释放用 PyInstaller 打包的 Python 窃密程序。

1 诱饵文档

样本文件名是 Anaya shoot feedback.docx。文档元数据里能看到这些信息:

  • 创建时间是 2022-01-05。
  • 模板基于 Office 默认的 Blue Curve Letterhead 改过。
  • 正文放了一张图,用来诱导受害者启用宏。

打开文档时先显示这张图,提示启用宏才能查看内容。图下面还放了 Microsoft、McAfee 等厂商的商标,让人觉得文件是安全的。

远程模板写在文档的 word/_rels/settings 关系里。

2 远程模板 flyer.png

模板里调用了不少敏感函数,从导入就能大致看出宏要做的事。

2.1 检测执行环境

受害者打开文档后,宏先跑 Document_Open。这个函数检查当前环境:如果发现自己在虚拟机里,或者某些进程正在运行,就弹窗告诉受害者文档打不开,让对方换一台机器再打开。

虚拟机检测会查询自己是不是跑在 VMware、QEMU、Xen 里。

另外还会看进程监控、网络监控一类工具有没有在跑。

2.2 释放文件

远程模板被加载后,会落在 IE 的下载缓存目录:

%AppData%\Microsoft\Windows\INetCache\IE\

宏从这个缓存里找到已经下载的 flyer.png,在它所在目录创建 Content.Word,再在下面建一个随机名目录,并写入一个随机名的 zip。

flyer.png 里有标记 @@@===@@@,标记后面是一段压缩数据。宏把这段数据读出来存成前面那个 zip,解出 theme01.xml,再放到:

%windir%\system\spool\driver\color\sppsvc.exe

压缩包里的另一个文件是诱饵文档 document01.docx,内容是印度国防部门发布的摩托车、自行车和电动车价格清单。

2.3 替换模板

宏执行完后,把文档加载的远程模板换成本地的 Normal.dotm,把加载痕迹清掉。

如果本机没有 Normal.dotm,宏就删掉远程模板里的宏代码再保存,这样下次打开时加载的模板不再带宏。

2.4 计划任务

通过 Schedule.Service 创建计划任务。任务从当前时间起每 15 分钟执行一次,运行超过 72 小时后停止。

触发后执行的命令是:

%windir%\system\spool\driver\color\sppsvc.exe E9FC-289C3-FF0AF-142B6-D3BEA

2.5 清理痕迹

计划任务创建成功后,删除 IE 缓存里的文件和解压出来的文件。

3 sppsvc.exe

这个程序是 PyInstaller 打包的 Python 窃密程序。运行时看有没有参数,再决定走哪条流程。

入口如下:

它使用的指令:

指令 作用
DS 收集信息
DU 上传 list.log
DX 上传系统信息
DSU 上面三种都做
EX 退出
其他 建管道执行命令,结果写到 xELogs.log

3.1 收集文件名

遍历所有盘符,找指定后缀的文件,把文件名写入 list.log。

收集的后缀:

3.2 心跳

窃密程序把系统信息当成心跳,也用来区分受害者机器。心跳发给 C&C 后,等待下发指令。

心跳有两种类型。reg 是第一次运行,收集完整系统信息再发出去。之后通信用 valid,只带 UUID、主板序列号、主板制造商这些字段。

reg 还会用 POST 把收集到的数据交上去,目标是 149.28.241.241 上的一个 PHP 路径。

3.3 上传类型

上传同样走 POST。JSON 里用键 T 表示这次传的是什么:

键值 含义
FDU 上传 list.txt 里列出的文件
CC 发送 UUID、序列号、主板品牌、产品型号、CPUID 和操作系统名称
CA 发送完整系统信息

4 ATT&CK

战术 名称 ID 在这次活动里
Initial Access Phishing T1566 钓鱼文档投递
Execution Scheduled Task/Job T1053 计划任务定时拉起程序
Defense Evasion Template Injection T1221 Office 文档使用模板注入

更多文章