本文目录导读:

- 基于攻击链的检测阶段
- 核心日志与流量检测指标 (IoCs - Indicators of Compromise)
- 工具层面:检测常用攻击工具的特征
- 行为分析与高级检测策略
- 提升检测能力的建议
- 快速自查清单
检测内网横向移动是网络安全防御中的核心难题,攻击者通常会在突破外围防线(如钓鱼、漏洞利用)后,利用获得的初始权限在内网中“跳板式”地横向移动,以寻找高价值目标(如域控、数据库服务器)。
横向移动的本质是身份窃取和远程访问,检测的目标就是从海量日志中找出这些“正常”操作中的异常点。
以下是基于攻击链、过程、工具和日志维度的系统性检测思路:
基于攻击链的检测阶段
攻击者的横向移动通常分为三步,每一步都有对应的检测点:
信息收集与侦查阶段 (Lateral Movement Reconnaissance)
攻击者需要了解内网拓扑、谁在哪儿、开放了什么端口。
- 检测点:
- 异常的网络扫描: 一台从来不做扫描的文件服务器,突然对外进行大量ICMP、TCP Connect或SYN扫描,特别是针对445 (SMB)、3389 (RDP)、22 (SSH)、5985/5986 (WinRM) 等高危端口的扫描。
- LDAP查询洪流: 攻击者利用
AdFind、BloodHound等工具查询域内用户、组、计算机ACL,检测非域管理员“普通用户”在短时间内对LDAP发起的大量、低频但覆盖范围广的查询。 - SMB枚举: 攻击者使用
net view或PowerShell查看共享资源。
凭据窃取与转储阶段 (Credential Dumping)
攻击者拿到一台机器后,会立即尝试窃取密码哈希或明文凭据。
- 检测点:
- LSASS进程访问异常: 这是最关键的检测点,检测
lsass.exe(本地安全认证子系统服务)进程是否被非系统进程(如mimikatz,procdump,comsvcs.dll)打开或转储。 - 注册表SAM/安全/系统访问: 检测对
HKEY_LOCAL_MACHINE\SAM、HKEY_LOCAL_MACHINE\SECURITY、HKEY_LOCAL_MACHINE\SYSTEM的异常读取。 - NTDS.dit (域数据库) 访问: 检测任何非
ntdsutil.exe的进程(如vssadmin,ntdsutil被恶意利用)正在访问域控的C:\Windows\NTDS\NTDS.dit文件。 - 内存Dump事件: 启用了Windows事件审计(4688)后,可以检测
taskkill /im lsass.exe或者procdump.exe -ma lsass.exe这类命令行。
- LSASS进程访问异常: 这是最关键的检测点,检测
执行与登陆阶段 (Execution & Logon)
攻击者使用窃取的凭据进行远程登陆。
- 检测点:
- 服务创建 (Service Creation): 攻击者常用
sc.exe远程创建服务来执行恶意payload,这是高置信度的检测信号,事件ID 4697(服务创建)。 - 计划任务 (Scheduled Task): 远程创建计划任务,事件ID 4698(计划任务创建)。
- WMI/WMIC远程执行: 检测
wmic /node:或Invoke-WMIMethod命令,事件ID 4688(进程创建)中出现wmic调用远程主机。 - PsExec执行: PsExec会创建名为
PSEXESVC的服务,检测服务创建事件或特定注册表路径HKLM\SYSTEM\CurrentControlSet\Services\PSEXESVC。 - PowerShell远程管理: WinRM(端口5985/5986)创建的会话,事件ID 6(Microsoft-Windows-WinRM/Operational)。
- 服务创建 (Service Creation): 攻击者常用
核心日志与流量检测指标 (IoCs - Indicators of Compromise)
日志层面 (Windows Event Log)
这是最权威、信息量最大的来源,开启并重点分析以下审计策略:
| 日志来源 | 事件ID | 意义与检测场景 | 横向移动活动 |
|---|---|---|---|
| 安全日志 (Security) | 4624 | 登录成功,重点关注 Logon Type 3 (网络) 和 Logon Type 10 (远程交互)。 | NTLM/Kerberos 认证 |
| 安全日志 | 4625 | 登录失败,大量远程登录失败(特别是Kerberos预认证失败,ID 4771)可能是密码喷洒。 | 暴力破解 |
| 安全日志 | 4648 | 显式凭据使用,当用户使用/明文密码登录时触发,配合Logon ID关联分析很关键。 | 凭证传递攻击 |
| 安全日志 | 4672 | 分配特殊权限(管理员登录),如果一台普通工作站突然出现管理员登录,高度可疑。 | 权限提升后的横向 |
| 安全日志 | 4688 | 进程创建。这是黄金事件,记录所有命令行,尤其监控 cmd.exe 带 /c、powershell.exe、wmic.exe /node:。 |
远程执行 |
| 安全日志 | 4697 | 服务安装,监控服务名是否包含 PSEXESVC、恶意随机名或自启动服务。 |
PsExec、恶意服务 |
| 安全日志 | 4776 | 凭据验证(NTLM),源工作站和目标机对凭据进行验证,大量来自同一台机器对多台机器的验证。 | 哈希传递(PtH) |
| 系统日志 | 7045 | 服务安装(旧版日志,现在更推荐4697)。 | 同上 |
| PowerShell日志 (Operational) | 4104 | PowerShell脚本块记录,可以捕获被混淆或被编码的命令。 | 常见横向工具 |
| Sysmon | 1 | 进程创建(比4688更详细,包括Hash、父进程路径)。 | 同上 |
网络流量层面 (Network Traffic)
- 异常的RDP流量: 一台服务器突然对外发起大量RDP连接(3389),通常服务器桌面环境不应高频使用RDP。
- SMB2流量剧增: 特别是文件传输量巨大(Execl, PsExec, xcopy),检测大文件通过SMB协议从非文件服务器传输。
- Kerberos服务票据请求 (TGS): 使用
KRB_TGS_REQ报文,检测一个普通用户向“域控”、“sql-server”等服务请求大量票据(可能是Kerberoasting攻击的前置),检测事件ID 4769(Kerberos服务票据请求)。 - DNS异常查询: 针对内部域名的暴力DNS查询(如
admin-pc.domain.local),攻击者试图通过DNS找到目标机器。 - 内部端口扫描: 检测同一内部IP段对全段开放的445、3389、22、135、5985端口的SYN包。
工具层面:检测常用攻击工具的特征
- Mimikatz: 检测
sekurlsa::logonpasswords命令;检测加载mimilib.dll、mimikatz.exe;检测对lsass.exe的进程dump。 - BloodHound / Sharphound: 检测通过LDAP进行的大量、复杂的查询(会修改LDAP过滤器);检测
Sharphound.exe/SharpHound.ps1的进程执行。 - Impacket (wmiexec.py/atexec.py/smbexec.py): 检测这些工具创建的服务名(通常包含
BTOBTO或随机字符)或服务启动失败事件;检测smbexec创建的__output管道。 - Cobalt Strike / Metasploit: 检测其使用的命名管道(如
msagent_*);检测其创建的WinRM/WMI会话;检测其使用的特定HTTP/SMTP协议的beacon心跳包。 - PsExec: 除了服务创建外,还检测源IP和目标IP之间建立SMB会话后,文件名为
PSEXESVC.exe的文件传输。
行为分析与高级检测策略
-
异常跳 (Unusual Jump):
一个普通员工的工作站(IP 192.168.1.50)从未访问过核心数据库(IP 10.10.10.200),突然在凌晨3点通过RDP登录到该数据库,这属于“非常见用户-非常见资产”的横向移动。
-
异常路径 (Unusual Path):
- 攻击者通过
mshta.exe从远程URL下载payload,然后立即启动powershell.exe,随后powershell.exe又启动wmic.exe /node:去远程执行,这种非标准进程链(如浏览器 -> Office -> Scripting Host -> Shell -> Remote Execution Tool)是强信号。
- 攻击者通过
-
异常时间与频率:
- 同一台机器在几分钟内对10台、20台机器发起相同类型的RDP连接,这是典型的“扫描-横向-横向”行为。
- 工作时间正常,但半夜或周末大量执行
wmic、sc.exe。
-
规则关联 (Rule Correlation)
- 结合主机日志+网络流,主机事件ID 4688 显示执行了
mimikatz.exe,同时网络侧检测到同一台主机随后向其他10台主机发起了SMB身份验证(事件ID 4776)。
- 结合主机日志+网络流,主机事件ID 4688 显示执行了
提升检测能力的建议
- 关键日志必须收集:
- 开启Windows高级审计策略:审计登录、审计进程创建、审计特权使用、审计对象访问(如SAM注册表)。
- 安装Sysmon(System Monitor, 系统监视器):它补全了Windows自带日志的很多缺失(如进程网络连接、文件创建时间、注册表操作)。
- 部署EDR(端点检测与响应): EDR能收集进程行为、内存扫描、网络连接、文件操作等全量数据,并内置了众多横向移动检测规则。
- 引入UEBA(用户和实体行为分析): UEBA会自动学习用户/机器的“行为基线”(如使用什么软件、什么时间、登陆哪些系统),任何偏离基线的行为(如一个HR员工突然使用管理员工具、一台机器突然大量访问域控)都会被标记。
- 实施零信任架构: 不要相信任何网络内部流量,即使是在内网,从A到B的通信也需要经过验证、授权和加密,实施微隔离(Micro-segmentation)限制主机间的不必要通信。
快速自查清单
如果怀疑内网已被横向移动,可以按以下顺序检查:
- 找异常登录: 找 4624 + Logon Type 3/10,看目标机器是否是不该被该用户访问的。
- 找进程链: 在受害者机器上找
wmic.exe /node:、sc.exe \\、powershell.exe -EncodedCommand等命令行。 - 找凭据转储: 在已沦陷机器上找
lsass.exe的异常访问事件(Sysmon Event ID 10 或 4688 中的 dump)。 - 找服务/任务创建: 找新创建的服务名称(4697)或新任务(4698),特别是启动参数指向网络共享或临时目录的。
- 对时间线: 将以上事件按时间轴排列,看“扫描 -> 拿到凭据 -> 远程连接 -> 再次扫描”的链条是否连贯。
检测横向移动没有单一魔法规则,核心是建立行为基线 + 发现异常行为执行序列,建议从高风险行为(如服务创建、LSASS进程访问、WMI远程执行) 入手,逐步完善检测规则。