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蜜罐, 免杀框架, 文档结构分析, 知识库安全, 私有化部署, 载荷生成, 进程注入, 逆向工具, 防御规避