电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 929 人浏览分享

学习进阶之路-权限维持】影子用户的创建与利用

[复制链接]
929 0
一、隐藏用户(影子用户)的创建与利用进行权限维持

------当我们拥有开某启3389的机子时,抛开隐匿性不说,肯定是在rdp上取证要比在执行shell上操作要来的方便而且可以
不用过多考虑杀软的拦截操作等。为了日后更好的控制取证这台服务器上的数据资料 这时候要考虑到后渗透的权限维持其中
之一与3389有关的就是创建影子用户来达到长期控制目标的技术。这也是一种较为简单的权维技术 可以在rdp上进行也可以
在cmdshell上操作。多学习总没错万一自己以后的某个shell掉了。在3389还开启的情况下我们仍能通过后门账户进行操作。

利用条件:①获得管理员权限;②得到cmdshell等shell环境。
系统:Windows10 x64 专业版

操作步骤(以Windows10 为例):

0×01、首先利用cmdshell添加一个用户名带$的用户如:admin$:123456
  1. 命令:net user admin$ 123456 /add          #添加用户admin$          net localgroup administ
  2. rators admin$ /add          #将admin$用户添加到管理员组administrators
复制代码

1.png

因为用户名后带有$,根据系统特性  在使用命令:net user 的时候。命令提示符中是看不到这个用户的

2.png

此时可以直接登录3389进行操作 但隐蔽性仍不足 可以在控制面板的管理工具中用户与用户
组查看到该用户的存在还需要进一步操作。

3.png
4.png

0×02、对注册表进行修改在命令提示符与管理工具中无法查看

当你利用shell创建了一个影子用户的时候,利用这个影子用户可以开启3389进行登录 在目标机上对
注册表进行数据操作,达到提高影子用户的隐蔽性。

利用 Win+R 打开“运行” 输入regedit 打开注册表 ,找到如下图的项表

5.png

选择 SAM 项 在工具栏上的 “编辑 > 权限” 中设置权限  将 Administrators组 的权
限设置为完全控制 后保存。

拒绝修改不可逆,出错会造成大问题,别点到完全操控的拒绝项,该操作不可逆 利用这个思路 我们可以
在修改注册表后再对System与Administrators权限进行拒绝访问,可防止管理员删除这个用户。


6.png

设置好后,回到注册表主页面 ,发现SAM项下出现了隐藏的子项找到 SAM >
Domains > Account > Users 和 Names

7.png

分别找到 Administrator用户 和admin$用户 的两个项

Administrator用户的F值(SID):

8.png

9.png

然后将F表内的二进制数据复制下来,找到 Users 下 用户admin$的F值进行编辑粘贴修改成Administrator的值保存。
admin$用户的users项与names项下的二进制数据值:

10.png

将Users项下的000003E9项(admin$用户的SID二进制数据值)下的值替换成Administrator用户的值替换
后导出 Names项 下的 admin$项 与 000003E9项(右键选择项进行导出) 。

11.png

导出后:

12.png

利用cmdshell(管理员权限)将admin$删除,删除后发现注册表中的admin$用户相关项已经消失这时候我们
导入已经备份好的项与数值(导出后双击进行导入或者在注册表中导入)
  1. 命令:net user admin$ /del
复制代码

13.png

注册表导入:

14.png

导入成功:

15.png

导入成功后回到管理工具中的查看用户与用户组的页面 发现用户组和用户已经没有admin$这个用户的存在了
但实则上我们仍可以用这个用户的密码进行登录RDP。而且可以相当于Administrator管理员进行登录操作。

16.png

开启3389进行登录,发现问题:

17.png

发现用户未授权 这时候又多了一个利用条件,要在右下的选择用户下 添加admin$用户
的用户名 才能正常登录3389。

18.png

19.png

修改后成功登录:

20.png

扩展:

那我们在实战中是以远程登录界面为基础的。这时,我们又要拓展另一个权限。userauthentication
权限 用于远程连接的身份验证,之前的文章也有提到过现在重新学习一下。

我们以图片直观地查看该权限开启与关闭的区别:

开启状态:

dd.png

关闭状态:

ddd.png

重点!!!:

鉴权开启时,我们在不知道账号密码的情况下无法登录到远程界面 但是鉴权关闭之后
无论我们输入的账号和密码是否正确。都可以进入远程界面窗口。

如何关闭鉴权模式,我们采用如下命令:
  1. REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStati
  2. ons\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0
复制代码

0代表关闭,1代表开启

关闭鉴权模式还不够,还需要关闭securitylayer安全层验证 :

具体指:0 就是连接前使用 rdp 协议进行身份验证,rdp 即远程桌面连接可以简单理解为就是关闭验证
1 是指在连接前两端协商来进行身份验证。这个是默认值。2 就是使用 tls 协议来进行。

将其参数设置为0,命令如下:
  1. REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStatio
  2. ns\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 0
复制代码

在笔者测试中,两个参数同时关闭(也存在关掉一个参数而不用验证的情况但最好还是两个参数都关闭)

dddd.png

以上操作的基础是目标机开启了远程桌面连接,所以我们这里也记录下如何开启远程桌面连接
首先是配置一下防火墙。设置为允许远程桌面连接。命令行运行以下命令:
  1. netsh advfirewall firewall add rule name="Remote Desktop" proto
  2. col=TCP dir=in localport=3389 action=allow
复制代码

netsh 是 windows 的网络配置命令,advfirewall firewall 意思是防火墙高级设置add rule 是添加一条
规则name 指定规则名称,protocol 指定协议,dir 指定是出战还是入站,localport 指定端口,action
指定动作 allow 允许。

设置后,我们再通过注册表来设置一下允许远程桌面连接,命令行运行以下命令:
  1. REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\TerminalSe
  2. rver" /v fDenyTSConnections /t REG_DWORD /D 0 /f
复制代码

不用凭证验证进入到登录页面:

ddd (1).png

思路扩展:

-----在这里展示的是代表新用户的影子用户的创建利用,如果遇上有意识的管理员极有可能会在注册表中
被发现如果设置不可逆性的权限(查看访问设置完全控制的拒绝选项)可以暴力有效解决这个账号被删除
的问题 但后面也会引发更大的问题。

利用新的影子用户登录3389会生成数据容易被发现而且还需要在3389上添加条件才能进
行正常登录(Windows10下是如此情况)。

此处可以扩展两种方法:

①所以说这里我们可以开启来宾账户Guest在注册表对其F值进行更换开启Guest账户没有新
增其他账户的记录我们就可以登录而且减少了一些不必要的关注。
②在添加授权用户那个选项中,将所有已知的用户进行添加防止管理员过早
发现创建的影子用户的存在。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.