kaandemir993/Advanced-Loader-Reverse-Engineering
GitHub: kaandemir993/Advanced-Loader-Reverse-Engineering
对一个高级多阶段 Windows 恶意加载器的深度逆向分析报告,涵盖 module stomping、CFG 绕过、COM 劫持和降级攻击等技术。
Stars: 10 | Forks: 2
# 从 Shellhost 到 3 个 DLL:分析具备 Payload 注入、CFG 绕过与降级攻击的高级加载器
## 概述
本分析涵盖了一个复杂的多阶段加载器,其目标为 `Shellhost.exe`、`amsi.dll`、`mstscax.dll` 和 `clbcatq.dll`。该加载器使用了 module stomping、CFG 绕过、COM 劫持和降级攻击技术。
## Shellhost – Payload 注入的主要目标
该加载器将 `Shellhost.exe` 作为 payload 注入的主要目标进程。它使用 **module stomping** 技术利用自身的恶意 payload 覆盖 Shellhost 的合法代码。
### 关键观察
- **混淆 payload:** 注入的代码包含 ASCII 残留(`push 70207369h` = "is p")和无效指令(`jb`、`outs`、`ins`)。
- **`fothk` 段:** 一个自定义段,填充了 INT3 陷阱和单个用于跳转到 CFG 绕过例程的 `jmp`。
- **CFG 操纵:** 将执行流重定向到最终的 shellcode。
-
*WinDbg 中 Shellhost.exe 混淆 payload 的视图。*

## amsi.dll – CFG 绕过与 INT3 陷阱
加载器向 `amsi.dll` 注入了一个自定义段,其中填充了 `INT3` (0xCC) 反汇编陷阱。单个 `jmp` 重定向到 **Control Flow Guard (CFG)** 绕过例程,该例程通过 `jmp rax` 跳转到最终的 shellcode。
### 关键观察
- **INT3 陷阱:** 该段几乎完全由 `INT3` 指令填充。
- **单个 `jmp`:** `jmp 0x00007ffbc85060c0` 指向 CFG 绕过例程。
- **CFG 绕过:** 使用自定义 bitmask 来验证并重定向执行流。

*WinDbg 中 INT3 陷阱和单个 jmp 指令的视图。*
## mstscax.dll – Module Stomping 与 LocalAlloc
加载器使用 `LocalAlloc` 手动为 payload 分配内存。一个自定义结构体中填充了文件句柄和用于 COM 劫持的 vtable 赋值。
### 关键观察
- **`LocalAlloc(0x40, 0x68)`:** 分配 104 字节的内存。
- **Vtable 赋值:** `*puVar12 = &PTR_FUN_180699290` 用于 COM 劫持。
- **文件句柄使用:** `puVar12[4] = hFile` 表明加载器会从文件中读取数据。

*Ghidra 中 LocalAlloc 使用情况和手动结构体分配的视图。*
# clbcatq.dll – 内核感知操纵与降级攻击
加载器使用固定内存地址(`lRam0000000000000000`)和 vtable 调用来操纵内核对象。此技术用于权限提升。
### 关键观察
- **固定内存地址:** `lRam0000000000000000` 用于内核对象操纵。
- **Vtable 调用:** `+0x18`、`+0x40`、`+0x60` 表示内核级别的操作。
- **权限提升:** 用于获取 SYSTEM 级别的权限。
- **COM 劫持:** 使用 `FUN_180031f18` 和 `FUN_1800330c8`。
*Ghidra 中固定内存地址和 vtable 调用的视图。*
## 攻陷指标 (IOCs)
- **注册表项:** `HKLM\Software\Microsoft\COM3\RemoteAccessEnabled`
- **目标 DLL:** `amsi.dll`、`mstscax.dll`、`clbcatq.dll`
- **目标进程:** `Shellhost.exe`
- **自定义段:** `fothk`
- **反汇编:** INT3 陷阱 (0xCC)
## 结论
该加载器展示了高级规避技术,包括 module stomping、CFG 绕过、COM 劫持和降级攻击。它以多个系统组件为目标,以确保自身的隐蔽性和持久性。
## 作者
**StructBreaker** – 恶意软件分析师与逆向工程师
*Ghidra 中固定内存地址和 vtable 调用的视图。*
## 攻陷指标 (IOCs)
- **注册表项:** `HKLM\Software\Microsoft\COM3\RemoteAccessEnabled`
- **目标 DLL:** `amsi.dll`、`mstscax.dll`、`clbcatq.dll`
- **目标进程:** `Shellhost.exe`
- **自定义段:** `fothk`
- **反汇编:** INT3 陷阱 (0xCC)
## 结论
该加载器展示了高级规避技术,包括 module stomping、CFG 绕过、COM 劫持和降级攻击。它以多个系统组件为目标,以确保自身的隐蔽性和持久性。
## 作者
**StructBreaker** – 恶意软件分析师与逆向工程师标签:API接口, DAST, DNS 反向解析, 云资产清单, 免杀技术, 威胁情报, 开发者工具, 恶意软件分析, 暴力破解检测, 逆向工程