Windows 横向移动检测指南:识别 5 类常见攻击(IPC/WMI/SMB/PTH/WinRM)的日志与流量特征

📅 2026/7/11 19:09:13
Windows 横向移动检测指南:识别 5 类常见攻击(IPC/WMI/SMB/PTH/WinRM)的日志与流量特征
Windows横向移动攻击检测实战指南从日志与流量特征识别5类内网渗透手法1. 内网横向移动攻击的本质与检测逻辑当攻击者突破边界进入内网后横向移动Lateral Movement成为扩大战果的关键阶段。攻击者会利用各种协议和系统功能试图在内部网络中跳转最终目标是获取域控或核心业务系统权限。作为防守方我们需要从以下三个维度构建检测体系认证日志分析重点关注异常登录行为如非工作时间登录、非常用IP登录进程创建监控识别非常规父进程启动的命令行工具如WMIC突然执行远程命令网络流量特征检测异常协议交互如SMB协议中的PsExec特征流量# Sigma检测规则示例可疑的WMI远程进程创建 title: Suspicious WMI Execution description: Detects suspicious WMI process creation status: experimental logsource: product: windows service: sysmon detection: selection: EventID: 10 SourceImage: *\wmiprvse.exe TargetImage: - *\cmd.exe - *\powershell.exe - *\wmic.exe condition: selection2. IPC$横向移动的检测要点2.1 攻击特征分析IPC$共享命名管道常被用于以下攻击链通过445端口建立空会话或认证连接上传恶意文件到目标主机ADMIN$或C$共享通过计划任务或服务执行恶意载荷关键日志指标安全日志ID 4624登录类型3协议SMB安全日志ID 5140网络共享访问Sysmon日志ID 11文件创建和1进程创建2.2 检测规则设计/* Splunk查询异常的IPC$连接后接计划任务创建 */ indexwindows (EventCode4624 Logon_Type3 Process_Name*\svchost.exe Account_Name!ANONYMOUS LOGON) | stats count by src_ip,dest_ip,Account_Name | join typeinner src_ip,dest_ip [ search indexwindows EventCode106 TaskName* | stats count by src_ip,dest_ip ]流量特征对比表正常行为攻击行为规律的域账户SMB访问大量失败后突然成功的NTLM认证访问共享文档路径访问系统目录如C$\Windows\Temp稳定的会话时长短连接后立即断开3. WMI远程执行的深度检测3.1 攻击模式识别WMIWindows Management Instrumentation通过135和445端口实现远程管理攻击者常用手法包括通过wmic.exe远程创建进程使用WMI事件订阅实现持久化调用Win32_Process类执行命令关键日志来源安全日志ID 4688进程创建父进程为wmiprvse.exeSysmon日志ID 10远程线程注入WMI-Activity/Operational日志中的可疑查询3.2 检测策略实现# 检测异常的WMI远程执行Python版 import pandas as pd from elasticsearch import Elasticsearch es Elasticsearch() query { query: { bool: { must: [ {match: {event_id: 4688}}, {wildcard: {process.parent.name: *wmiprvse.exe}}, {terms: {process.name: [cmd.exe, powershell.exe, certutil.exe]}} ] } } } results es.search(indexwinlogbeat-*, bodyquery) df pd.json_normalize(results[hits][hits]) print(df[[_source.host.name, _source.process.command_line]])WMI攻击特征矩阵检测维度正常特征攻击特征执行频率低频管理操作高频批量执行目标路径系统工具路径临时目录/异常路径命令行参数完整合法参数编码/混淆命令时间分布工作时间段深夜/节假日4. SMB协议滥用的精准识别4.1 PsExec攻击特征微软官方PsExec工具常被攻击者滥用会产生独特痕迹服务创建特征临时服务名如PSEXESVC、XOXO服务映像路径指向ADMIN$共享网络流量特征SMB Write请求访问pipe\svcctl后续的DCERPC bind请求Sigma规则示例title: PsExec Service Installation description: Detects PsExec service installation logsource: category: process_creation product: windows detection: selection: CommandLine|contains: - psexesvc - ADMIN$ - PSEXEC condition: selection4.2 SMBexec检测要点基于Impacket的smbexec.py会创建临时服务并执行命令可通过以下特征识别事件ID 7045服务安装服务显示名称为DefaultServer临时批处理文件.bat在TEMP目录创建/* ELK检测查询可疑的SMB服务创建 */ event.dataset:windows.security AND event.code:7045 AND winlog.event_data.ServiceName:(Default* OR PSEXESVC*) AND winlog.event_data.ImagePath:(*ADMIN$*)5. 哈希传递(PTH)与WinRM滥用的防御5.1 哈希传递攻击检测当攻击者获取NTLM哈希后可能绕过密码验证直接认证关键检测点安全日志ID 4624中出现Logon Process: NtLmSsp相同用户短时间内从多个IP登录登录失败后立即成功错误代码0xC0000064转0x0检测规则# 检测可疑的NTLM哈希传递 def detect_pth(logs): suspicious [] for log in logs: if (log[event_id] 4624 and log[logon_type] 3 and log[authentication_package] NTLM and log[workstation_name] NULL): suspicious.append(log) return suspicious5.2 WinRM滥用检测WinRM5985/5986端口被滥用的特征包括日志特征事件ID 169WS-Management请求异常的Shell启动事件ID 6流量特征异常的SOAP请求包含Command元素高频的CreateShell操作防御建议启用WinRM日志记录wevtutil sl Microsoft-Windows-WinRM/Operational /e:true监控5985端口的外部连接限制WinRM用户白名单6. 实战检测方案整合6.1 多源数据关联分析建议构建以下关联分析场景时间序列关联SMB登录成功 → 计划任务创建 → 异常进程启动跨主机关联主机A出现敏感文件读取 → 主机B出现相同账户登录协议层关联NTLM认证日志 → 对应的DCE/RPC调用记录6.2 检测规则优化建议降低误报排除管理员的合法运维IP建立正常WMI调用的白名单基线提高检出率关注非常用账户的远程执行行为检测登录成功但无后续合法操作的会话# 实战检测脚本示例KQL SecurityEvent | where EventID 4624 and LogonType 3 | join kindinner ( SecurityEvent | where EventID 4688 | summarize ExecutionCountcount() by SubjectLogonId ) on $left.TargetLogonId $right.SubjectLogonId | where ExecutionCount 5 | project TimeGenerated, AccountName, SourceNetworkAddress, ExecutionCount在真实攻防对抗中我们发现攻击者往往会混合使用多种技术。某次红队行动中攻击链表现为通过钓鱼获取初始立足点使用WMI收集内网信息对多台主机尝试PTH攻击最终通过WinRM控制域控这种混合攻击模式要求防守方必须建立全面的检测覆盖而非依赖单一检测点。建议企业部署EDR解决方案并定期进行攻防演练持续优化检测规则。