内网横向移动全链路取证分析与证据拼接
内网横向移动全链路取证分析与证据拼接
勒索软件、Web 应用、钓鱼邮件、供应链投毒全链路分析已经覆盖了四种常见入侵场景。但所有这些场景都有一个共同点——它们都需要先突破内网防线,才能到达最终目标。而内网横向移动正是这个"从点到面"的关键阶段。
根据 CERT-EU 的安全白皮书,横向移动技术广泛应用于高级持续性威胁(APT)攻击中。攻击者使用这些技术从被入侵的系统访问其他主机,获取邮箱、共享文件夹或凭据等资源,进而用于进一步的入侵、权限提升或窃取有价值信息。最终目标是获得域控制器(DC)的访问权限,从而完全控制基于 Windows 的基础设施。
Unit 42 2025 全球事件响应报告指出,2024 年 86% 的事件涉及业务中断,勒索软件攻击正从单纯的加密转向"有意破坏运营"。横向移动是这一转变的核心——攻击者不再满足于单台主机,而是要控制整个内网。
本文以内网横向移动为场景,串联多个 0x02 取证项的检查结果,深度分析如何从分散的证据中拼接出完整的攻击链。
0x01 内网横向移动的本质与威胁
1.1 什么是内网横向移动
内网横向移动(Lateral Movement)是指攻击者在获得网络中一台主机的访问权限后,利用该主机作为跳板,进一步访问和控制其他主机的技术。
根据 MITRE ATT&CK 框架,横向移动属于战术 TA0008,包含 9 种核心技术:
| 技术 ID | 技术名称 | 描述 |
|---|---|---|
| T1021 | Remote Services | 通过远程服务(RDP、SMB、WMI 等)进行横向移动 |
| T1021.001 | Remote Desktop Protocol | 使用 RDP 进行远程桌面连接 |
| T1021.002 | SMB/Windows Admin Shares | 利用 SMB 和管理共享(ADMIN$、C$) |
| T1021.003 | Distributed Component Object Model | 利用 DCOM 进行远程代码执行 |
| T1021.004 | SSH | 利用 SSH 进行远程连接 |
| T1021.005 | VNC | 利用 VNC 进行远程桌面 |
| T1021.006 | Windows Remote Management | 利用 WinRM/PowerShell Remoting |
| T1021.007 | Cloud Services | 利用云服务进行横向移动 |
| T1021.008 | Direct Cloud VM Connections | 直接连接云虚拟机 |
此外,还有以下与横向移动相关的技术:
| 技术 ID | 技术名称 | 描述 |
|---|---|---|
| T1075 | Password Filter DLL | 安装密码过滤器 DLL 截获凭据 |
| T1078 | Valid Accounts | 使用合法账户进行横向移动 |
| T1110 | Brute Force | 暴力破解凭据 |
| T1110.001 | Password Spraying | 密码喷洒 |
| T1136 | Domain Accounts | 创建域账户 |
| T1550 | Use Alternate Authentication Material | 使用替代认证材料(Pass-the-Hash、Pass-the-Ticket) |
| T1550.001 | Pass the Hash | 传递 NTLM 哈希 |
| T1550.002 | Pass the Ticket | 传递 Kerberos 票据 |
| T1563 | Remote Service Session Hijacking | 远程服务会话劫持 |
| T1570 | Lateral Tool Transfer | 横向工具传输 |
1.2 为什么横向移动如此危险
横向移动之所以危险,是因为它利用了企业的"信任链":
信任链被利用的机制:
- 域信任:域控制器信任所有域成员,一旦 DC 被控,整个域沦陷
- 服务信任:服务账户通常拥有较高的权限,且凭据长期不变
- 管理员信任:管理员账户可以在任何机器上使用相同凭据
- 应用信任:应用程序通常以特定身份运行,攻击者可以利用这些身份
横向移动的攻击放大效应:
| 阶段 | 控制主机数 | 可用凭据 | 攻击面 |
|---|---|---|---|
| 初始访问 | 1 | 1 个低权限账户 | 单台主机 |
| 第 1 跳 | 2 | 1 个低权限 + 1 个服务账户 | 2 台主机 |
| 第 2 跳 | 5 | 2 个低权限 + 3 个服务账户 | 5 台主机 |
| 第 3 跳 | 20 | 5 个低权限 + 10 个服务账户 + 1 个管理员账户 | 20 台主机 |
| 第 4 跳 | 100 | 10 个低权限 + 50 个服务账户 + 5 个管理员账户 | 100 台主机 |
| 域控沦陷 | ∞ | 全部域凭据 | 整个域 |
这就是为什么安全研究人员常说:横向移动的速度决定了攻击的规模。
0x02 内网横向移动的三个阶段
根据 CyberDefenders 的分析框架,横向移动可以分为三个阶段:
阶段一:侦察与发现(Reconnaissance & Discovery)
攻击目标:了解网络拓扑、用户结构、信任关系、高价值目标。
典型行为:
- 执行
net view、net group、nltest等命令枚举网络资源 - 使用
SharpHound、BloodHound、AdFind等工具收集 AD 信息 - 扫描内网端口(445、3389、5985 等)
- 查询域信任关系、OU 结构、组策略
取证来源:
0x02/系统日志检查:4688进程创建事件0x02/异常端口查询:端口扫描连接0x02/系统进程检查:SharpHound、BloodHound等工具执行
阶段二:横向移动执行(Lateral Movement Execution)
攻击目标:利用收集的凭据和拓扑信息,移动到目标主机。
典型行为:
- 使用 PsExec 通过 SMB 远程执行命令
- 使用 WMI 远程执行 PowerShell 脚本
- 使用 RDP 进行交互式远程桌面
- 使用 SSH 进行 Linux 主机横向移动
- 使用 Pass-the-Hash 传递 NTLM 哈希
- 使用 Pass-the-Ticket 传递 Kerberos 票据
取证来源:
0x02/系统日志检查:4624、4648、4672事件0x02/系统共享检查:ADMIN$、C$共享访问0x02/异常端口查询:SMB/RDP/SSH 连接0x02/流量检查:pcap 中的横向移动流量
阶段三:权限提升与域控沦陷(Privilege Escalation & Domain Compromise)
攻击目标:获取域管理员权限,控制整个域。
典型行为:
- 使用 Mimikatz 从 LSASS 内存中提取凭据
- 执行 Kerberoasting 攻击获取服务账户凭据
- 执行 AS-REP Roasting 攻击获取可预认证的账户
- 伪造 Golden Ticket 或 Silver Ticket
- 执行 DCSync 攻击从 DC 同步 NTDS.dit
取证来源:
0x02/系统日志检查:4688、4624、4768、4769、4728事件0x02/系统用户审查:新账户创建、组修改0x02/安全策略检测:策略变更0x02/系统进程检查:mimikatz.exe、secretsdump.py等工具执行
0x03 阶段一:侦察与发现的取证分析
3.1 网络拓扑枚举
取证来源:0x02/系统日志检查 + 0x02/系统进程检查
典型证据:
分析要点:
net view /domain用于枚举域名称Get-NetDomain是 PowerView 模块中的命令,用于获取域信息Get-NetUser用于枚举域用户Get-NetComputer用于枚举域计算机
这些命令的组合使用表明攻击者正在进行 AD 环境的信息收集。
3.2 BloodHound 侦察
取证来源:0x02/系统进程检查 + 0x02/系统日志检查
典型证据:
分析要点:
- SharpHound 是 BloodHound 的数据采集器
-c All表示收集所有类型的关系数据- 文件路径在
AppData\Local\Temp下,属于可疑位置 - PowerShell 的
-ep bypass参数用于绕过执行策略
3.3 端口扫描
取证来源:0x02/异常端口查询 + 0x02/流量检查
典型证据:
分析要点:
- 短时间内对多个内网 IP 的 445 端口发起连接
- 这是典型的 SMB 端口扫描行为
- 需要确认是否为合法的漏洞扫描或资产管理工具
0x04 阶段二:横向移动执行的取证分析
4.1 PsExec 横向移动
取证来源:0x02/系统日志检查 + 0x02/系统共享检查 + 0x02/系统进程检查
典型证据:
分析要点:
- PsExec 通过在目标主机上安装名为 PSEXESVC 的服务来执行命令
- 服务安装事件(7045)是 PsExec 横向移动的强信号
- 共享访问事件(5140)显示攻击者通过 ADMIN$ 共享上传 PSEXESVC
- 特殊权限分配(4672)表明使用了管理员账户
4.2 Pass-the-Hash 横向移动
取证来源:0x02/系统日志检查 + 0x02/系统进程检查
典型证据:
分析要点:
- Event ID 4648 表明使用了显式凭据(Pass-the-Hash 的典型特征)
- Event ID 4624 的 Logon Type 为 9,表示使用了替代凭据
sekurlsa::logonpasswords是 Mimikatz 提取凭据的命令psexec.exe \\target -u admin -p <hash>是 Pass-the-Hash 的典型用法
4.3 WMI 横向移动
取证来源:0x02/系统日志检查 + 0x02/系统进程检查
典型证据:
分析要点:
- WMI 横向移动通过
wbemdisp.dll实现 wmic process call create是远程执行命令的典型方式- 父进程为
svchost.exe,表明通过 WMI 服务执行
4.4 RDP 横向移动
取证来源:0x02/系统日志检查 + 0x02/系统进程检查
典型证据:
分析要点:
- 登录类型 Type 10 表示远程桌面登录
mstsc.exe是 Windows 远程桌面客户端- 需要确认是否为管理员的正常 RDP 操作
0x05 阶段三:权限提升与域控沦陷的取证分析
5.1 Kerberoasting 攻击
取证来源:0x02/系统日志检查 + 0x02/系统进程检查
典型证据:
分析要点:
- 大量的 Kerberos 服务票据请求(4769)是 Kerberoasting 的典型特征
- 使用 RC4 加密类型(ETYPE-ARCFOUR-HMAC-MD5)表明攻击者正在请求可破解的票据
getTGT.py是 Impacket 工具集中的 Kerberoasting 工具
5.2 Mimikatz 凭据提取
取证来源:0x02/系统进程检查 + 0x02/系统日志检查
典型证据:
分析要点:
privilege::debug用于获取调试权限sekurlsa::logonpasswords用于从 LSASS 内存中提取凭据token::elevate用于令牌提升lsadump::sam用于从 SAM 数据库中提取哈希
5.3 Golden Ticket 攻击
取证来源:0x02/系统日志检查 + 0x02/系统进程检查
典型证据:
分析要点:
kerberos::golden是 Mimikatz 中伪造 Golden Ticket 的命令/ptt参数表示将伪造的票据注入当前会话(Pass-the-Ticket)- 伪造的 TGT 有效期通常为 10 年,可以长期使用
5.4 DCSync 攻击
取证来源:0x02/系统日志检查 + 0x02/系统进程检查
典型证据:
分析要点:
secretsdump.py是 Impacket 工具集中的 DCSync 工具-just-dc参数表示只提取 NTDS.dit 中的凭据- Event ID 4662 表明攻击者正在访问 KRBTGT 账户对象
0x06 证据拼接:构建完整的横向移动时间线
将上述各阶段证据按时间排列,构建完整的横向移动攻击链:
| 时间 | 阶段 | 证据来源 | 事件 | 结论 |
|---|---|---|---|---|
| 02:10:00 | 侦察 | 进程检查 | net view /domain 执行 | 域信息枚举 |
| 02:15:00 | 侦察 | 进程检查 | SharpHound.exe 执行 | BloodHound 数据采集 |
| 02:20:00 | 侦察 | 端口检查 | 大量 445 端口连接 | 内网端口扫描 |
| 02:30:00 | 横向移动 | 共享检查 | ADMIN$ 被访问 | PsExec 开始 |
| 02:30:00 | 横向移动 | 服务检查 | PSEXESVC 服务安装 | 远程服务创建 |
| 02:34:00 | 凭据 | 进程检查 | Mimikatz 执行 | 凭据提取 |
| 02:35:00 | 横向移动 | 日志检查 | 4648 显式凭据登录 | Pass-the-Hash |
| 02:40:00 | 横向移动 | 日志检查 | WMI 远程执行 | WMI 横向移动 |
| 02:45:00 | 横向移动 | 日志检查 | RDP 登录 | RDP 横向移动 |
| 03:00:00 | 提权 | 日志检查 | 大量 4769 事件 | Kerberoasting |
| 03:05:00 | 提权 | 进程检查 | sekurlsa::logonpasswords | LSASS 凭据提取 |
| 03:10:00 | 持久化 | 进程检查 | kerberos::golden | Golden Ticket 伪造 |
| 03:15:00 | 域控沦陷 | 进程检查 | secretsdump.py | DCSync 攻击 |
| 03:20:00 | 反取证 | 日志检查 | Security 日志被清空 | 痕迹清理 |
0x07 横向移动取证的特殊挑战
7.1 日志分散在多台主机
横向移动的证据分散在被攻击的多台主机上,需要:
- 从每台主机导出安全日志(Event ID 4624、4625、4648、4672、4688)
- 从域控制器导出 Kerberos 日志(Event ID 4768、4769、4776)
- 从文件服务器导出共享访问日志(Event ID 5140、5145)
- 从每台主机导出进程日志
7.2 时间戳不一致
多台主机之间的时间戳可能不一致,需要:
- 确保所有主机使用相同的 NTP 服务器
- 在分析时考虑时间偏差
- 使用相对时间而非绝对时间
7.3 攻击者使用合法工具
横向移动工具(PsExec、WMI、RDP)都是合法的 Windows 管理工具,需要:
- 建立基线,区分正常管理和攻击行为
- 关注工具的使用模式和参数
- 结合多个证据源进行判断
7.4 攻击者清理日志
攻击者可能清理部分日志,需要:
- 检查日志是否被清理(Event ID 1102)
- 使用旁证(Prefetch、Amcache、USN Journal)恢复被删除的证据
- 检查集中日志平台是否保留了完整记录
0x08 公开资料与分析借鉴
1. CERT-EU: Detecting Lateral Movements in Windows Infrastructure
CERT-EU 的安全白皮书详细说明了 Windows 环境下横向移动的检测方法:
- 监控事件 ID 4624(成功登录)、4625(失败登录)、4648(显式凭据登录)
- 监控事件 ID 4768(Kerberos TGT 请求)、4769(Kerberos TGS 请求)
- 监控事件 ID 5140(共享对象访问)、5145(共享对象权限检查)
- 检测 NTLM 中继攻击:监控 Logon Type 3 和 Logon Process “NtLmSsp” 的组合
最值得借鉴的一点是:横向移动是一个两步攻击:首先从源主机捕获凭据,然后使用这些凭据访问另一台主机。检测需要关联这两个步骤。
公开来源:
2. CyberDefenders: Lateral Movement Detection Guide for SOC Analysts
CyberDefenders 的 SOC playbook 详细说明了横向移动检测的三个阶段:
- 阶段一:侦察与发现——监控
4688(进程创建)、5156(网络连接)、Sysmon Event 3 - 阶段二:横向移动执行——监控
4624Type 3、4648(显式凭据)、7045(服务安装) - 阶段三:权限提升与域控沦陷——监控
4672(特殊权限)、4768/4769(Kerberos 票据)
最值得借鉴的一点是:检测横向移动需要理解攻击者的三个阶段,并为每个阶段建立具体的检测规则。
公开来源:
- CyberDefenders: Lateral Movement Detection Guide for SOC Analysts
3. Vectra AI: Lateral Movement in Cybersecurity
Vectra AI 的文章详细说明了横向移动的常见协议和检测模式:
- SMB/Windows Admin Shares(T1021.002):监控
5140、5145事件 - RDP(T1021.001):监控
4624Type 10 - WMI(T1047):监控
4688中的wmic.exe、wbemdisp.dll - PowerShell Remoting(T1021.006):监控
4688中的winrm.cmd
最值得借鉴的一点是:Windows Event ID 关联(4624、4625、4648、4769)对于检测仍然至关重要,但大多数组织缺乏适当的关联规则。
公开来源:
- Vectra AI: Lateral Movement in Cybersecurity
4. Bitdefender: What is Lateral Movement
Bitdefender 的文章详细说明了横向移动的工作原理和防御方法:
- 攻击者首先进行内部侦察,映射网络、用户角色、信任关系
- 然后进行凭据窃取:从内存、文件、脚本、浏览器存储中提取凭据
- 最后进行横向移动:使用 stolen 凭据访问其他系统
最值得借鉴的一点是:有效的网络安全依赖于在攻击者巩固控制之前识别和中断横向移动。
公开来源:
- Bitdefender: Lateral Movement
5. NFLO: Digital Forensics after a Cyberattack
NFLO 的文章详细说明了网络攻击后的数字取证方法:
- 关键通道:Security(登录、权限变更、对象访问)、System(服务启动)、Application(应用活动)、PowerShell/Operational、Sysmon
- 需要跨系统关联:如果横向移动从主机 A 到 B 到 C,需要沿路径回溯到入口点
- 4624/4648(网络登录)、PsExec/WMI/RDP/SMB 连接、父子进程关系是关键分析点
最值得借鉴的一点是:如果没有法医分析,组织在黑暗中操作。它不知道:从什么时候开始,通过什么向量,攻击者获取了什么数据,是否仍在网络中。
公开来源:
6. Unit 42: 2025 Global Incident Response Report
Unit 42 的报告提供了横向移动在真实事件中的数据:
- 2024 年 86% 的事件涉及业务中断
- 2025 年加密出现在 78% 的勒索案件中
- 近五分之一的案件中,数据外泄在入侵后一小时内完成
- 横向移动速度决定了攻击的最终规模
最值得借鉴的一点是:攻击者正在从单纯加密转向有意破坏运营,防御者需要关注整个攻击链而不仅仅是加密阶段。
公开来源:
- Unit 42: 2025 Global Incident Response Report
0x09 和其他分析篇怎样联动
本文是内网横向移动场景的综合分析,联动了以下专题:
勒索软件入侵全链路取证分析与证据拼接:勒索软件通常需要先进行横向移动Web应用入侵全链路取证分析与证据拼接:Web 入侵后通常需要横向移动钓鱼邮件入侵全链路取证分析与证据拼接:钓鱼邮件后通常需要横向移动供应链投毒全链路取证分析与证据拼接:供应链攻击后通常需要横向移动系统日志检查结果证据强度分层与事件链构建分析:提供日志层面的证据分层异常端口检查结果与进程关联及外联目标判断分析:提供端口层面的异常判定系统进程检查结果与伪装及LOLBin执行链分析:提供进程层面的异常判定
0x0A 总结
内网横向移动取证分析的关键,不是"看单台主机的日志",而是:
- 从侦察开始,覆盖完整攻击链
- 将分散在多台主机上的日志按时间排列
- 识别每个阶段的关键证据和证据强度
- 构建完整的攻击时间线,支持最终交付
当你能从 4624、4648、4672、4768、4769、5140、7045 等事件日志中读出横向移动信号,并将 PsExec、WMI、RDP、Kerberoasting、Mimikatz、Golden Ticket、DCSync 等行为串联成一条完整的攻击链时,0x03 的"取证分析"才真正从"单项分析"升级为"全链路分析"。