本文讲的是如何在windows服务器上面创意一个影子账户,那什么叫影子账户呢?
在什么时候需要建立影子账户呢?
1、在渗透的时候,有时候拿到了服务器的管理员权限,而没有拿到服务器上面的MSSQL数据库sa密码的时候,如果你想拿到数据库里面的数据,但是有没有数据库密码,这个时候建立影子账户再合适不过了,只要建一个Administrator的影子账户,然后重新登录服务器,使用服务器身份验证就可以进入数据库,并且有非常大的权限。
2、影子账户也可以用来做权限维持,影子账户和普通的账户不一样,它是比较隐蔽的一个账号,在windows 2003上面是很难发现和清除的,在在windows 2008 以上的影子账户只能在注册表中看到。从这里可以看出,影子账户和普通账户的区别在于隐蔽性,普通的入侵提权,添加账号,一般的隐蔽性是在建立账号的时候添加$这样可以在net user中隐藏,但是在用户管理中是依然可以看的到的,所以是不安全的。不过影子账户也有一个缺点,在渗透的时候如果你使用影子账户登录服务器如果改动了什么东西,是很容易被管理员发现的。所以在用的时候也要注意隐藏自己。
在Windows 2008中建立影子账户
从上面的基本介绍可以知道,首先需要一个基本的账户,需要登录服务器,并且可以修改注册表。
1、首先使用net user *** *** /add 命令建立一个账户admin$:
2、在运行中输入 regedit 打开注册表
3、找到:HEKY_LOCAL_MACHINE\SAM\SAM\Domains\Account\User
ps如果打不开这里的目录就右键点击权限,然后把自己的用户添加进去,并且给予完全控制权限。
在这个Account下面有一些累死000001F4格式的目录,还有一个Names目录,在Names目录下面可以看到,所有的服务器用户都在里面,所以,这个注册表是用来管理用户的,所以我们可以想到,知道将Administrator的值复制到我们的admin$里面就可以让后admin$有和Administrator相同的权限了。
4、复制Administrator对应 的值到admin$
这里是最最关键的地方,在Names里面找到Administrator的用户并点击,可以在右侧看到类型的值是0x1f4的16进制数,这里正好和上面的000001F4目录对应如图:
我们新建的admin$也是一样,所以,通过Names里面的用户名可以找到相应的16进制目录。
我们先找到Administrator的000001F4,双击右侧的F,复制弹窗中的内容。
然后用相同的方法找到我们新建的admin$用户的对用的目录。然后将刚才复制的内容粘贴到admin$的F里面,然后点击确定。
5、导出admin$的注册表、删除admin$用户、导入注册表。
我们这里要找到Names里面的admin$和admin$对应的16进制目录,右键导出到桌面。
然后使用net user admin$ /del 删除admin$用户。
最后双击导出的两个注册表,添加进注册表里面,然后就ok了。
6、使用admin$用户登录服务器
这时候可以看到,所在的桌面其实就是Administrator的桌面,并且使用net user命令是看不到这个用户的存在的,在用户管理下面也是看不到的,只有在注册表中可以看到。
ok!Windows中影子账号的创建过程就是这样。
前几天用到了,在这里记录一下。