arkanzasfeziii/Ghost
GitHub: arkanzasfeziii/Ghost
Ghost 是一个红队规避与 Payload 制作框架,通过集成 AMSI 绕过、AV 编码、进程注入、LOLBaS 命令合成和 EDR 指纹识别,帮助攻防人员弥合 Payload 编译与实际落地之间的鸿沟。
Stars: 0 | Forks: 0
# Ghost — 规避与 Payload 制作框架
**自动化填补“payload 编译成功”与“payload 成功落地”之间的鸿沟 —— 在一个专为操作人员设计的工具包中,集成了 AMSI 绕过生成、AV 规避编码、进程注入模板、LOLBaS 命令合成、shellcode 交付以及 EDR 指纹识别。**
## 威胁模型
Ghost 是针对特定的防御环境构建的。每个模块都瞄准阻碍 payload 在成熟环境中交付的实际障碍:
| 防御层 | 阻断目标 | Ghost 模块 | MITRE 技术 |
|---|---|---|---|
| AMSI (反恶意软件扫描接口) | 在执行前扫描内存中的 PowerShell payload | `amsi` | T1562.001 |
| AV 特征引擎 | 已知的 shellcode 模式、静态字节特征、基于熵的启发式分析 | `av` | T1027 |
| EDR 用户态 Hook | ntdll.dll 系统调用拦截 —— CreateRemoteThread, NtAllocateVirtualMemory 等 | `inject`, `shellcode` | T1055, T1106 |
| 进程保护 (PPL/CFG) | 阻止跨进程内存写入和线程创建 | `inject` | T1055 |
| Sysmon / LOLBaS 监控 | 执行带有可疑参数的系统二进制文件 | `lolbas` | T1218 |
| EDR 行为分析 | 关联进程链、API 调用序列和内存模式 | `edr` | T1497 |
### ATT&CK 覆盖范围
**战术:** TA0005 (防御规避), TA0002 (执行)
**技术:**
- **T1055** — 进程注入 (经典、APC、傀儡进程、DLL、线程劫持)
- **T1027** — 混淆文件或信息 (XOR、AES-256-CBC、Base64、死代码)
- **T1218** — 系统二进制代理执行 (包含命令合成的 9 个 LOLBaS 二进制文件)
- **T1562** — 削弱防御 (包含混淆的 5 种 AMSI 绕过变体)
- **T1497** — 虚拟化/沙盒规避 (EDR 指纹识别与规避映射)
- **T1106** — 原生 API (绕过 ntdll hook 的直接系统调用 stub)
**CWE 映射:** CWE-693 (保护机制失效), CWE-116 (不当编码), CWE-94 (代码注入)
## 为什么开发此工具
在“payload 在实验室中有效”与“payload 在生产端点上落地”之间存在的鸿沟,是大多数红队演练失败的地方。你使用 msfvenom 生成了 shellcode,它在你的测试虚拟机上运行良好,你将它投放到目标上 —— 而 Defender 在它接触磁盘之前就将其查杀。
于是你对它进行 XOR 编码。它运行了一周,直到 SOC 更新了特征库。你切换到 AES,但其熵特征触发了启发式检测。你尝试了进程注入,但 CrowdStrike hook 了你调用的每一个 ntdll 函数。你转向使用 LOLBaS,但在你的命令执行完毕之前,Sysmon Event ID 1 就点亮了 SIEM 的警报。
Ghost 整合了整个规避工作流。无需再为 AMSI 绕过、payload 编码、注入模板和 LOLBaS 查找维护单独的脚本,你只需运行一个工具即可共同生成所有内容 —— 并为每种技术提供检测面分析,让你在触发它之前就知道什么会引发警报。
这不是一个 C2 框架。它不会进行外联通信。它生成产出物:绕过脚本、编码后的 payload、注入模板、LOLBaS 命令和 EDR 报告。你提取这些产出物,并将它们集成到你的演练工作流中。
## 功能特性
### 模块 1 — AMSI 绕过生成器 (`amsi`)
生成五种带有检测风险评级的 AMSI 绕过变体:
| 变体 | 技术 | 检测风险 |
|---|---|---|
| amsiInitFailed 补丁 | 通过反射将 `amsiInitFailed` 字段设置为 `True` | 中 |
| AmsiScanBuffer 补丁 | 覆盖返回值以强制返回 `AMSI_RESULT_CLEAN` | 高 |
| 反射上下文置空 | 通过反射将 `amsiContext` 指针置空 | 中 |
| CLM 绕过 (Runspace) | 通过自定义 runspace 逃离受限语言模式 | 低 |
| XOR 混淆单行命令 | 使用随机密钥进行 XOR 编码的完整绕过,在运行时解码 | 低 |
每个绕过都输出为可直接使用的 PowerShell 单行命令。通过使用拼接、Base64 和 XOR,对 `AmsiUtils`、`amsiInitFailed` 及相关标识符应用字符串混淆。包含一个测试 payload(EICAR 风格的无害触发器)以验证绕过是否激活。
### 模块 2 — AV 规避编码器 (`av`)
包含八种编码和混淆技术及解码器 stub 生成:
- **XOR 编码** — 单字节和多字节密钥,支持随机密钥生成
- **AES-256-CBC 加密** — 完整的加密包装器,带有嵌入式解密 stub
- **Base64 多层编码** — 可配置的双重/三重编码
- **字符串反转** — 反转十六进制,在运行时重建
- **变量名随机化** — 随机的字母数字标识符,破坏模式匹配
- **死代码插入** — 随机的 if/else 块,未使用的计算
- **控制流混淆** — 不透明谓词,循环展开模式
- **熵分析** — 标记熵值 > 7.5 的输出(启发式检测阈值)
解码器 stub 支持四种语言生成:**PowerShell**、**Python**、**C#** 和 **C**。
### 模块 3 — 进程注入模板 (`inject`)
包含五种注入技术、完整的代码模板及 EDR hook 分析:
| 技术 | MITRE | API 链 | 检测面 |
|---|---|---|---|
| 经典注入 | T1055.003 | OpenProcess → VirtualAllocEx → WriteProcessMemory → CreateRemoteThread | 高 — 每个 EDR 都会 hook 这些 |
| APC 注入 | T1055.004 | OpenProcess → VirtualAllocEx → WriteProcessMemory → QueueUserAPC | 中 — 需要可警报线程 |
| 进程空洞化 | T1055.012 | CreateProcess(SUSPENDED) → NtUnmapViewOfSection → Write → Resume | 高 — 挂起创建是一个信号 |
| DLL 注入 | T1055.001 | OpenProcess → VirtualAllocEx → WriteProcessMemory → CreateRemoteThread(LoadLibrary) | 高 — 来自远程线程的 LoadLibrary |
| 线程劫持 | T1055.003 | SuspendThread → GetThreadContext → SetThreadContext(RIP) → ResumeThread | 中 — 未创建新线程 |
每种技术都会输出 C 和 PowerShell 的代码模板,列出所使用的确切 API 调用,识别 EDR 针对该技术 hook 了哪些 ntdll 函数,并提供生成的特定 Sysmon 事件 ID。
### 模块 4 — LOLBaS 命令生成器 (`lolbas`)
按操作类别组织的 Windows 系统二进制文件数据库:
**执行二进制文件:**
| 二进制文件 | MITRE | Sysmon 事件 | EDR 可见性 |
|---|---|---|---|
| mshta.exe | T1218.005 | 1, 7 | 高 — 子进程生成被标记 |
| rundll32.exe | T1218.011 | 1, 7, 11 | 高 — 脚本执行具有显著特征 |
| regsvr32.exe | T1218.010 | 1, 3 | 高 — Squiblydoo 网络连接 |
| certutil.exe | T1218 | 1, 3, 11 | 高 — 下载检测的主要向量 |
| msiexec.exe | T1218.007 | 1, 3 | 中 — 来自网络 URL 的 MSI |
| wmic.exe | T1218 | 1, 20 | 高 — 进程创建被大量记录 |
| cmstp.exe | T1218.003 | 1, 12 | 低 — 较少被监控 |
| forfiles.exe | T1218 | 1 | 低 — 极少被直接监控 |
| pcalua.exe | T1218 | 1 | 低 — 程序兼容性助手 |
**下载:** certutil, bitsadmin, PowerShell IWR, Start-BitsTransfer
**编译/执行:** csc.exe, MSBuild.exe, InstallUtil.exe
**UAC 绕过:** fodhelper.exe, eventvwr.exe, computerdefaults.exe, sdclt.exe
**持久化:** schtasks, reg Run key, sc create, wmic startup
每个二进制文件都包含带有 payload 占位符的可直接使用的命令行、MITRE 技术映射、触发的 Sysmon 事件 ID 以及针对每个二进制文件的检测注意事项。
### 模块 5 — Shellcode 交付与转换 (`shellcode`)
- **格式转换器** — 原始字节转换为:十六进制字符串、C 数组、Python bytes、PowerShell 字节数组、C# 字节数组、Base64
- **XOR 编码器** — 具有空字节避让功能的可配置密钥(单字节和多字节密钥搜索)
- **Stager 生成** — PowerShell 和 C 的下载并执行 stub(HTTP 获取、内存分配、执行)
- **Meterpreter Staging URL** — 用于 msfvenom 分阶段 payload 的 URL 生成
- **直接系统调用 stub** — 用于 NtAllocateVirtualMemory, NtWriteVirtualMemory, NtCreateThreadEx, NtProtectVirtualMemory 的 x64/x86 汇编 stub(绕过 ntdll 用户态 hook)
- **Shellcode 分析** — 空字节检测、坏字符识别、熵值计算、大小估算
### 模块 6 — EDR 指纹识别 (`edr`)
通过进程、服务和驱动枚举识别 10 家 EDR 供应商:
| 供应商 | 关键进程 | 检测方法 |
|---|---|---|
| CrowdStrike Falcon | csfalconservice, CSFalconContainer | 进程 + 服务 + 驱动 (csdevicecontrol) |
| Carbon Black | CbDefense, RepMgr | 进程 + 驱动 (carbonblackk) |
| SentinelOne | SentinelAgent, SentinelServiceHost | 进程 + 服务 + 驱动 |
| Cylance | CylanceSvc, CylanceUI | 进程 + 驱动 (cyoptics) |
| Microsoft Defender | MsMpEng, MsSense | 进程 + 服务 (WinDefend) + 驱动 (WdFilter) |
| Sophos | SophosAgent, SophosClean | 进程 + 服务 |
| Symantec / Broadcom | ccSvcHst, SMC | 进程 + 服务 + 驱动 (symevent) |
| Palo Alto Cortex XDR | CortexXDR, Traps | 进程 + 服务 + 驱动 |
| Elastic Security | elastic-agent, winlogbeat | 进程 + 服务 |
| Trend Micro | TMBMSRV, NTRtScan | 进程 + 服务 + 驱动 (tmactmon) |
附加功能:
- **DLL Hook 检测** — 将 ntdll.dll 的 .text 节与干净的磁盘副本进行比较以识别用户态 hook 的概念指南
- **ETW Provider 枚举** — 列出记录安全事件的活跃 ETW provider (Security-Auditing, Sysmon, PowerShell, AMSI, Threat-Intelligence, Kernel-Process, DNS-Client)
- **规避建议** — 基于检测到的 EDR 生成针对特定供应商的指南
## 架构
```
┌─────────────────────────────────────────────────────────┐
│ ghost.py CLI │
│ │
│ argparse ──→ EngagementContext ──→ Module Router │
└───────────────────────┬─────────────────────────────────┘
│
┌───────────────┼───────────────┐
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ AMSIBypass │ │ AVEvasion │ │ ProcessInj. │
│ Module │ │ Module │ │ Module │
│ │ │ │ │ │
│ • 5 bypass │ │ • XOR/AES │ │ • Classic │
│ variants │ │ • Base64 │ │ • APC │
│ • String obf │ │ • Dead code │ │ • Hollowing │
│ • Test payld │ │ • Entropy │ │ • DLL inject │
│ │ │ • 4 decoders │ │ • Thread hij │
└──────────────┘ └──────────────┘ └──────────────┘
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ LOLBaS │ │ Shellcode │ │ EDRFingerpr. │
│ Module │ │ Module │ │ Module │
│ │ │ │ │ │
│ • 9 exec │ │ • 6 formats │ │ • 10 vendors │
│ • 4 download │ │ • XOR encode │ │ • Process │
│ • 3 compile │ │ • Stager gen │ │ • Service │
│ • 4 UAC byp │ │ • Syscalls │ │ • Driver │
│ • 4 persist │ │ • Analysis │ │ • ETW / Hook │
└──────────────┘ └──────────────┘ └──────────────┘
│ │ │
└───────────────┼───────────────┘
│
▼
┌──────────────────┐
│ AttackResult[] │
│ → Rich Console │
│ → JSON Report │
│ → File Artifacts │
└──────────────────┘
```
每个模块接收一个 `EngagementContext` dataclass,追加 `AttackResult` 条目,并将产出物写入输出目录。各模块相互独立 —— 你可以运行任意组合而无需依赖其他模块。
## 攻击流程
1. **侦察** — 运行 `edr` 模块以识别目标的防御栈指纹。确认存在哪个 EDR、部署了哪些 hook 以及哪些 ETW provider 处于活动状态。
2. **绕过选择** — 基于 EDR 指纹,运行 `amsi` 生成适合当前检测级别的 AMSI 绕过。使用测试 payload 验证绕过是否激活。
3. **Payload 编码** — 运行 `av` 通过规避流水线对你的 payload 进行编码。检查熵分析 —— 如果输出熵值超过 7.5,请从 AES 切换到 XOR 或添加死代码以平衡熵特征。
4. **Shellcode 交付** — 运行 `shellcode` 将编码后的 payload 转换为适合你注入技术的正确格式。如果使用分阶段交付,则生成 stager。如果 EDR 了 ntdll,请使用直接系统调用 stub。
5. **注入选择** — 运行 `inject` 生成与目标保护级别相匹配的注入模板。交叉比对 EDR hook 分析 —— 如果 CreateRemoteThread 被 hook,请改用 APC 注入或线程劫持。
6. **通过 LOLBaS 执行** — 运行 `lolbas` 生成用于执行、下载或持久化的系统二进制命令。选择具有较低 Sysmon 可见性的二进制文件进行初始执行,然后通过较少受监控的向量建立持久化。
7. **报告生成** — 使用 `--output report.json` 保存完整的演练结果,包含时间戳、模块状态和严重性评级。
## 用法
```
# 安装依赖
pip install -r requirements.txt
# 针对 Windows x64 目标运行所有模块
python ghost.py --modules all --target-os windows --arch x64
# AMSI bypass + AV encoding 与自定义 listener
python ghost.py --modules amsi,av --lhost 10.10.14.5 --lport 443
# 仅 EDR fingerprint,保存 JSON 报告
python ghost.py --modules edr --output edr_report.json
# LOLBaS + process injection 与自定义输出目录
python ghost.py --modules lolbas,inject --output-dir ./engagement_artifacts
# Shellcode staging 与 5 次 encoding 迭代
python ghost.py --modules shellcode,av --iterations 5 --lhost 192.168.1.100
# 为自动化 pipeline 跳过法律警告
python ghost.py --modules all --yes --output full_report.json
```
### CLI 参考
| 标志 | 默认值 | 描述 |
|---|---|---|
| `--target-os` | `windows` | 目标操作系统:`windows` 或 `linux` |
| `--arch` | `x64` | 架构:`x86` 或 `x64` |
| `--modules` | `all` | 以逗号分隔:`amsi,av,inject,lolbas,shellcode,edr,all` |
| `--output` / `-o` | — | 将结果保存到 JSON 文件 |
| `--yes` / `-y` | — | 跳过法律警告提示 |
| `--lhost` | `0.0.0.0` | stager 的监听主机 |
| `--lport` | `4444` | stager 的监听端口 |
| `--iterations` | `3` | 多层编码迭代次数 |
| `--output-dir` | `./ghost_output` | 产出物输出目录 |
## 输出
```
________ __
/ ____/ /_ ____ _____/ /_
/ / __/ __ \/ __ \/ ___/ __/
/ /_/ / / / / /_/ (__ ) /_
\____/_/ /_/\____/____/\__/
Ghost Framework v1.0.0
Evasion & Payload Crafting Framework
MITRE ATT&CK: T1055 | T1027 | T1218 | T1562 | T1497 | T1106
[INFO] Target OS: windows | Arch: x64
[INFO] LHOST: 10.10.14.5 | LPORT: 443
[INFO] Output directory: ./ghost_output
[INFO] Selected modules: amsi, av, inject, lolbas, shellcode, edr
╭──────────────────────────────────────────────────────────╮
│ Module 1 — AMSI Bypass Generator [T1562.001] │
╰──────────────────────────────────────────────────────────╯
[INFO] Generating amsiInitFailed patch variant...
[ OK ] amsiInitFailed patch generated (detection risk: MEDIUM)
[INFO] Generating AmsiScanBuffer memory patch...
[ OK ] AmsiScanBuffer patch generated (detection risk: HIGH)
[INFO] Generating reflection-based amsiContext null...
[ OK ] Reflection context null generated (detection risk: MEDIUM)
[INFO] Generating CLM bypass via custom runspace...
[ OK ] CLM bypass generated (detection risk: LOW)
[INFO] Generating XOR-obfuscated bypass one-liner...
[ OK ] XOR one-liner generated (key=0x8F, detection risk: LOW)
[INFO] Generating AMSI test payload (EICAR-style)...
[ OK ] Test payload generated
┌──────────────────────────────────────────────────────────┐
│ AMSI Bypass Variants │
├──────────────────────┬────────────────┬──────────────────┤
│ Technique │ Detection Risk │ Target │
├──────────────────────┼────────────────┼──────────────────┤
│ amsiInitFailed Patch │ MEDIUM │ Widely signat... │
│ AmsiScanBuffer Patch │ HIGH │ Modifies memo... │
│ Reflection Ctx Null │ MEDIUM │ Effective on ... │
│ CLM Bypass │ LOW │ Works when Ap... │
│ XOR One-Liner │ LOW │ Evades static... │
│ AMSI Test Payload │ INFO │ If this execu... │
└──────────────────────┴────────────────┴──────────────────┘
[ OK ] All AMSI bypasses saved to ghost_output/amsi_bypasses.ps1
╭──────────────────────────────────────────────────────────╮
│ Module 6 — EDR Fingerprinting [T1497] │
╰──────────────────────────────────────────────────────────╯
[INFO] Scanning for known EDR processes...
[CRIT] DETECTED: Microsoft Defender — processes: MsMpEng.exe
[INFO] Not detected: CrowdStrike Falcon
[INFO] Not detected: SentinelOne
...
[CRIT] Microsoft Defender detected — evasion guidance:
AMSI integration — bypass AMSI first. Cloud-connected
analysis — air-gapped payloads may bypass cloud lookups.
╭──────────────────────────────────────────────────────────╮
│ Engagement Summary │
╰──────────────────────────────────────────────────────────╯
┌──────────────┬───────────────┬────────┬──────────┬───────┐
│ Module │ Action │ Status │ Severity │ Notes │
├──────────────┼───────────────┼────────┼──────────┼───────┤
│ amsi │ gen_bypasses │ OK │ HIGH │ 6 ... │
│ av_evasion │ encode_obf │ OK │ HIGH │ 8 ... │
│ process_inj │ gen_templates │ OK │ CRIT │ 5 ... │
│ lolbas │ gen_commands │ OK │ HIGH │ 24... │
│ shellcode │ stage_transf │ OK │ HIGH │ 6 ... │
│ edr_fingerpr │ fingerprint │ OK │ CRIT │ 1 ... │
└──────────────┴───────────────┴────────┴──────────┴───────┘
[INFO] Completed in 1.84s — 6 succeeded, 0 failed
[INFO] Artifacts saved to: /home/operator/ghost_output
```
## 法律声明
Ghost Framework 严格仅用于大规模企业环境内的授权安全测试和红队演练。在使用本工具生成的任何技术之前,用户必须持有明确的书面授权(交战规则)。
根据《计算机欺诈和滥用法》(18 U.S.C. 第 1030 条)、《计算机滥用法 1990》以及其他司法管辖区的同等立法,未经授权访问计算机系统属于刑事犯罪。作者不对未经授权或非法使用承担任何责任。
本工具生成技术模板和规避产出物。它不会自主建立命令与控制通道、窃取数据或维持持久化。合法使用的责任完全由操作人员承担。
标签:AI合规, DNS 反向解析, SSH蜜罐, 免杀框架, 文档结构分析, 知识库安全, 私有化部署, 载荷生成, 进程注入, 逆向工具, 防御规避