文章总结: 本文介绍一款CobaltStrikeAggressor脚本工具,通过进程、服务、内核驱动三层特征匹配实现EDR探测,提供6档分级噪音模式(从零痕迹进程内执行到全量WMI枚举),可识别主流终端安全产品并评估威胁等级。工具采用BOF技术实现静默检测,作者推荐优先使用edrcheck+edrservices_bof组合实现全覆盖零噪音探测,并给出从低到高逐步升级的实战工作流。 综合评分: 85 文章分类: 红队,内网渗透,安全工具,实战经验,渗透测试
进程+服务+内核三覆盖!红队EDR探测正确方式
蚁景网安
2026年6月29日 17:26 湖南
在小说阅读器读本章
去阅读
以下文章来源于潇湘信安 ,作者3had0w
潇湘信安 .
一个不会编程、挖SRC、代码审计的安全爱好者,主要分享一些安全经验、渗透思路、奇淫技巧与知识总结。
| | |
前言
做红队后渗透的朋友,大概率都踩过这个坑:
刚拿到一台主机的 Beacon,第一件事就是想确认上面有没有 EDR、装了什么杀软。结果随手甩了条 PowerShell 命令,下一秒会话就黑了 —— 等于主动跑到 EDR 脸上跳脸输出。
讽刺的是,我们用来检测 “系统有没有被监控” 的手段,恰恰是监控最严的行为。
最近在 GitHub 上挖到一个 Cobalt Strike 的 Aggressor 脚本,刚好把这个问题解决得很漂亮:它把 EDR 枚举做成了分级噪音模式,从完全零痕迹的进程内执行,到全量 WMI 枚举,一共 6 个档位。你当前环境能接受多大风险,就用对应的方式,不用上来就搞出大动静。
覆盖全品类,三层特征匹配
这款工具的特征库覆盖了进程、服务、内核驱动三个维度,主流终端安全产品基本都能识别到。从 CrowdStrike、SentinelOne、Defender for Endpoint 这类一线 EDR,到卡巴斯基、ESET、Malwarebytes 这类常规杀毒,再到 Sysmon、Splunk UF、Wazuh 这类遥测 / SIEM 探针,甚至 Zscaler、CyberArk 这类 ZTNA / 权限类组件,都在特征库里。
识别完成后会自动给当前环境评定威胁等级:
- HIGH:检测到活跃 EDR,具备内核回调、用户态 Hook、云分析、防篡改能力
- MODERATE:杀毒软件 + 遥测探针,日志会转发到 SOC
- LOW:仅基础杀毒,只有文件扫描和 AMSI 防护
- UNKNOWN:未检测到特征,也可能是无代理、纯内核级方案
输出也按产品类型做了颜色标注,扫一眼就能摸清当前终端的防护配置。
6 档噪音,风险自己掌控
这是整个项目最精髓的设计:它不用容易搞反的 “OPSEC 等级”,直接用星级标注噪音 ——★越少越安静,★越多动静越大,一眼就能看懂。
★ 最低噪:纯进程内执行,零痕迹
两档一星命令是这套工具的核心。edr_check直接调用 Beacon 原生的进程列表接口,edr_services_bof通过内联 BOF 枚举服务和驱动。
全程没有子进程创建,没有 CLR 加载,不触发 AMSI,连 ETW 日志都不会产生,真正的 “扫完和没扫过一样”。
其中 BOF 还支持三种模式切换:默认同时查服务 + 驱动;加svc只查服务,快速定位厂商;加drv只查内核驱动,比如干掉 EDR 服务后,可以用它验证内核回调是不是还在。
★★ 低噪:非托管PowerShell
edr_services_pick通过 bpowerpick 执行,不会弹出 powershell.exe 子进程,但会在 Beacon 进程内加载 CLR,会触发.NET 运行时的 ETW 和 AMSI 初始化。适合对 CLR 加载不敏感的环境。
★★★ 中噪:cmd.exe调用sc查询
edr_services_cmd通过 bshell 执行sc query,会创建 cmd.exe 子进程,触发进程创建日志(Sysmon EID 1 / Windows 4688)。但没有 CLR、没有 PowerShell 相关日志,适合 cmd 执行不敏感的环境。
★★★★ 高噪:完整PowerShell/WMI枚举
edr_services和edr_enum都会创建 powershell.exe 子进程,脚本块日志、模块日志、AMSI、全量 ETW 都会触发。优点是信息最全面,edr_enum还会通过 WMI 读取 AV 产品信息,适合已经暴露、不需要藏行踪的场景。
实战推荐工作流
作者也给出了标准的使用顺序,从低到高逐步升级,避免一上来就打草惊蛇:
- 先跑
edr_check,零成本,先从进程层面筛一遍明显的 EDR - 再上
edr_services_bof,补全服务和内核驱动信息,同样零噪音 - 能接受 CLR 加载的话,再用
edr_services_pick补充信息 - 环境宽松的话,再考虑 cmd 和 PowerShell 版本
- 必须要全量信息时,最后再上
edr_enum

最优组合就是edr_check + edr_services_bof:进程、服务、内核驱动三层全覆盖,全程噪音等级★,没有任何额外痕迹,性价比拉满。
BOF 为什么这么安静?
很多人关心 BOF 为什么能做到零痕迹,原理其实很清晰:
它直接调用 Windows 服务控制管理器(SCM)的原生 API,分两阶段枚举:第一阶段扫用户态服务,第二阶段扫内核驱动(包括文件系统微过滤驱动),全程共用一个句柄。
所有 API 调用都用了动态函数解析,没有静态导入表,不会留下 IAT 痕迹;全程在 Beacon 进程内执行,不创建子进程,自然也就不会触发进程创建、PowerShell 日志、AMSI 这类常见检测点。
安装与使用
安装分两步,非常简单:
- 基础功能直接用:把
edr-enum.cna导入 Cobalt Strike 的脚本管理器,除 BOF 外的所有命令就能直接用,不需要编译。 - 编译 BOF(强烈推荐):装个 mingw-w64,用项目里的 Makefile 执行 make 编译,把生成的
.o文件和 cna 脚本放同目录就行。
在 Beacon 里输入edr_help还能调出完整的速查表,纯客户端执行,不会往目标机发任何流量。
最后
这款工具最难得的地方,是它没有追求 “一键全查” 的爽感,而是把检测权衡交给了操作者。
在红队作业里,很多时候不是查得越全越好,而是在不被发现的前提下,拿到足够决策的信息就够了。从静默探测到全量枚举,每一步的检测面都清清楚楚,操作者可以根据目标环境灵活选择 —— 这才是后渗透工具该有的样子。
项目地址:
https://github.com/VirtualAlllocEx/CS-EDR-Enumeration
之前《自写的几个BOF,可过内存防护!》这篇文章中我写的是checkav_bof主要是使用自己整理的进程数据通过进程方式进行识别,这里也可以把我们常见AV/EDR等安全防护产品的进程整理到他这个CNA脚本中用于识别,还是看个人使用习惯吧。
学习网安实战技术,戳“阅读原文”
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:蚁景网安 《进程+服务+内核三覆盖!红队EDR探测正确方式》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论