- 文档
- 教程
- 网络安全
【免费下载链接】Viper
Adversary simulation and Red teaming platform with AI
本篇技术指南围绕 Viper(Adversary Simulation and Red teaming Platform with AI)中的「WMI哈希传递」模块展开,讲解如何利用已控主机(Session)的 Token 或已知的用户名、密码/NTLM 哈希,通过 WMI 方式在目标 Windows 主机上执行载荷并建立新 Session。读完本文,你将掌握该模块的底层执行链路(dswmiexec.exe + powershell.exe)、完整的参数配置方法、stager 监听选型原则,以及它与 Invoke-WMIExec、wmic 明文传递、Sharpwmi 等同类模块的取舍,能够在内网横向移动中直接落地使用。
模块定位:基于凭证的 WMI 横向移动
在 Viper 的横向移动体系中,获取内网主机 Session 后的进一步渗透通常分为两类(参考 横向渗透训练文档):
- 基于漏洞的方式:如 MS17-010、Weblogic RCE 等,直接利用目标主机漏洞获取权限;
- 基于凭证的方式:如使用已抓取或爆破得到的 SMB、WMI、MSSQL、MySQL 凭证,登录其他内网主机。
「WMI哈希传递」模块属于第二类。它对应仓库文档 docs/zh/module/LateralMovement_PassTheHash_ByWmi.md,核心功能一句话概括为:使用 Session 的 Token 或已知的用户名及密码,通过 WMI 方式在目标主机执行载荷。
模块名中的 "PassTheHash" 表明它面向哈希传递(Pass-the-Hash)场景:当已经抓取到目标主机某个账号的 NTLM 哈希、但没有明文密码时,可以直接以该哈希完成远程认证,无需还原明文。
执行原理:dswmiexec.exe + powershell.exe 的载荷投递链路
从模块文档的原始描述可以还原出它的执行链路:
- 模块将dswmiexec.exe上传到当前主机(即当前 Session 所在的已控主机);
- 由 dswmiexec.exe 以 WMI 方式连接目标主机,调用对方主机的powershell.exe;
- 载荷通过目标主机的 powershell.exe 落地执行,与 Viper 预设的监听器建立连接后上线形成新 Session。
这里的关键设计是借壳执行:真正的远程命令执行动作由 dswmiexec 完成,而实际载荷的投递则交给目标主机上的 powershell.exe。由于执行过程涉及在远程主机拉起 powershell 进程,模块文档明确提示:AV 主动防御可能会提示风险。
为什么这个模块无需内网路由
模块文档特别强调「模块无需内网路由」,这与 Viper 大部分 MSF 模块默认依赖内网路由不同。Viper 的内网路由机制(见 内网路由说明)用于让 Viper 服务器能够通过 Session 连接内网 IP;而本模块的 WMI 连接流量由已控主机自身发起——即 Session 所在主机直接向目标主机建立 WMI 连接,而不是 Viper 服务器直连目标。因此只要该主机能访问目标主机,即使 Viper 服务器与目标之间没有路由,也可以完成横向移动。这也是它作为「内网跳板横向移动」模块的实用价值所在。
载荷执行方式:Stager 与 Inline
模块文档给出了一条重要约束:如果模块提示 powershell 命令超长,请使用 stager 类型监听。
原因在于:powershell 作为命令行载荷载体,其命令长度受 Windows 命令行参数上限约束。若监听器选用 inline(单阶段)类型,完整载荷会以一条超长 powershell 命令的形式下发,很容易超出长度限制;而 stager(分阶段)类型监听只下发一个体积很小、用于回连监听器并拉取后续 stage 的引导程序,命令长度大幅缩短,因此更适合经 powershell 执行的场景。在 Viper 的监听配置中,生成载荷时可以据此选择相应类型(参考 监听载荷说明)。
操作步骤
「WMI哈希传递」模块的界面操作以两张截图说明(原文见 模块文档)。
1. 参数配置
进入模块后,在配置界面中指定以下信息:
- Session:选择当前已控主机,模块将把 dswmiexec.exe 上传到该主机并借此发起 WMI 连接;
- 目标主机:填写要横向移动的目标 IP;
- 认证凭证:可填写已知的用户名、密码或 NTLM 哈希;若已有 Session Token,也可不填凭证直接使用 Token 完成远程认证(与 WMI明文传递 模块「没有填写凭证信息时默认调用当前 Session 的 Token」的行为一致);
- 监听器:选择用于接收新 Session 的监听配置,注意上文提到的 stager 选型约束。
2. 运行与结果
配置完成后运行模块,目标主机若成功执行载荷,会在监听器上产生新的 Session,随后即可像操作普通 Session 一样继续渗透。需要注意的是,WMI 方式上线通常较慢,建议等待约 20 秒确认是否有 Session 上线(同族 WMI 模块均有此特性,见 WMI明文传递)。
凭证从哪来:Session Token、凭证库与哈希抓取
使用本模块前,先要解决「用什么凭证认证」的问题,常见来源有以下几种:
- 当前 Session 的 Token:本模块支持直接用已控主机的权限 Token 远程认证,无需额外凭证;
- 凭证管理库:Viper 提供 凭证管理 功能,集中存储渗透过程中获取到的密码与哈希信息,支持手动添加,添加后的凭证可在各类模块中直接选用;
- 内存密码抓取:在已控 Windows 主机上通过 kiwi 等模块抓取明文密码或哈希(参考 横向渗透训练文档 中的「本机密码」部分),抓到的哈希正好用于本模块的哈希传递场景。
建议在横向移动前先完成目标网段的端口扫描与主机发现,并借助 网络拓扑 了解内网主机分布,让凭证利用的目标选择更有针对性。
同族模块横向对比与选型
Viper 提供了多条基于 WMI/SMB 的横向移动路径,理解差异有助于按场景选型:
| 模块 | 载荷执行载体 | 本地文件落盘 | 是否需要本地 wmic.exe | 主要凭证形式 |
|---|---|---|---|---|
| WMI哈希传递(本模块) | 上传 dswmiexec.exe,调用目标 powershell.exe | 是(上传 dswmiexec.exe) | 否 | Token / 用户名密码 / 哈希 |
| Invoke-WMIExec哈希传递 | 内存执行 Invoke-WMIExec | 否(无需上传文件) | 否 | 用户名 + NTLM 哈希 |
| WMI明文传递 | 本机 wmic.exe + 目标 powershell.exe | 否 | 是 | Token / 用户名密码 |
| Sharpwmi横向移动 | 内存执行定制版 Sharpwmi.exe | 否 | 否 | 用户名密码 / 内存哈希 |
选型建议:
- 关注文件落地痕迹:本模块需要上传 dswmiexec.exe,会留下文件痕迹;若希望更隐蔽,可改用 Invoke-WMIExec哈希传递(内存执行、不落盘)或 Sharpwmi横向移动;
- 仅持有明文密码:使用 WMI明文传递 即可,但它依赖目标环境可调用 wmic.exe;
- 仅持有 NTLM 哈希:优先使用本模块或 Invoke-WMIExec 模块完成哈希传递。
常见问题与排查思路
1. 运行后没有新 Session 上线
- 凭证错误或账号无目标主机的 WMI 访问权限——先核对凭证,或改用当前 Session Token 重试;
- 利用本身可能失败,可换用同族其他 WMI 模块交叉验证;
- 目标主机无法主动回连 Viper 服务器(例如目标位于不同网络、被防火墙阻断出站),此时应考虑使用正向监听(bind 类型)重新尝试(参考 横向渗透训练文档 中的常见问题部分)。
2. 提示 powershell 命令超长
- 将监听器改为 stager 类型后再生成/运行,规避命令行长度限制(详见上文「载荷执行方式」一节)。
3. 目标主机 AV 产生告警或拦截
- 模块文档已明确说明 AV 主动防御可能提示风险,这是 powershell 远程执行路径的通病;可结合项目内的免杀与自保护模块(如仓库 DefenseEvasion 系列模块)在落地前做针对性处理,或在网络层减少流量特征。
小结
「WMI哈希传递」是 Viper 横向移动模块族中兼顾通用性与便利性的一个:它用 dswmiexec.exe 打通「已控主机 → 目标主机」的 WMI 链路,以 powershell.exe 完成载荷执行,支持 Token、用户名密码、NTLM 哈希多种认证方式,且无需配置内网路由。掌握其原理与操作要点后,配合凭证管理库、内存抓取与同族模块的灵活选型,可以在内网横向移动阶段快速、稳健地扩展控制范围。
- 文档
- 教程
- 网络安全
【免费下载链接】Viper
Adversary simulation and Red teaming platform with AI
相关推荐
Viper Sharpwmi 横向移动模块实战:基于 WMI 的内存哈希传递与凭证利用
Viper Sharpwmi 横向移动模块实战:基于 WMI 的内存哈希传递与凭证利用 导读 本文围绕 Viper 后渗透模块 Sharpwmi 横向移动 展开
文档教程网络安全Viper 平台 WMI 哈希传递(Pass-the-Hash)横向移动模块实战指南
Viper 平台 WMI 哈希传递(Pass the Hash)横向移动模块实战指南 导读 本篇文章围绕 Viper 红队平台中的 WMI Pass the H
文档教程网络安全Viper 横向移动实战:基于 Invoke-WMIExec 的 NTLM 哈希传递(Pass-the-Hash)
Viper 横向移动实战:基于 Invoke WMIExec 的 NTLM 哈希传递(Pass the Hash) 导读 本篇技术指南围绕 Viper 平台内置
文档教程网络安全
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考