EDR绕过技术演进史:从APIUnhooking到AI规避的十年攻防

admin 2026-03-03 07:14:12 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 该文档系统回顾了EDR绕过技术十年的演进历程,涵盖从早期进程镂空到现代系统调用、VEH技术及AI规避的关键节点。文章剖析了Hook战争、内存混淆等核心机制,列举了SysWhispers等经典工具,并探讨了EDR的内核监控与行为分析应对策略。结论指出攻防竞赛持续推动技术创新,未来趋势将向AI与硬件安全融合方向发展。 综合评分: 90 文章分类: 红队,免杀,终端安全,实战经验


cover_image

EDR 绕过技术演进史:从 API Unhooking 到 AI 规避的十年攻防

Ibai Castells Ibai Castells

securitainment

2026年2月23日 13:37 中国香港

| 原文链接 | 作者 | | — | — | | https://www.covertswarm.com/post/timeline-of-edr-bypass-techniques | Ibai Castells |

终端检测与响应(EDR)解决方案与绕过技术之间的关系,是网络安全领域最具活力的战场之一。它们正是网络安全行业整体的缩影,恰好呼应了我们常用来描述这个行业的”猫鼠游戏”比喻。

随着 EDR 系统从简单的基于签名的检测演进为复杂的行为分析引擎,红队和威胁行为者也在持续开发创新方法来规避检测。本时间线记录了 EDR 绕过技术的重大突破,梳理了塑造现代攻击性安全的技术演变历程。

这些年来变化巨大,大量理念已被武器化。本文旨在对这些内容进行梳理总结,成为攻击性安全专家的参考资料。

奠基时期(2010-2015)

早期 EDR 的局限与基础绕过

第一代 EDR 解决方案高度依赖基于签名的检测和基本的行为启发式方法。在这一时期,绕过手段相对简单直接,通常只需采用简单的混淆技术或 Process Hollowing(进程镂空)方法即可规避检测。

2012-2013:Process Hollowing 与 DLL 注入

早期 EDR 绕过领域以传统进程注入技术为主导。安全研究人员开始系统性地探索以下方法:

  • 使用 CreateRemoteThread的经典 DLL 注入
  • Process Hollowing(RunPE)技术
  • 手动加载 DLL 以规避导入地址表(IAT)Hook

这些技术之所以有效,是因为早期 EDR 解决方案主要监控上层 Windows API,缺乏深层内核级的可见性。

2014:Reflective DLL Loading

Stephen Fewer 的 Reflective DLL Loading(反射式 DLL 加载)技术成为 EDR 规避的基石。通过在不使用 Windows 加载器的情况下手动加载 DLL,攻击者可以绕过许多监控标准 DLL 加载流程的 Hook 机制。这项研究至今仍然高度相关,被许多知名 C2 框架广泛使用。然而,近年来出现了向位置无关代码(PIC)转变的趋势,以规避针对 Reflective DLL Loading 的行为检测。

Hook 战争拉开序幕(2015-2017)

理解 EDR 检测机制

随着 EDR 解决方案日趋成熟,它们开始实施更复杂的 Hook 机制来监控 API 调用。这一时期标志着 EDR 厂商与绕过开发者之间 “Hook 战争” 的开端。

2015-2016:API Hook 意识觉醒

安全研究人员开始系统性地分析 EDR 解决方案如何实现其监控能力:

  • 用户态 API Hook

    :EDR 解决方案开始 Hook 关键 Windows API,如 NtCreateFileNtCreateProcess和 NtAllocateVirtualMemory

  • Inline Hooking

    :许多 EDR 产品使用内联 Hook 技术,修补 API 函数的前几个字节,将执行流重定向到其监控代码

  • IAT Hooking

    :导入地址表修改成为常见的 EDR 技术

2016:Unhooking 技术的兴起

安全社区开始开发系统性的方法来检测和移除 EDR Hook:

  • Hook 检测

    :将内存中的 API 函数与其磁盘上的版本进行对比

  • API Unhooking

    :从磁盘加载的干净副本中恢复原始 API 字节

  • Manual Mapping:加载系统 DLL 的干净副本以访问未被 Hook 的 API

直接系统调用革命(2017-2019)

2017:直接系统调用的引入

Direct Syscall(直接系统调用)技术的引入标志着 EDR 绕过方法论的范式转变。攻击者不再调用被 EDR 解决方案监控的上层 Windows API,而是开始直接利用底层系统调用。

关键突破:Jackson T (@Jackson_T) 的 SysWhispers

SysWhispers 项目于 2019 年发布,大大降低了直接系统调用的使用门槛,提供了以下功能:

  • 自动生成 Syscall Stub(系统调用存根)
  • 支持多个 Windows 版本
  • 易于集成到攻击性工具中

技术创新:

; Example direct syscall stub
NtAllocateVirtualMemory:
    mov r10, rcx
    mov eax, 18h        ; e.g Syscall number for NtAllocateVirtualMemory
    syscall
    ret

该技术通过直接过渡到内核模式,完全绕过了用户态 API Hook,使 EDR 解决方案在没有内核级组件的情况下极难实施监控。

2018-2019:Syscall 的演进

  • Hell’s Gate

    :Am0nsec 和 Smelly__vx 开发了在运行时动态解析系统调用号的技术

  • Halos Gate

    :Reenz0h 扩展了 Hell’s Gate,通过搜索邻近函数中的干净系统调用号来处理被 Hook 的系统调用

  • Tartarus’ Gate

    :Paul Laîné 在前人技术基础上进行改进,提升了可靠性和规避能力

间接系统调用时代(2019-2021)

2019-2020:Indirect Syscall 与调用栈感知

随着 EDR 解决方案开始监控直接系统调用,研究人员开发出 Indirect Syscall(间接系统调用)技术来维持更自然的调用栈。

Indirect Syscall 突破:与从攻击者控制的代码中直接执行系统调用不同,间接系统调用利用了现有的合法代码路径:

  • 基于 ROP 的系统调用

    :使用返回导向编程(Return-Oriented Programming)从合法模块执行系统调用

  • 基于 JOP 的系统调用

    :跳转导向编程(Jump-Oriented Programming)的系统调用执行变体

  • Module Stomping

    :用系统调用存根覆写合法模块的代码段

2020:Call Stack Spoofing 技术研究人员意识到 EDR 解决方案开始分析调用栈以检测可疑活动:

  • Return Address Spoofing

    :修改返回地址使其看起来合法

  • Stack Pivoting

    :更改栈指针以使用合法调用栈

  • Frame Pointer Manipulation

    :篡改帧指针以构造令人信服的调用栈痕迹

关键工具与研究:

  • SysWhispers2

    :在原版 SysWhispers 基础上扩展了间接系统调用功能

  • Ekko

    :C5pider 的使用间接系统调用的睡眠混淆技术

  • ThreadStackSpoofer

    :Mgeeky 实现的调用栈伪造

高级规避技术(2020-2022)

2020-2021:内存保护与混淆

睡眠技术:

  • Ekko Sleep Obfuscation

    :在睡眠期间加密 Beacon 内存

  • Zilean

    :具有多层加密的高级睡眠混淆

  • Gargoyle

    :使用定时器和 APC 实现隐蔽执行

内存规避:

  • Module Overloading

    :将恶意代码加载到合法模块之上

  • Phantom DLL Loading

    :加载 DLL 而不在 PEB 中注册

  • Transacted Section Techniques

    :利用 NTFS 事务进行隐蔽内存分配

2021:基于硬件的规避

硬件断点规避:

  • Hardware Breakpoint Detection

    :识别并清除 EDR 设置的硬件断点

  • Debug Register Manipulation

    :直接修改调试寄存器以规避监控

性能计数器滥用:

  • 基于 PMU 的检测

    :利用性能监控单元(Performance Monitoring Unit)检测 EDR 的存在

  • 基于时序的规避

    :利用被 Hook 与未被 Hook 的 API 之间的时序差异

现代时期:VEH 与高级技术(2022 至今)

2022:Vectored Exception Handling(VEH)技术

基于 VEH 的系统调用:研究人员开始利用向量异常处理程序实现隐蔽的系统调用机制:

  • Exception-based Control Flow

    :使用受控异常重定向执行流

  • VEH Hijacking

    :劫持现有的 VEH 链实现隐蔽执行

  • Hardware Exception Abuse

    :利用硬件异常(如单步调试)进行规避

关键创新:FreshyCallsElephantSe4l 的 FreshyCalls 技术利用 Syscall Trampoline 和 VEH 创建了高度规避性的系统调用实现。

2022-2023:内核回调技术

PsSetCreateProcessNotifyRoutine 绕过:

  • Callback Removal

    :移除 EDR 注册的进程创建回调

  • Callback Patching

    :修改回调函数以绕过监控

  • DKOM 技术

    :直接内核对象操纵(Direct Kernel Object Manipulation)以规避检测

ETW(Event Tracing for Windows)绕过:

  • ETW Provider Patching

    :禁用 EDR 解决方案使用的 ETW 提供程序

  • ETW Session Hijacking

    :接管 ETW 会话

  • Trace Tampering

    :实时篡改 ETW 跟踪数据

2023:高级内存操纵

CRT Hooking 绕过:

  • CRT 函数替换

    :替换 C 运行时(C Runtime)函数以绕过监控

  • 静态与动态 CRT

    :利用 CRT 链接方式的差异

高级进程注入:

  • Process Doppelgänging

    :利用 NTFS 事务进行隐蔽进程创建

  • Process Herpaderping

    :在加载后覆写进程映像

  • Ghost Writing

    :通过文件映射写入进程内存

当前状态与新兴技术(2024 至今)

2024:AI 与机器学习规避

行为模拟:

人工智能在网络安全中的兴起,代表了自直接系统调用以来 EDR 绕过方法论最重大的转变。与传统的静态混淆不同,AI 驱动的规避技术能够创建具备行为真实性的恶意软件,生成在自动化系统和人工分析师看来都貌似完全无害的执行模式。

基于机器学习的行为克隆使攻击者能够系统性地研究和复制合法应用程序的行为模式,创建高度针对性的模拟,从而欺骗基于特定应用程序特征训练的 EDR 系统。更令人担忧的是自适应规避系统——它们能从失败的检测尝试中学习,持续实时演化自身策略。这形成了一个反馈循环:每次检测尝试都可能反过来教会规避系统如何更好地躲避未来的检测。TrustedSec 在 2022 年发表的用户行为分析研究表明,随着技术发展到足以支撑这一概念的阶段,该领域已引起广泛关注。

著名工具与框架

历史工具时间线

2015-2017:基础工具

  • PowerShell Empire

    :具备 EDR 规避能力的早期 C2 框架

  • Cobalt Strike

    :推动了大量创新的商业 C2 平台

  • Metasploit

    :规避模块持续演进的开源框架

2018-2020:Syscall 时代工具

  • SysWhispers

    :直接系统调用生成工具

  • Hell’s Gate

    :动态系统调用解析

  • Halos Gate

    :具备 Hook 规避的增强型系统调用解析

2021-2023:高级规避工具

  • SysWhispers2

    :间接系统调用实现

  • Ekko

    :结合系统调用的睡眠混淆

  • ThreadStackSpoofer

    :调用栈伪造实现

  • FreshyCalls

    :基于 VEH 的系统调用实现

2024 至今:现代框架

  • SysWhispers3

    :具备增强规避能力的最新演进版本

  • Nighthawk

    :集成多种规避技术的高级 C2

  • Brute Ratel

    :内置 EDR 规避的现代 C2 框架

  • 开源 C2

    :Adaptix 和 Havoc 正在推动商业 C2 框架的创新边界

关键技术

Direct Syscall

直接系统调用通过直接调用内核服务来绕过用户态 API Hook。该技术涉及以下步骤:

  1. 解析目标 API 的系统调用号
  2. 按照调用约定设置处理器寄存器
  3. 执行 syscall指令过渡到内核模式

Indirect Syscall

间接系统调用通过从合法代码位置执行系统调用来维持自然的调用栈:

  1. 在合法模块中查找以 syscall; ret结尾的 Gadget
  2. 设置栈使其返回到这些 Gadget
  3. 跳转到 Gadget 而非直接执行系统调用

Call Stack Spoofing

调用栈伪造通过以下方式构造令人信服的调用栈痕迹:

  1. 分析合法的调用栈模式
  2. 篡改返回地址以匹配预期模式
  3. 使用 ROP/JOP 链维持栈的一致性

VEH 技术

Vectored Exception Handling 技术利用 Windows 的异常处理机制:

  1. 注册自定义异常处理程序
  2. 触发受控异常以重定向执行流
  3. 利用硬件异常(如单步调试)实现隐蔽性

军备竞赛:EDR 的应对与反制演进

EDR 的适应

内核级监控:现代 EDR 解决方案通过实施内核级监控来应对用户态绕过:

  • 内核回调

    :进程、线程和映像加载通知

  • 过滤驱动

    :文件系统和注册表监控

  • ETW 集成

    :全面的事件跟踪

行为分析:

  • 机器学习模型

    :检测异常行为模式

  • 调用栈分析

    :识别可疑执行流

  • 内存模式识别

    :检测内存中的已知攻击签名

硬件集成:

  • Intel CET 支持

    :利用控制流强制技术(Control-flow Enforcement Technology)

  • 硬件断点

    :使用调试寄存器进行监控

  • 性能计数器

    :通过时序分析检测规避行为

反反制措施

攻击性安全社区通过以下方式回应 EDR 的改进:

  • 内核级规避

    :直接操纵内核结构

  • 基于硬件的绕过

    :利用处理器特性进行规避

  • 供应链攻击

    :利用合法签名的二进制文件

  • Living-off-the-Land

    :滥用合法系统工具

挑战与思考

伦理影响:EDR 绕过技术的持续进步引发了一些重要问题:

  • 负责任的漏洞披露实践
  • 红队能力与实际威胁行为者工具之间的平衡
  • 被恶意行为者滥用的可能性

检测与规避的平衡:检测与规避技术之间持续的军备竞赛推动着攻防双方能力的共同进步,最终通过对抗性测试改善整体网络安全态势。

结论

EDR 绕过的历史是对抗性网络安全研究中一个引人入胜的案例。从简单的 API Unhooking 到复杂的基于硬件的规避,每一次突破都推动攻防双方开发更先进的技术。理解这一演进对于攻防两端的安全专业人员都至关重要——它揭示了终端安全面临的根本挑战,以及在对抗压力下涌现的创新解决方案。

时间线展示了清晰的规律:每当 EDR 解决方案实施新的检测机制,攻击性安全社区就会以创新的绕过技术作为回应。这种持续改进的循环通过暴露弱点和推动防御技术创新,惠及整个网络安全生态系统。

展望未来,人工智能、硬件安全特性和云原生技术的深度融合,很可能将定义这场持续军备竞赛的下一阶段。各组织必须紧跟这些发展动态,以在日益复杂的威胁环境中维持有效的安全态势。


参考文献

  1. Fewer, S. (2014). “Reflective DLL Injection.” Harmony Security. https://github.com/stephenfewer/ReflectiveDLLInjection
  2. Jackson_T. (2019). “SysWhispers: On-disk and in-memory evasion techniques.” https://github.com/jthuraisamy/SysWhispers
  3. Am0nsec & Smelly__vx. (2019). “Hell’s Gate: Dynamically retrieving system call numbers.” https://github.com/am0nsec/HellsGate
  4. Reenz0h. (2020). “Halos Gate: A new technique for dynamically retrieving syscall numbers.” https://blog.sektor7.net/#!res/2021/halosgate.md
  5. Laîné, P. (2021). “Tartarus’ Gate: Bypassing EDRs by abusing hell’s gate.” https://github.com/trickster0/TartarusGate
  6. C5pider. (2021). “Ekko: Sleep Obfuscation.” https://github.com/Cracked5pider/Ekko
  7. Mgeeky. (2021). “ThreadStackSpoofer: PoC for spoofing thread call stack.” https://github.com/mgeeky/ThreadStackSpoofer
  8. ElephantSe4l. (2022). “FreshyCalls: Syscalls with VEH.” https://github.com/crummie5/FreshyCalls
  9. modexp. (2020). “Process Injection Techniques.” Modexp Blog. https://modexp.wordpress.com/
  10. Red Canary. (2021). “EDR Evasion Techniques and Countermeasures.” Red Canary Threat Detection Report.
  11. MITRE ATT&CK Framework. “Defense Evasion Techniques.” https://attack.mitre.org/tactics/TA0005/
  12. Sektor7 Malware Development Course Materials. (2020-2022). https://institute.sektor7.net/
  13. Maldev Academy. (2022-2024). “Malware Development Techniques and EDR Evasion.” https://maldevacademy.com/
  14. SpecterOps. (2021-2023). “Adversary Simulation and Red Team Research.” Various blog posts and research papers.
  15. Elastic Security Labs. (2022-2024). “EDR Evasion Research and Detection Engineering.” Research publications and blog posts.

免责声明:本博客文章仅用于教育和研究目的。提供的所有技术和代码示例旨在帮助防御者理解攻击手法并提高安全态势。请勿使用此信息访问或干扰您不拥有或没有明确测试权限的系统。未经授权的使用可能违反法律和道德准则。作者对因应用所讨论概念而导致的任何误用或损害不承担任何责任。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:securitainment Ibai Castells Ibai Castells《EDR 绕过技术演进史:从 API Unhooking 到 AI 规避的十年攻防》

评论:0   参与:  0