Doseuser/Advanced-EDR-AV-Evasion-Framework
GitHub: Doseuser/Advanced-EDR-AV-Evasion-Framework
面向 Windows 的高级 EDR/AV 绕过框架,集成多种系统调用、脱钩、反分析和进程注入技术,用于渗透测试中的防御规避。
Stars: 0 | Forks: 0
# 高级 EDR/AV 绕过框架
## 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 月
## 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, 端点可见性, 进程注入, 道德黑客, 高交互蜜罐