后渗透之权限维持 -- 隐藏用户的创建和使用
字数 1390 2025-08-05 08:18:04

后渗透权限维持:隐藏用户(影子用户)的创建与使用

0x00 前言

在渗透测试过程中,获取目标主机权限后常需要通过远程桌面(RDP)查看有价值信息。但常规登录会留下痕迹,即使事后清理也存在风险。本文介绍通过创建隐藏用户(影子用户)实现权限维持的方法,最大程度减少登录痕迹。

0x01 隐藏用户创建与利用

基本概念

Windows系统中,用户名以"$"结尾的用户在net user命令中默认不显示,利用这一特性可创建隐藏用户。

利用条件

  1. 已获得管理员权限
  2. 已获取cmd shell等shell环境

操作步骤(以Windows10为例)

1. 创建隐藏用户

net user admin$ 123456 /add  # 创建用户admin$,密码123456
net localgroup administrators admin$ /add  # 将admin$加入管理员组

执行net user查看用户列表,admin$不会显示,但在"控制面板 > 管理工具 > 计算机管理 > 本地用户和组"中仍可见。

2. 修改注册表提高隐蔽性

  1. 打开注册表编辑器(regedit),定位到HKEY_LOCAL_MACHINE\SAM\SAM

  2. 右键SAM项,选择"权限",将Administrators组权限设置为"完全控制"

  3. 展开SAM项,现在可以看到隐藏的子项:

    • SAM\Domains\Account\Users
    • SAM\Domains\Account\Names
  4. 找到Administrator用户和admin$用户的注册表项:

    • 记录Administrator的F值(二进制数据)
    • 找到admin$对应的项
  5. 将admin$的F值替换为Administrator的F值

  6. 导出Users和Names下admin$的注册表项(备份)

  7. 删除admin$用户:

net user admin$ /del
  1. 重新导入之前备份的注册表项

完成以上操作后,admin$用户将:

  • 不会在net user中显示
  • 不会在计算机管理工具中显示
  • 仍可使用密码通过RDP登录
  • 具有管理员权限

3. 解决RDP登录问题

在RDP登录界面需要手动添加admin$用户:

  1. 点击"其他用户"
  2. 输入用户名"admin$"和密码
  3. 成功登录后拥有与Administrator相同的权限

0x02 细节拓展:RDP鉴权设置

关闭用户鉴权模式

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0
  • 0表示关闭鉴权
  • 1表示开启鉴权(默认)

关闭安全层验证

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 0
  • 0表示使用RDP协议验证(关闭验证)
  • 1表示两端协商验证(默认)
  • 2表示使用TLS协议验证

开启远程桌面连接

  1. 配置防火墙允许RDP:
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
  1. 通过注册表允许远程连接:
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\TerminalServer" /v fDenyTSConnections /t REG_DWORD /D 0 /f

完成以上设置后,RDP将:

  • 不需要输入正确凭证即可进入登录界面
  • 直接显示目标系统的锁屏界面

0x03 思路拓展

方法一:利用Guest账户

  1. 开启Guest账户
  2. 修改其注册表F值为Administrator的F值
  3. 使用Guest账户登录,减少关注

方法二:预添加授权用户

在"选择用户"设置中预先添加所有已知用户,防止管理员过早发现影子用户

增强隐蔽性技巧

  1. 对注册表SAM项的System和Administrators权限设置"拒绝访问",防止管理员删除用户
    • 注意:此操作不可逆,需谨慎
  2. 定期清理事件日志
  3. 使用非常规用户名,避免引起怀疑

注意事项

  1. 修改注册表前务必备份
  2. 拒绝权限设置不可逆,操作需谨慎
  3. Windows不同版本可能有差异,需测试验证
  4. 在实战中需结合其他痕迹清理技术
  5. 长期权限维持建议结合多种技术

通过以上方法创建的影子用户具有高度隐蔽性,可有效实现后渗透阶段的权限维持,但需注意操作风险和对系统可能造成的影响。

后渗透权限维持:隐藏用户(影子用户)的创建与使用 0x00 前言 在渗透测试过程中,获取目标主机权限后常需要通过远程桌面(RDP)查看有价值信息。但常规登录会留下痕迹,即使事后清理也存在风险。本文介绍通过创建隐藏用户(影子用户)实现权限维持的方法,最大程度减少登录痕迹。 0x01 隐藏用户创建与利用 基本概念 Windows系统中,用户名以"$"结尾的用户在 net user 命令中默认不显示,利用这一特性可创建隐藏用户。 利用条件 已获得管理员权限 已获取cmd shell等shell环境 操作步骤(以Windows10为例) 1. 创建隐藏用户 执行 net user 查看用户列表,admin$不会显示,但在"控制面板 > 管理工具 > 计算机管理 > 本地用户和组"中仍可见。 2. 修改注册表提高隐蔽性 打开注册表编辑器(regedit),定位到 HKEY_LOCAL_MACHINE\SAM\SAM 右键SAM项,选择"权限",将Administrators组权限设置为"完全控制" 展开SAM项,现在可以看到隐藏的子项: SAM\Domains\Account\Users SAM\Domains\Account\Names 找到Administrator用户和admin$用户的注册表项: 记录Administrator的F值(二进制数据) 找到admin$对应的项 将admin$的F值替换为Administrator的F值 导出Users和Names下admin$的注册表项(备份) 删除admin$用户: 重新导入之前备份的注册表项 完成以上操作后,admin$用户将: 不会在 net user 中显示 不会在计算机管理工具中显示 仍可使用密码通过RDP登录 具有管理员权限 3. 解决RDP登录问题 在RDP登录界面需要手动添加admin$用户: 点击"其他用户" 输入用户名"admin$"和密码 成功登录后拥有与Administrator相同的权限 0x02 细节拓展:RDP鉴权设置 关闭用户鉴权模式 0表示关闭鉴权 1表示开启鉴权(默认) 关闭安全层验证 0表示使用RDP协议验证(关闭验证) 1表示两端协商验证(默认) 2表示使用TLS协议验证 开启远程桌面连接 配置防火墙允许RDP: 通过注册表允许远程连接: 完成以上设置后,RDP将: 不需要输入正确凭证即可进入登录界面 直接显示目标系统的锁屏界面 0x03 思路拓展 方法一:利用Guest账户 开启Guest账户 修改其注册表F值为Administrator的F值 使用Guest账户登录,减少关注 方法二:预添加授权用户 在"选择用户"设置中预先添加所有已知用户,防止管理员过早发现影子用户 增强隐蔽性技巧 对注册表SAM项的System和Administrators权限设置"拒绝访问",防止管理员删除用户 注意:此操作不可逆,需谨慎 定期清理事件日志 使用非常规用户名,避免引起怀疑 注意事项 修改注册表前务必备份 拒绝权限设置不可逆,操作需谨慎 Windows不同版本可能有差异,需测试验证 在实战中需结合其他痕迹清理技术 长期权限维持建议结合多种技术 通过以上方法创建的影子用户具有高度隐蔽性,可有效实现后渗透阶段的权限维持,但需注意操作风险和对系统可能造成的影响。