Windows 系统账户隐藏

2022-11-02 14:24:37 浏览数 (1)

0x001 系统账户隐藏

黑客入侵一台主机后,一般都想办法给自己留后门,其中使用最多的就是账户隐藏技术。账户隐藏技术可谓是最隐蔽的后门,一般用户很难发现系统中隐藏账户的存在,因此危害性很大,本文就对隐藏账户这种黑客常用的技术进行复现。

0x002 新建特殊账户

通过 net user 命令创建隐藏账号,并将其加入 administrators

代码语言:javascript复制
net user test$ 123456 /add
net localgroup administrators test$ /add

注:创建的用户名必须以 $ 符号结尾

添加后,该帐户可在一定条件下隐藏,输入net user无法获取信息

但是,在登录界面以及本地用户和组中却能够发现该帐户

0x003 赋予注册表权限

使用 WIN R 键,输入regedit 打开注册表,展开注册表 [HKEY_LOCAL_MACHINESAM|SAM]

默认情况下 SAM 这个项里没有任何内容,这是因为用户对它没有权限。

在这个项的右键菜单里,为 administrator 用户赋予完全控制权限。

然后重新启动注册表,即可看到如下效果

0x004 导出注册表

在 [SAMDomainsAccountUsersNames] 项里显示了当前系统存在的所有账户,选中 test ,在其右侧有一个(默认)选项,类型为 0x3eb 的键值。其中的 3eb 就是 test 账户 SID 的结尾,即 RID(这里使用十六进制表示)。另外,在 [SAMDomainsAccountUsers] 里还有一个以 3eb 结尾的子项。

这两个项里都是存放了用户 test$ 的信息。在这两个项上单击右键,执行 导出 命令,将这两个项的值分别导出成扩展名为 .reg 的注册表文件。

0x005 删除特殊账户

然后将 test$ 账户删除

代码语言:javascript复制
net user test$ /del

再次重启注册表,此时上述两个项都没了

0x006 导入 reg 文件

下面再通过命令行将刚才导出的两个注册表 .reg 文件进行重新导入

代码语言:javascript复制
regedit /s test.reg
regedit /s test1.reg

此时在注册表里就有了 test$ 账户信息

隐藏账户制做完成,控制面板不存在帐户 test$

通过 net user 无法列出该帐户

通关 WIN R 键,输入lusrmgr.msc 打开本地用户和组,查看用户,也无法列出该帐户

但可通过如下方式查看,这种方式的前提是必须已经清楚隐藏账户的名字,所以一般是管理员是不会发现的

使用这个隐藏账户可以登录系统,但缺点是仍然会产生用户配置文件,下面再对这个账户做进一步处理,以使之完全隐藏。

0x007 隐藏用户配置文件

展开 [SAMDomainsAccountUsersUsers] 注册表项中,找到 administrator 用户的 RID1f4,展开对应的 000001F4 项,其右侧有一个名为 F 的键值,这个键值就存放了用户的 SID

下面将这个键值的数据全部复制,并粘贴到 000003EB 项的 F 键值中,也就是将 administrator 用户的 SID 赋给了 test$

这样在操作系统内部,实际上就把 test 当做是 administrator,test 成了 administrator 的影子账户,与其使用同一个用户配置文件,test

0x008 删除隐藏用户

使用普通的账户删除命令是无法删除隐藏账户的,提示用户不属于此组

只能将删除注册表 [HKEY_LOCAL_MACHINESAMSAMDomainsAccountUsers]下对应帐户的键值(共有两处),也就是刚刚创建 test$ 所产生的那两个注册表文件

删除完这两个注册表项后,即可完全清除隐藏账户 test$

0x009 防御隐藏用户

  • 打开注册表的 [HKEY_LOCAL_MACHINE] 项,检查该项下的 [SAMSAMDomainsAccountUsers] 是否有可疑账户
  • 默认管理员权限无法查看注册表,需要分配权限或是提升至 System 权限
  • 隐藏帐户的登录记录,可通过查看日志获取

参考文章

  • https://www.cnblogs.com/wjvzbr/p/7906855.html

0 人点赞