toneillcodes/AlphabetSoup

GitHub: toneillcodes/AlphabetSoup

AlphabetSoup 是一种基于 Living off the Land 原则的 Payload 混淆技术,通过利用受信任系统文件中的字节偏移量来动态重构 Shellcode,从而规避静态特征检测。

Stars: 1 | Forks: 0

# Alphabet Soup:Payload 混淆与重构 ## 概述 **Alphabet Soup** 是一种 Payload 混淆技术,它利用 **Living off the Land (LotL)** 原则来规避现代检测引擎。 该技术不再以可预测的格式(如 XOR、Base64 或 AES)存储 shellcode,而是将现有的系统文件(如 `.chm`、`.dll` 或 `.exe` 文件)视为一个**字典**。它从这些受信任的文件中采集特定字节的偏移量,以便在运行时于内存中动态重构 Payload。 ## 主要功能 * **LotL 二进制采集:** 使用源自受信任的、Microsoft 签名的二进制文件的字节来重构恶意 Payload。 * **环境密钥绑定:** 支持与目标的**卷序列号** 绑定的可选 **XOR 编码**,确保 Payload 仅能在特定目标机器上重构。 * **静态规避:** 将可识别的 shellcode 转换为 `unsigned long long` 整数数组。这消除了可执行熵,并使数据看起来像不可执行的程序逻辑或元数据。 * **多态输出:** 编码器随机选择字节偏移量。只要字典中有足够的熵,多次执行即可生成唯一的数组,从而使静态字符串或字节序列特征码失效。 ## ⚠️ 研究范围与免责声明 **Alphabet Soup 是一个用于数据混淆和环境密钥绑定的概念验证。** 请注意: * **混淆而非注入:** 该项目的核心是混淆和重构逻辑。提供的加载器使用标准且众所周知的 API 和注入技术(例如 `CreateRemoteThread`、module stomping、动态函数解析)。 * **教育目的:** 本项目不引入新的进程注入原语。它旨在演示如何应用 Living off the Land (LotL) 方法来绕过 shellcode 的静态特征检测。 * **模块化设计:** 重构逻辑设计为与注入方式无关。它依赖于一个简单的 for 循环,可以自定义并用于任何执行技术,包括 Process Hollowing、APC Injection 或 Module Overloading。 ## PoC 工作流程 ### 1. Payload 生成 以 C 格式生成原始 shellcode(例如,使用 `msfvenom` 或自定义框架)。 ### 2. 编码 Payload 运行辅助脚本,将 shellcode 映射到目标字典文件。此示例利用 **Windows CHM 文件**(已编译的 HTML 帮助),原因如下: * **低可疑度:** 与敏感系统 DLL(如 `ntdll.dll`)相比,EDR 很少监控对 CHM 文件的读取访问。 * **普遍性:** 像 `cliconf.chm` 这样的文件几乎存在于所有 Windows 工作站安装中。 * **稳定性:** 与受 Windows Update 影响的二进制文件(如 `kernel32.dll`)不同,CHM 内容很少被修改,从而确保采集的偏移量在不同补丁级别上仍然有效。 ``` dev\AlphabetSoup> python encoder.py -h usage: encoder.py [-h] [-i INPUT] [-t TEXT] -s SOURCE [-k KEY] [--xor] options: -h, --help show this help message and exit -i, --input INPUT File with \x00 style shellcode -t, --text TEXT Plain text string -s, --source SOURCE -k, --key KEY --xor dev\AlphabetSoup> ``` ### 3. 更新加载器 获取生成的 `alphabetSoup` 数组并将其粘贴到 PoC 加载器模板中。示例涵盖了 **本地注入**(自身)和 **远程注入**(针对单独的进程)。 ### 4. 编译 使用 Microsoft C++ 编译器 (`cl.exe`) 编译加载器: ### 5. 执行 * **本地:** 运行 `local-injection.exe`。 * **远程:** 首先启动目标进程(例如 `notepad.exe`),然后运行 `remote-injection.exe`。 ## 未来改进 - [ ] **基于注册表的检索:** 将索引数组存储在 Windows 注册表中,以进一步将重构逻辑与数据分离。 - [ ] **字典验证:** 在重构之前对目标字典文件实施哈希检查,以防止因版本不匹配导致的崩溃。 - [ ] **位置无关代码 (PIC):** 开发基于 PIC 的解码器,以向内存取证工具隐藏重构过程。 - [ ] **睡眠掩码:** 创建一个函数,在进程处于非活动状态时恢复混淆数据,以躲避内存取证工具。
标签:DNS 反向解析, Living off the Land, LotL, Shellcode, SSH蜜罐, 云安全监控, 云资产清单, 多态, 恶意软件, 技术调研, 数据展示, 混淆, 环境密钥, 端点可见性, 红队, 绕过检测, 网络安全, 载荷隐藏, 进程注入, 逆向工具, 逆向工程, 隐私保护, 静态分析