Doseuser/Advanced-EDR-AV-Evasion-Framework

GitHub: Doseuser/Advanced-EDR-AV-Evasion-Framework

面向 Windows 的高级 EDR/AV 绕过框架,集成多种系统调用、脱钩、反分析和进程注入技术,用于渗透测试中的防御规避。

Stars: 0 | Forks: 0

# 高级 EDR/AV 绕过框架 winvi ## ByDoseUser 这是一个高级的 Windows 用户态绕过框架,实现了多种最先进的技术,用于绕过端点检测与响应(EDR)系统、防病毒软件和安全监控工具。该框架结合了多种绕过方法,包括直接系统调用、脱钩、ETW/AMSI 修补以及复杂的反分析技术。 ## 主要特性 ### 系统调用实现 - **Hells Gate**:从 ntdll 导出中动态获取系统服务编号(SSN) - **Halos Gate**:增强的 SSN 获取机制,为被 Hook 的函数提供回退机制 - **Tartarus Gate**:高级的 SSN 解析,支持多种函数 Hook 模式 - **Heavens Gate**:通过段寄存器操作支持 x86 和 x64 WoW64 系统调用 - **Indirect Syscall**:通过 ntdll 的 `syscall` 指令执行系统调用,实现返回地址欺骗 ### 反分析与绕过 - **NTDLL Unhooking**:从磁盘恢复 ntdll 至原始状态 - **ETW Patching**:通过修补 `EtwEventWrite` 禁用 Windows 事件跟踪 - **AMSI Bypass**:修补 `AmsiScanBuffer` 使其始终返回无威胁结果 - **Hardware Breakpoint Clearing**:移除调试器硬件断点 - **Call Stack Spoofing**:通过系统调用返回地址分析防止被检测 - **Sleep Obfuscation**:在休眠期间加密 payload,以规避内存扫描 ### 进程注入技术 - **Module Stomping**:将 payload 注入到已加载模块的合法 `.text` 节中 - **Remote Process Injection**:使用直接系统调用进行内存分配、写入和线程创建 - **APC Injection**:将异步过程调用排入队列以实现更隐蔽的执行 ### 反虚拟机与反调试检测 - 通过 CPUID、MAC 地址分析和时间异常进行 Hypervisor 和虚拟机检测 - 通过注册表和进程枚举检测虚拟化软件特征 - 通过 PEB 标志、`IsDebuggerPresent` 和硬件断点检测调试器是否存在 - 全面的反沙箱检查 ### Chrome App-Bound Encryption 绕过 - 利用 COM 提权解密 Chrome 的应用绑定加密密钥 - 演示从浏览器存储中提取凭据的能力 ## 构建说明 ### 前置条件 - Microsoft Visual Studio 2022 或更高版本,且包含 C++ 支持 - 用于汇编编译的 MASM (Microsoft Macro Assembler) - Windows SDK ### 编译步骤 1. **配置汇编构建**: 在 Visual Studio 中,右键点击项目 → 构建依赖项 → 构建自定义 → 启用 MASM 2. **构建配置**: 平台:x64(系统调用实现所需) 配置:Release 或 Debug 3. **编译**: 构建解决方案 (Ctrl+Shift+B) ### 手动编译(命令行) ``` ml64 /c /Fo syscalls.obj syscalls.asm cl /EHsc /std:c++17 /Fe:EvasionFramework.exe main.cpp syscalls.obj ``` ## 用法 ``` EvasionFramework.exe [target_pid] ``` - **指定 PID**:将 payload 注入到指定进程中 - **不指定 PID**:使用 module stomping 或本地执行方式在本地执行 payload ### 示例 ``` EvasionFramework.exe 1234 ``` ## 配置标志 该框架在 `main.cpp` 中包含了编译时的配置标志: ``` #define CONFIG_ENABLE_HELLS_GATE 1 // Enable Hells Gate SSN resolution #define CONFIG_ENABLE_HALOS_GATE 1 // Enable Halos Gate SSN resolution #define CONFIG_ENABLE_TARTARUS_GATE 1 // Enable Tartarus Gate SSN resolution #define CONFIG_ENABLE_NULLGATE 1 // Enable Null Gate technique #define CONFIG_ENABLE_HEAVENS_GATE 1 // Enable Heavens Gate (WoW64) #define CONFIG_ENABLE_INDIRECT_SYSCALL 1 // Use indirect syscall method #define CONFIG_ENABLE_NTDLL_UNHOOKING 1 // Unhook ntdll from disk #define CONFIG_ENABLE_ETW_PATCHING 1 // Disable ETW #define CONFIG_ENABLE_AMSI_BYPASS 1 // Bypass AMSI #define CONFIG_ENABLE_MODULE_STOMPING 1 // Inject into module .text #define CONFIG_ENABLE_SLEEP_OBFUSCATION 1 // Encrypt during sleep #define CONFIG_ENABLE_CALLSTACK_SPOOFING 1 #define CONFIG_ENABLE_HWBP_CLEARING 1 // Clear hardware breakpoints #define CONFIG_ENABLE_ANTI_VM 1 // Enable VM detection #define CONFIG_ENABLE_CHROME_ABE_BYPASS 1 // Bypass Chrome encryption ``` ## 关键组件 ### `syscalls.asm` - 包含用于系统调用包装器的 MASM 汇编实现 - 实现 `IndirectSyscall5/6` 以通过间接寻址执行系统调用 - 包含用于 x86/x64 转换的 `HeavensGateEntry/Exit` 函数 - 引用 `g_ntdllGadget` 以获取 syscall 指令位置 ### `syscalls.h` - 系统调用包装器函数的声明 - 用于系统调用表管理的外部变量 - 系统调用的函数原型 ### `main.cpp` - 核心绕过框架逻辑 - 实现所有的绕过技术和反分析特性 - 包含 payload(目前是一个最小化的 stub) - 根据配置标志编排绕过链 ## 技术细节 ### 系统调用解析 该框架使用多种回退策略来获取 SSN: 1. **直接获取**:如果可用,直接从 ntdll 导出 stub 读取 2. **前向扫描**:如果被 Hook,则向前/向后搜索系统调用 stub 3. **JMP/相对跳转**:处理重定向模式(E9/EB 指令) 4. **寄存器间接寻址**:通过函数地址引用进行解析 ### NTDLL Unhooking 1. 从磁盘映射干净的 ntdll (`C:\Windows\System32\ntdll.dll`) 2. 在被 Hook 的 ntdll 中识别 `.text` 节 3. 通过更改内存保护属性,用干净版本覆盖原有内容 ### Payload 执行流程 1. 反虚拟机/反调试检查(如果已启用) 2. 使用门技术初始化系统调用表 3. 对 ntdll 进行脱钩并修补 ETW/AMSI 4. 清除硬件断点 5. 尝试绕过 Chrome App-Bound Encryption(如果适用) 6. 通过以下方式执行 payload: - Module stomping(首选) - 远程进程注入(如果指定了 PID) - 休眠混淆后本地执行 ## 限制与注意事项 - 需要 x64 架构的 Windows 10/11(内部版本 19041+) - 大多数注入技术需要管理员权限 - 进行脱钩操作时必须能够访问 `C:\Windows\System32\ntdll.dll` - 某些技术需要特定的 Windows 版本或更新级别 - 绕过 Chrome 需要 Chrome 已安装且支持 COM ## 道德使用免责声明 本框架仅供合法的安全研究、获得适当授权的渗透测试以及教育目的使用。严禁未经授权在生产系统或敏感环境中使用。在任何环境中部署类似框架之前,请务必确保您已获得明确的书面许可。 ## 参考与致谢 - Hells Gate: [@smelly__vx](https://twitter.com/smelly__vx) - Halos Gate: [@Jackson_T](https://twitter.com/Jackson_T) - Tartarus Gate: [@TheRealWover](https://twitter.com/TheRealWover) - Indirect Syscall: [@Cneelis](https://twitter.com/Cneelis) - 恶意软件分析和攻击性安全社区的各种贡献 **版本**: 1.0 **最后更新**: 2023 年 11 月
标签:EDR绕过, SSH蜜罐, Windows, 端点可见性, 进程注入, 道德黑客, 高交互蜜罐