☰
Viper 实战:使用 PowerView 账户发现模块获取 Windows 本地用户与管理员组信息
2026/10/13 2:55:07 网站建设 项目流程
  • 文档
  • 教程
  • 网络安全

【免费下载链接】Viper

Adversary simulation and Red teaming platform with AI

项目地址:https://gitcode.com/gh_mirrors/vip/Viper
点击查看免费下载

本文介绍 Viper 红队平台中Discovery_AccountDiscovery_PowerView模块(获取 Windows 管理员组用户)的完整使用方法:从会话建立、模块定位、参数填写到结果解读,并结合仓库内Discovery模块家族与其他 PowerView 类模块,说明本地账户枚举在域渗透信息收集阶段的实战价值。阅读完本文后,你将掌握如何在 Viper 图形化界面中一键完成 Windows 主机本地用户及本地管理员组成员的枚举,并将结果用于后续权限提升、横向移动与凭据定位。

模块定位:ATT&CK Discovery 阶段的账户发现

在 MITRE ATT&CK 战术框架中,Discovery(发现)阶段的Account Discovery(账户发现,T1087)技术用于枚举目标主机与域环境中的用户账户信息。Viper 将全部后渗透模块按照 ATT&CK 战术分类,Discovery_AccountDiscovery_*前缀即代表"发现-账户发现"这一类目,具体说明见模块使用说明与运行模块指南。

该模块的官方描述为:

This module retrieves all local user information or local administrators group user information on the host.

即:获取主机本地所有用户信息,或本地管理员组用户信息。它面向单台 Windows 主机的本地账户体系(区别于面向域控的Discovery_AccountDiscovery_GetNetDomainUser全量域用户枚举),是内网信息收集环节中成本最低、命中率最高的基础枚举动作之一。

从模块命名中的PowerView可以推断,其底层实现基于 PowerView——内网/域渗透场景中广泛使用的 PowerShell 枚举工具集。PowerView 为域内主机枚举提供了Get-NetLocalUser、Get-NetLocalGroup、Get-NetLocalGroupMember等系列函数,与 Viper 的"模块化、原子化"设计理念契合:每个模块只做一件小而明确的事,用户无需编写或记忆 PowerShell 脚本,即可在 Web 界面中完成同等效果的枚举。

模块能力:本地用户枚举与管理员组成员提取

围绕"本地用户信息 / 本地管理员组用户信息"两种输出形态,该模块实际覆盖了两类典型的账户发现需求:

  • 全部本地用户枚举:列出主机上所有本地账户(含内置账户、服务账户、手动创建的本地账户),可用于建立"主机-用户"对应关系,识别遗留的高权限本地账号、共享账号等异常对象。
  • 本地管理员组成员提取:聚焦Administrators组成员。在 Windows 权限模型中,Administrators组成员拥有对本机几乎完全的控制权,谁在管理员组、哪些域账户被拉进了本地管理员组,直接决定了后续攻击路径的走向。

对应的原生 PowerShell 命令为Get-LocalUser/Get-LocalGroupMember -Group "Administrators",原生命令行工具则为net user/net localgroup administrators。在 Viper 中,这些操作被封装为图形化的一键模块,降低了手工命令的拼写成本与误操作风险。

该模块的运行结果会与其他Information Gathering(信息收集)模块的结果一并存储,见主机信息:信息收集类模块的产出以 JSON 格式保存在主机信息中,同时供 AI Agent 与人工用户查看。这意味着在 Viper 启用 LLM Agent 的工作流中,本模块枚举出的账户清单可以直接成为后续决策(如口令爆破目标、凭据梳理、提权路径分析)的输入数据。

运行前置条件:会话与权限

与所有依赖目标主机交互的后渗透模块一样,运行本模块前需要满足:

  1. 已建立目标主机的 Session(会话)。Viper 中每个上线的主机下挂一个或多个会话,会话即通往目标机的执行通道。会话管理及权限操作入口见主机与会话列表。
  2. 会话权限足以执行枚举。本地用户/管理员组成员枚举通常不需要 SYSTEM 或 UAC 提权后的管理员权限,普通用户会话即可读取大部分账户元数据;但若目标策略对账户枚举有限制,高权限会话(如通过 UAC 提权、SYSTEM 权限)的成功率更高。Viper 在主机与会话列表中对会话权限做了可视化区分:普通用户权限会话与管理员权限会话(UAC 提权后)以不同颜色标识,方便快速识别可用权限。
  3. 确认模块需要会话。Viper 的模块分为"需要会话"与"不需要会话"两类:当在有会话的主机行上点击"运行模块"时,展示全部可用模块;在没有会话的行上点击时,默认只展示无需会话的模块。本模块属于需在目标机上执行枚举的会话型模块,因此务必从已有会话的主机行进入模块列表。

操作方法:从会话一键启动模块

官方文档给出的操作方式由以下截图示意,整体流程与 Viper 通用的模块执行流程一致。

具体步骤如下:

  1. 进入会话模块列表:在主机与会话列表中,点击目标主机条目展开其下所有会话,再点击会话条目,在展开的功能列表中点击"运行模块",弹出当前会话可用的全部模块。
  2. 定位模块:Viper 支持按 ATT&CK 战术分类过滤,也支持按关键字搜索(搜索会匹配模块名称、TTPs 与描述)。输入PowerView或AccountDiscovery即可快速过滤到本模块。
  3. 查看参数与描述:在左侧选中模块后,右侧默认展示该模块所需的参数;将鼠标悬停在参数上会显示参数说明。右侧还可切换到Description(描述)页签查看模块的详细信息——这也是确认模块输入输出的第一手依据。
  4. 运行:填写参数后点击Run执行模块,模块随即在目标主机的会话通道中发起枚举。
  5. 观察执行过程:运行后可切换到Real-time Output(实时输出)查看模块运行状态;若模块运行时间较长,可在Task List(任务列表)页面查看后台运行中的模块,并可通过删除按钮手动终止。
  6. 查看结果:Platform Log(平台日志)会记录模块进入后台、运行过程中的日志输出及运行结束提示;Module Results(模块结果)则展示每次运行的结束时间、主机 IP、模块名称、模块参数及模块输出内容。账户枚举类模块的输出通常以账户名/组成员列表的形式呈现,便于直接复制到后续攻击模块中使用。

参数、实时输出与结果查看

依据运行模块指南,围绕本模块你需要熟悉以下几类界面要素:

界面要素作用
参数区选中模块后自动展示所需参数,悬停查看参数说明,决定枚举目标与输出范围
Description 页签展示模块更详细的用途说明与注意事项
Real-time Output实时查看模块在目标机上的执行过程与中间输出
Task List管理后台运行中的长耗时模块,支持手动终止
Platform Log记录模块进入后台、运行日志与结束提示
Module Results汇总每次运行的结束时间、主机 IP、模块名、参数与结果输出

其中,参数区是本模块的关键输入面:模块描述中点明了"全部本地用户信息或本地管理员组用户信息"两种输出形态,实际使用时应依据枚举目标决定选择哪种模式——做主机账户摸底时枚举全部本地用户;做提权与横向路径分析时则优先提取本地管理员组成员。

实战场景:管理员组成员在域渗透中的价值

为什么一个"查本地管理员组"的模块值得单独成篇?结合 Viper 官方内网渗透教程viper_semi_automated_intranet_information_gathering.md的描述可以看得更清楚:

  • 域渗透中高价值目标往往与本地管理员组绑定。教程指出,域管理员通常是最高价值目标,而"本地管理员组成员"则揭示了域账户与主机本地权限之间的桥梁:如果一个域账号被添加到某台主机的Administrators组,拿下该账号或该主机,即可获得该主机的完全控制。
  • 横向移动的起点。拿到目标机本地管理员组成员清单后,可以结合凭据类模块(如内存 Hash 抓取、浏览器密码提取)进行"账户-主机"交叉匹配,为LateralMovement(横向移动)阶段的 Pass-the-Hash、WMI/PSEXEC 类模块提供精确的目标账户。
  • 与域账户发现模块互补。Discovery_AccountDiscovery_GetNetDomainUser(获取全部域用户)负责摸清域账户全景,本模块负责摸清单机本地账户与管理员组——两者配合即可覆盖"域 + 本地"两套账户体系。

此外,该模块产出的 JSON 结构化结果会存入主机信息,供AI Agent读取。在 Viper 的自动化编排(automation.md)中,新会话上线后可自动执行预配置模块序列,账户发现类模块因此可以作为自动化信息收集流水线的第一个环节,为后续模块提供输入。

同类模块矩阵:PowerView 家族的横向扩展

本模块并非孤立存在。在 Viper 的Discovery类目中,同名的 PowerView 系列模块构成了本地枚举的完整拼图,均可在会话模块列表中直接检索到:

  • Discovery_PermissionGroupsDiscovery_PowerView.md:获取本地用户组与域用户组(权限组)信息,可进一步展开到Domain Admins、Enterprise Admins等高权限组;
  • Discovery_NetworkShareDiscovery_PowerView.md:获取本机共享信息或域内其他主机的共享信息,服务于共享目录枚举与后续文件投递;
  • Discovery_AccountDiscovery_GetNetDomainUser.md:获取主机所在域的全部域用户(非域主机上运行可能报错),用于定位关键人员与域管理员。

建议的枚举顺序为:先用本模块完成本地账户与管理员组成员摸底,再用权限组模块梳理本地/域权限组结构,最后根据域环境情况用域用户模块与共享枚举模块扩大信息面。

注意事项与限制

  • 非域主机同样适用:本模块针对本地账户体系,不依赖域环境,因此在工作组主机上也能正常枚举;与之相对的域用户模块(GetNetDomainUser)在非域主机上可能报错,使用时需区分场景。
  • 权限边界:枚举到的账户信息不包含口令或 Hash,属于低风险发现动作,但不应因此放松合规意识——在获得授权的前提下开展此类信息收集。
  • 防御视角:EDR/杀软可能对 PowerShell 枚举行为(尤其是内联执行)敏感。Viper 的防溯源与 handler 相关能力可辅助规避检测,但在真实评估中应以授权范围和规则要求为准。
  • 结果留存:模块结果默认保存在平台日志与模块结果中,无需手工记录;如需沉淀到主机信息供 AI Agent 使用,请留意主机信息中信息收集结果的 JSON 存储机制。

延伸阅读

  • 运行模块指南:模块运行、参数、实时输出与结果查看的完整说明
  • 主机与会话列表:会话建立、权限标识与模块入口
  • 主机信息:信息收集结果的 JSON 存储与 AI Agent 消费方式
  • viper_semi_automated_intranet_information_gathering.md:半自动化内网信息收集实战教程(含本模块的定位背景)
  • Discovery_PermissionGroupsDiscovery_PowerView.md 与 Discovery_NetworkShareDiscovery_PowerView.md:PowerView 系列相邻模块
  • 中文版模块文档:docs/zh/module/Discovery_AccountDiscovery_PowerView.md
  • 文档
  • 教程
  • 网络安全

【免费下载链接】Viper

Adversary simulation and Red teaming platform with AI

项目地址:https://gitcode.com/gh_mirrors/vip/Viper
点击查看免费下载
上一篇:5分钟永久激活Microsoft 365:Ohook完整免费方案终极指南
下一篇:melonJS 输入系统实战指南:键盘 action 映射、指针事件穿透与游戏手柄接入

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询