深度剖析:利用Python 3.12.x二进制文件与多阶段Shellcode的DCRat传播技术
字数 1812 2025-08-29 08:30:06
利用Python 3.12.x二进制文件与多阶段Shellcode的DCRat传播技术深度分析
概述
本文详细分析了一种利用Python 3.12.x二进制文件与多阶段Shellcode技术传播DCRat远控木马的高级攻击手法。该攻击具有以下特点:
- 使用高度混淆的Python脚本(实际为PYC文件)
- 依赖Python 3.12.x特定版本执行
- 采用多阶段Shellcode加载技术
- 最终部署DCRat远控木马
技术分析
1. 初始攻击载体分析
攻击者使用了一个看似普通的Python脚本,但实际上是一个PYC(Python编译字节码)文件:
PYC文件识别特征
- Python 3.12.x PYC文件头特征:
CB 0D 0D 0A - 其他Python版本PYC文件头特征对比:
| Python版本 | PYC文件头特征 |
|---|---|
| 1.x | 99 4E 0D 0A |
| 2.0 | 87 C6 0D 0A |
| ... | ... |
| 3.11 | A7 0D 0D 0A |
| 3.12 | CB 0D 0D 0A |
版本依赖性
- 仅Python 3.12.x版本能成功加载执行
- 其他版本会报编码错误:
SyntaxError: Non-UTF-8 code starting with '\xcb'...
2. PYC反编译与解密
原始PYC文件经过反编译后,核心功能是解密内嵌的编码数据:
解密流程
- 使用Base64解码初始数据
- 使用RC4算法二次解密,密钥为
noVOMsCG - 最终得到可执行的Python代码
内存操作
解密后的Python代码执行以下操作:
import ctypes
# 申请内存
buf = ctypes.create_string_buffer(shellcode)
# 修改内存保护属性
ctypes.windll.kernel32.VirtualProtect(buf, len(shellcode), 0x40, ctypes.byref(ctypes.c_ulong()))
# 执行shellcode
fn = ctypes.cast(buf, ctypes.CFUNCTYPE(ctypes.c_void_p))
fn()
3. 第一阶段Shellcode分析
主要功能
-
解密PE载荷:
- 调用VirtualAlloc申请内存
- 复制并解密内嵌的PE文件数据
-
绕过安全机制:
- Patch AmsiScanBuffer函数绕过AMSI
- Patch WldpQueryDynamicCodeTrust函数绕过WLDP
-
内存加载PE:
- 实现PE加载器功能
- 在内存中完整加载PE文件
- 执行PE入口点函数
技术细节
- 使用直接系统调用(syscall)而非API调用
- 完全在内存中操作,不落地文件
4. 第一阶段PE载荷分析
功能概述
-
解密并显示字符串(可能用于调试)
-
解密第二阶段Shellcode:
- 使用AES+XOR组合加密
- 密钥信息:
- AES key:
698ea39fa70ae4eecba9217a86006f21c79c5e276a7191f7d298974d76ac5a52 - AES IV:
72a96c539aeedbee30f8dee608495cc4 - XOR key:
B43B72E4068B5DB4C03CE1C95EC90A54
- AES key:
-
进程注入:
- 使用APC注入技术将Shellcode注入notepad.exe
- 调用NtResumeThread执行注入的代码
5. 第二阶段Shellcode分析
与第一阶段类似,但加载不同的PE载荷:
- 相同的多阶段解密流程
- 相同的内存加载技术
- 最终加载DCRat远控木马
6. DCRat远控木马分析
特征识别
- 配置信息中包含"DcRAT"标识
- 使用特定算法解密配置信息
配置信息解密方法
- 定位加密的配置数据
- 使用自定义算法解密
- 提取C2地址、端口等关键信息
防御建议
-
Python环境防护:
- 严格控制Python版本使用,特别是3.12.x
- 监控异常PYC文件执行
-
行为检测:
- 检测多阶段内存加载行为
- 监控VirtualProtect等敏感API调用
- 关注notepad.exe等常见进程的异常注入
-
AMSI/WLDP强化:
- 监控对AmsiScanBuffer等安全函数的patch尝试
- 启用增强型WLDP策略
-
网络流量分析:
- 检测与已知DCRat C2的通信特征
- 分析异常TLS证书(含"DcRAT"字样)
总结
该攻击链展示了高级威胁攻击者的典型手法:
- 利用合法工具链(Python)作为攻击载体
- 多阶段载荷解密与加载
- 高级进程注入技术
- 最终部署功能完善的远控木马
防御方需采取纵深防御策略,重点关注内存操作、进程注入和配置解密等关键环节。