域控服务器被拿下,意味着整个企业内网的信任体系已经崩塌。攻击者手中握着的不是一台普通终端的权限,而是整个域森林的钥匙。此时再去纠结初始入侵点如何修补已经来不及,最紧迫的任务是判断对手在内网横向移动到了什么程度,是否已经建立了多个持久化据点,以及数据是否已经被打包外传。排查的核心思路必须从“单点清除”切换到“全网狩猎”,因为域控沦陷后的横向攻击排查,本质上是在一个完全不可信的环境中寻找攻击者的行为轨迹。
从域控的认证日志锁定横向移动的第一跳攻击者获得域控权限后,最直接的动作往往是进行凭证转储。他们通常会使用内置工具或知名攻击套件导出NTDS.dit文件,或者直接调用lsass.exe进程的内存数据。排查时,优先检查域控上是否存在异常的进程访问行为。重点关注事件ID 4663,它记录了对象访问尝试。如果发现非核心系统进程对NTDS.dit或SAM注册表项进行了读取,且访问掩码包含0x10(读取权限),这就是高危信号。同时,检查VSS快照的创建记录,攻击者经常利用卷影副本进行无锁提取。如果系统在非备份时间段突然出现了新的VSS快照,且创建者进程异常,基本可以断定凭证库已泄露。
拿到凭证后,攻击者的第一跳横向移动往往具有试探性。他们会利用窃取的高权限凭据,通过SMB或WMI协议向少数几台高价值服务器发起连接。此时需要重点关注事件ID 4624(登录成功),登录类型为3(网络登录)或10(远程交互登录)。排查时不能只看登录成功的事件,登录失败的事件ID 4625同样关键,因为攻击者可能使用了过期或错误的凭据进行试探。筛选出源IP为域控,但目标IP为其他成员服务器,且进程名包含mimikatz、wmiexec、psexec等特征字符串的记录。如果日志已被清理,务必检查域控的SMB会话列表,使用命令“net session”查看当前活跃的远程连接,特别是那些来自非IT部门IP段的会话。
追踪黄金票据与白银票据的滥用痕迹域控沦陷后,攻击者大概率会制作Kerberos票据以维持持久化访问。黄金票据利用krbtgt账户的哈希伪造TGT,白银票据则针对特定服务的TGS。排查黄金票据攻击,核心在于比对krbtgt账户的密码修改时间与攻击时间线。如果krbtgt账户的密码最近被非计划性重置,且紧接着出现了大量域管理员权限的分配行为,这通常是攻击者在加固自己的后门。在事件日志中,黄金票据产生的TGT请求会显示加密类型异常。正常环境下,加密类型通常为AES-256-CTS-HMAC-SHA1-96(0x12),而伪造工具可能使用较弱的RC4-HMAC(0x17)或DES-CBC-MD5(0x03)。重点审计事件ID 4769(请求服务票据),如果发现大量使用弱加密类型的请求,且客户端IP与账户习惯不符,即可判定为票据伪造。
白银票据的排查更侧重于服务端日志。攻击者伪造白银票据后,可以直接访问特定服务的资源而不经过域控认证。因此,在成员服务器的安全日志中,需要关注事件ID 4776(凭据验证)。如果域控日志中没有对应的验证请求,但成员服务器却记录了成功的服务访问,这就是典型的白银票据攻击特征。排查时,建议编写脚本提取所有服务器上的4776事件,与域控上的验证日志进行交叉比对,找出那些“幽灵验证”的记录。同时,检查服务主体名称(SPN)的修改记录,攻击者可能为伪造的白银票据创建新的SPN,事件ID 4742(计算机账户更改)和4738(用户账户更改)中若出现异常的SPN添加,需立即核实。
剖析横向移动的三大隐蔽通道绕过传统检测的横向移动往往依赖合法的管理协议。WMI是攻击者的首选,因为它不生成独立的服务进程,所有活动都封装在WMI服务中。排查WMI横向移动,不能只看进程创建日志,必须深入分析WMI-Activity操作日志。路径为“应用程序和服务日志/Microsoft/Windows/WMI-Activity/Operational”,事件ID 5861记录了IWbemServices的调用。筛选出源IP非管理网段,且调用了Win32_Process类Create方法的记录。攻击者常通过WMI执行PowerShell命令,因此需要关联事件ID 4104(PowerShell脚本块日志),提取出编码后的命令进行解码分析。如果发现类似“Invoke-WmiMethod -Class Win32_Process”的调用链,且包含下载C2载荷的指令,说明横向通道已建立。
SMB协议除了用于文件共享,也是PsExec类工具的核心依赖。攻击者通过SMB上传恶意程序到目标服务器的ADMIN$共享,然后创建服务执行。排查重点在于服务创建日志,事件ID 7045记录了新服务的安装。重点关注服务名称随机、服务二进制路径指向临时目录或Admin$共享,且服务启动后迅速被删除的“一次性”服务。结合事件ID 5145(共享对象访问),检查对IPC$和ADMIN$共享的访问请求,如果源IP是域控,但访问的共享路径指向了非标准的可执行文件,即可确认横向移动。另外,攻击者还偏好使用计划任务进行横向移动,通过事件ID 4698(计划任务创建)可以捕获。排查时,提取任务内容中的“<Command>”字段,若包含“cmd.exe /c”或“powershell.exe -enc”等启动远程连接的特征,需立即阻断。
定位Cobalt Strike及类似C2的SMB信标在域控被控后的横向排查中,发现Cobalt Strike的SMB Beacon是常见场景。SMB Beacon利用命名管道在主机间传递数据,不直接产生网络连接,极其隐蔽。排查此类信标,需要检查命名管道的异常使用。使用Sysinternals工具集中的PipeList或直接调用API枚举所有活跃的命名管道。正常的Windows系统会有几十个管道,但攻击者使用的管道名往往具有特定模式,如“msagent_”加随机字符,或者模仿合法管道如“mojo”、“ntsvcs”等。如果发现非微软官方文档记载的管道名,且管道安全描述符允许匿名连接,就需要高度警惕。
进一步分析,可以将管道与进程关联。通过Process Explorer查看哪个进程持有了可疑管道的句柄。如果是lsass.exe、svchost.exe等系统进程被注入,其加载的DLL列表中会出现未签名的模块。此时,结合内存取证工具,对可疑进程进行内存转储,搜索MZ和PE头特征,提取出反射加载的DLL。在日志层面,可以启用Sysmon的事件ID 17(管道创建)和事件ID 18(管道连接),配置规则过滤出非系统进程创建的管道,并记录连接该管道的客户端进程。如果发现某台普通工作站反复连接域控上的一个非标准命名管道,且传输的数据量呈现固定间隔的心跳特征,基本可以断定这是SMB信标的通信行为。
排查DNS与LDAP协议层面的异常行为攻击者在内网横向移动时,常利用DNS隧道或LDAP查询进行信息收集和命令控制。域控通常集成DNS服务,排查DNS日志是发现内网扫描行为的有效手段。检查DNS服务器的调试日志,筛选出请求类型为TXT、NULL或CNAME的非标准查询。攻击者可能通过DNS请求将数据编码在子域名中进行外传,或者利用DNS进行内网存活主机探测。如果发现某个客户端在短时间内对大量不存在的主机名进行A记录查询,且查询名称呈现序列化特征(如test1.internal.com、test2.internal.com),这通常是攻击脚本在进行网络扫描。
LDAP协议是攻击者查询域内所有对象属性的核心途径。域控沦陷后,攻击者会执行高权限的LDAP搜索,以枚举所有用户、计算机、组和信任关系。排查时,需要开启LDAP查询日志记录,通过修改注册表提升诊断级别。重点审计搜索过滤器过于宽泛的查询,如“(objectClass=User)”或“(objectCategory=Computer)”,且返回条目数巨大的请求。事件ID 1644记录了高代价的LDAP查询。如果发现源IP为域控自身(攻击者在域控本地执行),且查询属性包含userPassword、unixUserPassword等敏感字段,说明攻击者正在尝试提取额外凭据。同时,检查LDAP查询中是否包含时间戳过滤,攻击者常通过LDAP查询最近创建或修改的对象来快速定位蜜罐或新部署的安全设备。
构建基于时间线的全网横向移动图谱单点日志分析只能发现片段,必须将所有异常事件放入统一的时间线,才能还原攻击者的完整横向移动路径。建议以域控的初始沦陷时间为锚点,向前后各延伸24小时,提取所有域控制器、核心服务器及关键终端的日志。时间线构建的核心要素包括:登录事件(4624/4625)、特权分配(4672)、进程创建(4688)、计划任务创建(4698)和服务安装(7045)。将这些事件按时间戳排序,重点关注同一源IP或同一用户账户在短时间内跨越多台主机的行为。例如,一个普通服务账户在5分钟内先后登录了财务系统、研发服务器和域控备份机,这种跳跃式登录就是典型的横向移动轨迹。
在构建图谱时,要特别注意“内网跳板”的识别。攻击者往往不会直接从域控跳向最终目标,而是先控制一台运维终端或Web服务器作为中转。排查时,如果发现某台主机的出站连接数突然暴增,且目标端口涵盖445、135、5985、3389等横向移动常用端口,这台主机很可能已被作为跳板。提取该主机的进程网络连接日志(Sysmon事件ID 3),找出建立连接的进程。如果进程是cmd.exe或powershell.exe,且父进程为WMI或计划任务,即可确认跳板身份。将跳板主机作为新的排查起点,重复上述日志分析流程,逐层剥离攻击者的跳板链,直到勾勒出完整的攻击路径。
验证并清除持久化后门的关键步骤排查的最终目的是清除威胁,但贸然删除账户或重置密码可能触发攻击者的破坏脚本。在清除前,必须先识别所有持久化机制。除了票据伪造,攻击者还会在域控上植入Skeleton Key(万能密码)或修改本地安全策略。Skeleton Key通过注入lsass.exe进程,使得攻击者可以用预设密码登录任何账户。排查方法是检查域控上lsass.exe的加载模块,使用“tasklist /m /fi "pid eq [lsass的PID]"”命令,如果发现包含“pam.dll”或“skeleton.dll”等非微软签名的模块,说明已被植入。此外,检查组策略对象(GPO)的修改记录,攻击者可能在默认域策略中添加了启动脚本或计划任务,以实现全网持久化。通过GPO管理控制台查看最后修改时间,或使用PowerShell命令“Get-GPOReport -All”导出所有GPO的XML报告,搜索“ScheduledTasks”或“Startup”节点下的异常配置。
清除时,必须遵循严格的顺序。首先,断开局域网内所有不必要的网络连接,隔离被控域控,但不要关机,以免丢失内存证据。其次,在备用域控上重置krbtgt账户密码两次,以彻底作废所有已颁发的Kerberos票据。然后,重置所有域管理员、企业管理员和架构管理员的密码。最后,遍历所有计算机账户,重置其密码,防止攻击者利用计算机账户进行域信任攻击。在重建信任体系后,从离线备份中恢复被篡改的GPO和系统文件,并部署全新的Sysmon和日志转发规则,确保对后续任何异常行为都能第一时间捕获。
