进程+服务+内核三覆盖!红队EDR探测正确方式

admin 2026-06-30 09:03:06 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍一款CobaltStrikeAggressor脚本工具,通过进程、服务、内核驱动三层特征匹配实现EDR探测,提供6档分级噪音模式(从零痕迹进程内执行到全量WMI枚举),可识别主流终端安全产品并评估威胁等级。工具采用BOF技术实现静默检测,作者推荐优先使用edrcheck+edrservices_bof组合实现全覆盖零噪音探测,并给出从低到高逐步升级的实战工作流。 综合评分: 85 文章分类: 红队,内网渗透,安全工具,实战经验,渗透测试


cover_image

进程+服务+内核三覆盖!红队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 产品信息,适合已经暴露、不需要藏行踪的场景。

实战推荐工作流

作者也给出了标准的使用顺序,从低到高逐步升级,避免一上来就打草惊蛇:

  1. 先跑edr_check,零成本,先从进程层面筛一遍明显的 EDR
  2. 再上edr_services_bof,补全服务和内核驱动信息,同样零噪音
  3. 能接受 CLR 加载的话,再用edr_services_pick补充信息
  4. 环境宽松的话,再考虑 cmd 和 PowerShell 版本
  5. 必须要全量信息时,最后再上edr_enum

![](https://mmbiz.qpic.cn/mmbiz_png/tNyBeBKReNJnl5FfGwOxibRhDO9IgbB8PFYqphod60CLJZsPyWrs8AwPV47fM1ynqNscyJ6VsBa16jRsuvKuBeNtxUzVicvGvx0ANIR56XZAE/640?wx_fmt=png&from=appmsg#imgIndex=5)

最优组合就是edr_check + edr_services_bof:进程、服务、内核驱动三层全覆盖,全程噪音等级★,没有任何额外痕迹,性价比拉满。

BOF 为什么这么安静?

很多人关心 BOF 为什么能做到零痕迹,原理其实很清晰:

它直接调用 Windows 服务控制管理器(SCM)的原生 API,分两阶段枚举:第一阶段扫用户态服务,第二阶段扫内核驱动(包括文件系统微过滤驱动),全程共用一个句柄。

所有 API 调用都用了动态函数解析,没有静态导入表,不会留下 IAT 痕迹;全程在 Beacon 进程内执行,不创建子进程,自然也就不会触发进程创建、PowerShell 日志、AMSI 这类常见检测点。

安装与使用

安装分两步,非常简单:

  1. 基础功能直接用:把edr-enum.cna导入 Cobalt Strike 的脚本管理器,除 BOF 外的所有命令就能直接用,不需要编译。
  2. 编译 BOF(强烈推荐):装个 mingw-w64,用项目里的 Makefile 执行 make 编译,把生成的.o文件和 cna 脚本放同目录就行。

在 Beacon 里输入edr_help还能调出完整的速查表,纯客户端执行,不会往目标机发任何流量。

最后

这款工具最难得的地方,是它没有追求 “一键全查” 的爽感,而是把检测权衡交给了操作者。

在红队作业里,很多时候不是查得越全越好,而是在不被发现的前提下,拿到足够决策的信息就够了。从静默探测到全量枚举,每一步的检测面都清清楚楚,操作者可以根据目标环境灵活选择 —— 这才是后渗透工具该有的样子。

项目地址:

https://github.com/VirtualAlllocEx/CS-EDR-Enumeration

之前《自写的几个BOF,可过内存防护!》这篇文章中我写的是checkav_bof主要是使用自己整理的进程数据通过进程方式进行识别,这里也可以把我们常见AV/EDR等安全防护产品的进程整理到他这个CNA脚本中用于识别,还是看个人使用习惯吧。

学习网安实战技术,戳“阅读原文”


免责声明:

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

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

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

本文转载自:蚁景网安 《进程+服务+内核三覆盖!红队EDR探测正确方式》

评论:0   参与:  0