恶意软件分析:Python脚本被利用实现隐蔽攻击 | xxx恶意软件分析:Python脚本被利用实现隐蔽攻击 – xxx
菜单

恶意软件分析:Python脚本被利用实现隐蔽攻击

八月 30, 2021 - FreeBuf

近日,研究人员发现了一个攻击链较长的攻击事件,其中利用 Python 脚本作为 Loader 实现隐蔽攻击。

在用户的启动文件夹中,发现了可疑链接文件 sysmon.lnk,经过分析后发现该文件链接到恶意 Python 文件,利用 Python 文件将 RAT 远控木马注入系统。

整体攻击链情况如下所示:

恶意软件分析:Python脚本被利用实现隐蔽攻击

名为 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 上零检出。

恶意软件分析:Python脚本被利用实现隐蔽攻击

在文件描述中就可以看到 IronPython 解释器的痕迹:

恶意软件分析:Python脚本被利用实现隐蔽攻击

恶意软件分析:Python脚本被利用实现隐蔽攻击

stage1.py

脚本中包含大段的混淆字符串和混淆的变量名:

恶意软件分析:Python脚本被利用实现隐蔽攻击

经过分析,脚本使用 base64 解码混淆字符串、将解码字符串转换呈十六进制数、每个字节减去 12(十进制)。

恶意软件分析:Python脚本被利用实现隐蔽攻击

处理后可见:

恶意软件分析:Python脚本被利用实现隐蔽攻击

stage2.py

解开的脚本中有另一个混淆的字符串,并且引入了反射操作相关的库。

恶意软件分析:Python脚本被利用实现隐蔽攻击

用 A 替换字符串中所有 ! 后使用 base64 进行解码:

恶意软件分析:Python脚本被利用实现隐蔽攻击

得到了一个新的 PE 文件。

stage3.bin

可执行文件是 .NET 文件:

恶意软件分析:Python脚本被利用实现隐蔽攻击

在 PDB 路径中发现了 injector.pdb,表明其可能的功能:

恶意软件分析:Python脚本被利用实现隐蔽攻击

使用 Dnspy 进行分析:

恶意软件分析:Python脚本被利用实现隐蔽攻击

查看函数名称就知道文件的功能,包括注入、加载和解码的函数,可以明白混淆后的 Payload 被解码注入进程中。

恶意软件分析:Python脚本被利用实现隐蔽攻击

msbuild.exe还是 Mandark.Load函数的第二个参数。

恶意软件分析:Python脚本被利用实现隐蔽攻击

这第二个参数是注入的目标进程:

恶意软件分析:Python脚本被利用实现隐蔽攻击

程序中使用了编码与压缩:

恶意软件分析:Python脚本被利用实现隐蔽攻击

压缩使用的是 Gzip 方式:

恶意软件分析:Python脚本被利用实现隐蔽攻击

解码后可得到另一个 PE 文件:

恶意软件分析:Python脚本被利用实现隐蔽攻击

stage4.bin

该文件是一个 C/C++ 编写的文件:

恶意软件分析:Python脚本被利用实现隐蔽攻击

根据导出函数,可以看出其是另一个 Loader:

恶意软件分析:Python脚本被利用实现隐蔽攻击

根据 PDB 路径可以看出一个类似 git 的文件结构:

恶意软件分析:Python脚本被利用实现隐蔽攻击

检索后可以发现,这是 execute-assembly loader项目(Cobalt Strike 的 execute-assembly 模块开源实现)。

恶意软件分析:Python脚本被利用实现隐蔽攻击

在文档中可以看见,嵌入的 payload 格式为 0|0|0|0|1|sizeofpayload.b64_encoded_compressed_payload:

恶意软件分析:Python脚本被利用实现隐蔽攻击

在文件中也可以找到该格式的长字符串:

恶意软件分析:Python脚本被利用实现隐蔽攻击

根据文档进行处理后,发现了另一个 PE 文件:

恶意软件分析:Python脚本被利用实现隐蔽攻击

stage5.bin

该文件是 .NET 文件:

恶意软件分析:Python脚本被利用实现隐蔽攻击

程序中有对 AMSI 进行 Patch 的脚本:

恶意软件分析:Python脚本被利用实现隐蔽攻击

自定义加密/编码的方式如下所示:

恶意软件分析:Python脚本被利用实现隐蔽攻击

密钥为 avyhk:

恶意软件分析:Python脚本被利用实现隐蔽攻击

解密程序如下所示:

恶意软件分析:Python脚本被利用实现隐蔽攻击

stage6.bin

该文件仍然是一个 .NET 文件:

恶意软件分析:Python脚本被利用实现隐蔽攻击

该文件实际为远控木马,其主要功能如下所示:

恶意软件分析:Python脚本被利用实现隐蔽攻击

该 RAT 木马使用 AES256 加密数据,再用 base64 进行编码:

恶意软件分析:Python脚本被利用实现隐蔽攻击

解密后可得到配置信息:

恶意软件分析:Python脚本被利用实现隐蔽攻击

该木马有多种反分析检查的技术:

DetectManufacturer:检查硬件描述判断是否在虚拟机中

DetectDebugger:检查调试器与 dnspy.xml 文件是否存在

DetectSandboxie:检查是否存在 Sandboxie 驱动程序(sbiedll.dll)

IsSmallDisk:检查硬盘是否小于 61GB

IsXP:检查操作系统是否为 XP

各功能结构如下所示:

恶意软件分析:Python脚本被利用实现隐蔽攻击

还会利用计划任务和注册表进行持久化:

恶意软件分析:Python脚本被利用实现隐蔽攻击

支持的命令如下所示:

Update:通过 PowerShell 下载恶意软件

SavePlugin:下载并加载恶意 DLL

Unload:通过命名管道发送终止命令

Restart:终止当前进程并通过计划任务重启

Self-delete:删除持久化并终止进程

恶意软件分析:Python脚本被利用实现隐蔽攻击

恶意软件分析:Python脚本被利用实现隐蔽攻击

IOC

windowsupdatecdn.cn
gjghvga7ffgb.xyz
huugbbvuay4.cn
3e442cda613415aedf80b8a1cfa4181bf4b85c548c043b88334e4067dd6600a6
dd1fa3398a9cb727677501fd740d47e03f982621101cc7e6ab8dac457dca9125
2CCADFC32DB49E67E80089F30C81F91DFFF4B20B8FC61714DF9E2348542007FD
4591EDA045E3587A714BB11062EB258F82EE6F0637E6AA4D90F2D0B447A48EF7
4417298524182564AED69261B6C556BDCE1E5B812EDC8A2ADDFC21998447D3C6
9B775DFC58B5F82645A3C3165294D51C18F82EC1B19AC8A41BB320BEE92484ED
169F5DBCD664C0B4FD65233E553FF605B30E974B6B16C90A1FB03404F1B01980

参考来源

Huntress

本文作者:, 转载请注明来自FreeBuf.COM

# Python恶意软件 # Loader

Notice: Undefined variable: canUpdate in /var/www/html/wordpress/wp-content/plugins/wp-autopost-pro/wp-autopost-function.php on line 51