Windows系统的帐户隐藏
0x00.前言
之前学习过通过帐户克隆实现隐藏帐户的利用技巧,只是每次使用隐藏账户登录时会挤掉正在登陆的用户,下一期我会详细解决掉这个问题,这期先做个笔记,水一篇 :)
0x01. 简介
主介绍以下内容:
- 帐户隐藏的方法
- 编写脚本实现思路
- 结合远程桌面多用户登录的利用思路
0x02. 账户隐藏的方法
测试系统:Win7_64位
1. 对注册表赋予权限(regedit)
默认注册表HKEY_LOCAL_MACHINE\SAM\SAM\
只有system权限才能修改
现在需要为其添加管理员权限
右键-权限-选中Administrators,允许完全控制
如下图
重新启动注册表regedit.exe,获得对该键值的修改权限
2. 新建特殊账户
1 | net user kacker$ 123456 /add |
结尾使用$符号来对账户进行隐藏,即在net user命令下无法查看到该用户
但是,在控制面板能够发现该帐户
3. 导出注册表
在注册表HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names
下找到新建的帐户hacker$
获取默认类型为0x3e9
将注册表HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\hacker$
导出为1.reg
在注册表下能够找到对应类型名称的注册表项HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000003E9
右键将该键导出为2.reg
默认情况下,管理员帐户Administrator对应的注册表键值为HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4
同样,右键将该键导出为3.reg
将注册表项HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000003E9
下键F的值替换为HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4
下键F的值,即2.reg中键F的值替换成3.reg中键F的值
4. 命令行删除特殊用户
1 | net user hacker$ /del |
5. 导入reg文件
1 | regedit /s 1.reg |
隐藏账户制做完成,控制面板不存在帐户test$
通过net user无法列出该帐户
计算机管理-本地用户和组-用户也无法列出该帐户
但可通过如下方式查看:
1 | net user hacker$ |
无法通过net user test$ /del
删除该用户,提示用户不属于此组
删除方法:
删除注册表HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\
下对应帐户的键值(共有两处)
注:
工具HideAdmin能自动实现以上的创建和删除操作
0x03. 总结
该方法的优点:通过克隆的方式能够继承原帐户的权限
在利用上存在以下需要注意的问题:
1、复制管理员帐户Administrator
需要注意管理员帐户是否被禁用,如果被禁用,那么克隆出的隐藏帐户也是被禁用状态
2、复制已有帐户
在3389远程登录的利用上存在相同帐户的冲突关系
通过cmd开启本机的3389远程登录功能:
1 | REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f |
利用以上方法,克隆帐户a的权限,建立隐藏帐户aaa$
如果系统当前登录帐号为a,那么使用隐藏帐户aaa$登录的话,会系统被识别为帐户a,导致帐户a下线
3、新建帐户再复制
进一步,大胆的思考
新建管理员帐户b,克隆帐户b,建立隐藏账户bbb$
删除管理员帐户b,隐藏账户bbb$仍然有效
4、原帐户的维持
再进一步
克隆帐户a的权限,建立隐藏帐户aaa$
修改帐户a的密码,隐藏帐户aaa$仍然有效
0x04. 防御
针对隐藏帐户的利用,查看注册表HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\
即可
当然,默认管理员权限无法查看,需要分配权限或是提升至Sytem权限
隐藏帐户的登录记录,可通过查看日志获取