近日,研究人员发现了一个攻击链较长的攻击事件,其中利用 Python 脚本作为 Loader 实现隐蔽攻击。
在用户的启动文件夹中,发现了可疑链接文件 sysmon.lnk
,经过分析后发现该文件链接到恶意 Python 文件,利用 Python 文件将 RAT 远控木马注入系统。
整体攻击链情况如下所示:
名为 sysmon.lnk的 LNK 文件位于
c:\users<username>appdataroamingmicrosoftwindowsstartmenuprogramsstartupsysmon.lnk处。该文件重定向到可疑的 ctfmon.exe update.py执行,这两个文件位于
c:users<username>appdataroamingPpvcbBQhctfmon.exe和 c:Users<username>AppDataRoamingPpvcbBQhupdate.py。
ctfmon.exe
ctfmon.exe是重命名的 IronPython 解释器,该文件在 VirusTotal 上零检出。
在文件描述中就可以看到 IronPython 解释器的痕迹:
stage1.py
脚本中包含大段的混淆字符串和混淆的变量名:
经过分析,脚本使用 base64 解码混淆字符串、将解码字符串转换呈十六进制数、每个字节减去 12(十进制)。
处理后可见:
stage2.py
解开的脚本中有另一个混淆的字符串,并且引入了反射操作相关的库。
用 A 替换字符串中所有 ! 后使用 base64 进行解码:
得到了一个新的 PE 文件。
stage3.bin
可执行文件是 .NET 文件:
在 PDB 路径中发现了 injector.pdb,表明其可能的功能:
使用 Dnspy 进行分析:
查看函数名称就知道文件的功能,包括注入、加载和解码的函数,可以明白混淆后的 Payload 被解码注入进程中。
msbuild.exe还是 Mandark.Load函数的第二个参数。
这第二个参数是注入的目标进程:
程序中使用了编码与压缩:
压缩使用的是 Gzip 方式:
解码后可得到另一个 PE 文件:
stage4.bin
该文件是一个 C/C++ 编写的文件:
根据导出函数,可以看出其是另一个 Loader:
根据 PDB 路径可以看出一个类似 git 的文件结构:
检索后可以发现,这是 execute-assembly loader项目(Cobalt Strike 的 execute-assembly 模块开源实现)。
在文档中可以看见,嵌入的 payload 格式为 0|0|0|0|1|sizeofpayload.b64_encoded_compressed_payload:
在文件中也可以找到该格式的长字符串:
根据文档进行处理后,发现了另一个 PE 文件:
stage5.bin
该文件是 .NET 文件:
程序中有对 AMSI 进行 Patch 的脚本:
自定义加密/编码的方式如下所示:
密钥为 avyhk:
解密程序如下所示:
stage6.bin
该文件仍然是一个 .NET 文件:
该文件实际为远控木马,其主要功能如下所示:
该 RAT 木马使用 AES256 加密数据,再用 base64 进行编码:
解密后可得到配置信息:
该木马有多种反分析检查的技术:
DetectManufacturer:检查硬件描述判断是否在虚拟机中
DetectDebugger:检查调试器与 dnspy.xml 文件是否存在
DetectSandboxie:检查是否存在 Sandboxie 驱动程序(sbiedll.dll)
IsSmallDisk:检查硬盘是否小于 61GB
IsXP:检查操作系统是否为 XP
各功能结构如下所示:
还会利用计划任务和注册表进行持久化:
支持的命令如下所示:
Update:通过 PowerShell 下载恶意软件
SavePlugin:下载并加载恶意 DLL
Unload:通过命名管道发送终止命令
Restart:终止当前进程并通过计划任务重启
Self-delete:删除持久化并终止进程
IOC
windowsupdatecdn.cn
gjghvga7ffgb.xyz
huugbbvuay4.cn
3e442cda613415aedf80b8a1cfa4181bf4b85c548c043b88334e4067dd6600a6
dd1fa3398a9cb727677501fd740d47e03f982621101cc7e6ab8dac457dca9125
2CCADFC32DB49E67E80089F30C81F91DFFF4B20B8FC61714DF9E2348542007FD
4591EDA045E3587A714BB11062EB258F82EE6F0637E6AA4D90F2D0B447A48EF7
4417298524182564AED69261B6C556BDCE1E5B812EDC8A2ADDFC21998447D3C6
9B775DFC58B5F82645A3C3165294D51C18F82EC1B19AC8A41BB320BEE92484ED
169F5DBCD664C0B4FD65233E553FF605B30E974B6B16C90A1FB03404F1B01980
参考来源
本文作者:, 转载请注明来自FreeBuf.COM