文章总结: 本文系统梳理psexec、wmiexec、smbexec三类横向移动工具在Windows日志中的指纹特征,指出单条规则误报率高,需将4624、7045、5140等多条日志按时间窗口聚合成事件链研判。给出从告警到定性的四步研判顺序及三条Sigma检测规则,建议先补Sysmon日志源再上线规则,可将研判时间从十几分钟压缩至3分钟内。
综合评分: 85
文章分类: 红队,内网渗透,应急响应,日志分析
psexec落地那12秒:横向移动的Windows日志指纹与研判清单
cwbird
cwbird
bird网络安全
2026年9月15日 09:36
贵州
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
一台服务器上出现 4624(类型 3)+7045+5140 组合告警,从告警触发到研判完成平均要多久?多数 SOC 的真实数字在 15 分钟以上,而攻击者从 psexec 落地到抓取域内凭据,12 秒够了。这篇文章给出 psexec/wmiexec/smbexec 三类工具在目标机日志里的具体指纹,以及一套可以直接抄走的研判顺序。
为什么通用规则抓不住横向移动
Sigma 官方仓库里针对横向移动的规则不少,但拿默认规则直接跑生产日志,误报会淹没你。原因出在特征重叠:合法运维和攻击者用的是同一套 Windows 远程管理机制,4624(类型 3)每天每台服务器产生成百上千条,运维跳板机批量打补丁时 PSEXESVC 服务的创建记录和攻击行为一模一样。
某金融企业 SOC 的实测数据(来源:君哥的体历,金融业安全建设实践群讨论,2023):日均告警量万条级别时,靠单条规则研判的告警闭环率不足 30%。问题的解法只有一条路,把多条日志按时间窗口聚合成事件链,用链的特征而非单条日志的特征做判断。
psexec:指纹最全的一类,也是最好检测的
psexec 类工具(包括 Impacket 的 psexec.py 和 Metasploit 的 exploit/windows/local/ps_exec)在目标机上的动作序列固定。以 Impacket psexec.py 为例,完整链条是:
- 通过 SMB 命名管道上传 PSEXESVC.exe 到 ADMIN$ 共享(5145 事件记录共享访问失败,成功访问看 5140)
- 远程创建 PSEXESVC 服务并启动(7045 记录服务安装,服务名通常随机、二进制路径指向 C:\Windows\PSEXESVC.exe)
- 网络登录执行命令(4624,LogonType=3,登录进程 NtlmSsp,认证包 NTLM)
- 命令结束后服务被删除(System Event Log 7036 记录服务停止)
这四类事件在 10 秒内密集出现,就是研判的核心依据。单看 4624 无法定性,但 4624(3) 紧跟 7045 且服务文件在 ADMIN$ 下落地,基本可以定性。Impacket 系工具还有个稳定的辅助特征:Wmiprvse.exe 或 svchost.exe 发起的命令行里带随机文件名,比如命令行含 %SystemRoot% 下不常见的 exe 名,这个特征在 Sysmon 1(进程创建)里抓。
雷神众测 2020 年的蓝队视角文章给出过另一组特征:psexec 使用后注册表会留下痕迹,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PSEXESVC 键在服务删除后仍可能残留注销表项,应急时可以补查。
wmiexec:没有服务没有 exe,但命令行会出卖它
wmiexec.py 的工作方式完全不同。它通过 WMI 的 Win32_Process.Create 远程执行命令,把命令输出重定向到 \Windows\Temp\__output 之类的临时文件,再通过 SMB 读回。目标机上没有新服务、没有落地 exe,7045 完全不出现。
指纹藏在命令行里。wmiexec 生成的 cmd.exe /Q /c 指令链有固定模式:cmd.exe /Q /c <命令> 1> \127.0.0.1\ADMIN$\__ 2>&1 这种回显重定向写法,正常业务几乎不会用。Sysmon 1 事件里查父进程为 WmiPrvSE.exe 的 cmd.exe,命令行含 127.0.0.1\ADMIN$ 或 %COMSPEC% 拼接的,命中即高度可疑。这类事件 ID 组合依赖 Sysmon,纯 Windows 原生日志只有 WMI-Activity Operational 日志(需手动开启)里能抓到部分痕迹,这也是很多环境漏检 wmiexec 的直接原因。
对比测试的结果:在只开 Windows 原生审核策略的环境里,wmiexec 一轮命令执行只产生 4624(3) 和少量 4688,基本淹没在噪音里;部署 Sysmon 并开 WMI-Activity 日志后,同一轮执行能抓到 4 类高置信度事件。
smbexec:伪装成 bat 的管道模式
smbexec.py 不落地 exe,它在目标机写入一个 bat 文件(默认路径 \Windows\TEMP\execute.bat),每次执行命令都通过 SMB 写入这个文件再调用 cmd.exe /c \127.0.0.1\C$\__output 执行。指纹:4688/Sysmon 1 里 cmd.exe 的命令行含 \127.0.0.1\C$ 或 \127.0.0.1\ADMIN$ 的 UNC 回环路径。任何进程访问本机 IP 的管理共享都值得看一眼,因为正常软件极少这样写。
Impacket 三兄弟里 smbexec 用得最少,但恰恰因为用得少,一旦出现几乎可以 100% 定性为攻击行为。真实运维场景里没有业务会通过回环管理共享执行批处理。
研判清单:从告警到定性的顺序
拿到一条横向移动类告警后,按这个顺序查,每一步都有明确的判定条件。
第一步查 4624 的细节。目标机的安全日志里过滤 Source Network Address 为跳板机以外的主机、LogonType=3、Authentication Package 为 NTLM 的记录。域内 Kerberos 票据登录(LogonProcess 为 Kerberos)优先级提到最高,因为这意味着攻击者手里已有有效票据,PTH 或 Kerberoasting 的产物(Bypass 公众号 2022 年有专文分析哈希传递的日志检测:域控上 4624 类型 3、登录进程 NtlmSsp、且账户属高权限组的组合可直接定性)。
第二步查目标机 7045 和 Sysmon 1。服务名含随机字符串、二进制路径在 C:\Windows 下、启动时间与 4624 间隔小于 10 秒,三条全中就是 psexec 家族。没有 7045 但 WmiPrvSE.exe 子进程命令行异常,转 wmiexec 研判分支。
第三步查文件落地。5140/5145 看 ADMIN$、IPC$、C$ 访问来源,Sysmon 11(文件创建)看 %SystemRoot% 和 \Windows\Temp 下新增 exe 或 bat。psexec 的 PSEXESVC.exe 落地路径固定,一条文件规则就能补上检测。
第四步才算处置。前一步没走完就隔离主机,大概率隔离的是打补丁的运维机。红队蓝军 2022 年的文章提过一个数据:内网横向移动阶段 WMI 执行远程命令留下的日志量远小于 psexec,攻击者倾向用它,所以漏检 wmiexec 的环境实际暴露面比想象大。
检测规则怎么写:三条 Sigma 片段
单条规则定不了性,组合规则可以。以下片段基于 Sigma 官方 win_service_psexec 规则改造,思路可复用到自研 SIEM。
服务创建方向(7045):
logsource: { product: windows, service: system } detection: selection: EventID: 7045 ImagePath|contains: '\Windows\' service_name_re: ServiceName|re: '^[a-zA-Z]{6,12}$' condition: selection and service_name_re
进程命令行方向(Sysmon 1):
detection: selection: EventID: 1 ParentImage|endswith: '\WmiPrvSE.exe' CommandLine|contains: - '127.0.0.1\ADMIN$' - '127.0.0.1\C$' - '\\\\127.0.0.1\\' condition: selection
网络登录方向(4624)需要加白名单跳板机清单,否则量撑爆分析师。把 CMDB 里登记的运维源 IP 做成 reference list,Source Network Address 命中清单的降级为低危,未命中清单的 NTLM 类型 3 登录直接进人工队列。这份清单的维护频率建议每周,跳板机调整不进清单的告警会持续误报,这是实施时最容易翻车的点。
三条规则上线后,建议先用自家红队或 Caldera 的原子测试(Atomic Red Team T1021.002 的 smb/exec 测试用例)跑一遍验证检出,再谈调优。没验证过检出率的检测规则等同于没有。
落地顺序
先补日志源再谈检测:Sysmon 部署率不足的环境,优先推服务器全覆盖,配置用 SwiftOnSecurity 的开源配置改。然后上线 7045 和 Sysmon 1 两条规则(落地成本最低、误报可控),跑两周积累基线。最后再上 4624 组合规则,那时跳板机清单也整理完了。三步走完,横向移动类告警的研判时间从十几分钟压到 3 分钟内是可实现的,依据是事件链已经拼好,分析师只做定性。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:bird网络安全 cwbird
cwbird《psexec落地那12秒:横向移动的Windows日志指纹与研判清单》