远景论坛
携手远景-共助世轩爱心义卖远景论坛积分规则、等级制度说明远景服务 - 免费开通您的远景博客远景论坛 - 美化区Q&A
移动主站 电信镜像 网通镜像 展望Windows7 关注Win7X.Com免费获取各论坛邀请码 抢注UIDiPhone 权威中文论坛-WeiPhone
注册@pcbeta.com邮箱 邮箱登陆看电影,就用快乐影音!远景视频资讯!邀请码免费拿远景招募首席美工设计师 详情请进
发新话题
打印

[推荐] 【ITECN技术专栏】之 Windows Vista拒绝罢工系列3─忘记管理员密码?没问题!

本主题由 Tonyu 于 2008-6-26 17:35 分类

【ITECN技术专栏】之 Windows Vista拒绝罢工系列3─忘记管理员密码?没问题!

原文摘自ITECN Blog,作者:盆盆<Microsoft MVP>
原文地址: 点击查看
ITECN Blog是由近40位微软MVP和MCT、还有微软员工组成,旨在宣传微软IT Pro技术

现在,Windows Vista用户再也不需要借助ERD Commander、O&O BlueCon或者Offline NT Password & Registry Editor等“外援”的帮助,只需一张Windows Vista的安装光盘,就可以“自力更生”重设管理员帐户密码。

1.一个工具包轻松搞定管理员密码

由于本文所涉及的原理和操作相对比较复杂,为了照顾初学者朋友,笔者特地制作了一个工具包,只有5KB大小(请单击这里,下载工具包)。

(1) 首先确保您的Windows Vista安装在C盘,如果安装在别的分区,请不要使用该工具包,而直接查看本文的后面部分。
(2) 请将本工具包解压缩到软盘,然后将这张软盘插入故障计算机。
(3) 利用Windows Vista安装光盘引导系统进入“系统恢复选项”,并单击其上的“命令提示符”,请参考Windows Vista拒绝罢工系列1─芝麻开门
(4) 在命令提示符下运行“A:\StartMe”,如果命令结果没有报错,连续两次重启计算机到登录界面。
(5) 第二次启动到登录界面时,点击Test帐户名即可登录,然后就可以重设原来帐户的密码了。
(6) 打开注册表编辑器,删除以下注册表子键即可:
HKLM\SYSTEM\CurrentControlSet\Services\AddUser

2.原理描述

这个工具包里包含两个批处理文件和一个srvany.exe程序,作用如下:
• AddUser.bat批处理文件:目的是在Windows Vista系统里创建一个管理员帐户Test,而且密码是空。
• StartMe.bat批处理文件:目的是把AddUser.bat文件安装为一个服务,该服务是以LocalSystem身份启动的,这样在开机登录之前,就已经执行AddUser.bat,以便新建Test帐户。
• srvany.exe程序:取自Windows Server 2003 Resource Kit Tools工具包,可以在微软官方网站上自由下载。
看到这里,相信很多朋友已经明白,原来这个方法取自笔者以前写过的一篇文章另类方法破解管理员密码。但是还是有区别的,因为Windows Vista系统不支持直接把批处理文件安装为服务,否则服务会启动失败。所以必须借助srvany.exe程序和SCM(服务控制管理器)打交道,才能确保成功。
AddUser.bat批处理文件的内容如下,这和另类方法破解管理员密码没有区别,此处不再赘述。
引用:
net user test /add
net localgroup administrators test /add
StartMe.bat批处理文件的内容如下:
引用:
copy a:\srvany.exe c:\
copy a:\adduser.bat c:\
reg load HKLM\AddUser_SYSTEM C:\WINDOWS\system32\config\SYSTEM
c:\windows\system32\sc create AddUser Type= own Start= auto Binpath= C:\srvany.exe Obj= LocalSystem
reg add HKLM\SYSTEM\CurrentControlSet\services\AddUser\Parameters /v Application /t REG_SZ /d c:\AddUser.bat
reg copy HKLM\SYSTEM\CurrentControlSet\services\AddUser HKLM\AddUser_SYSTEM\ControlSet001\services\AddUser /s /f
reg unload HKLM\AddUser_SYSTEM
(1) 最上面的两行copy命令没有什么可说的,就是为了把srvany.exe和adduser.bat复制到C盘根目录下。

(2) 而 “reg load HKLM\AddUser_SYSTEM C:\WINDOWS\system32\config\SYSTEM”命令,其目的是为了把C:\WINDOWS\system32\config\SYSTEM配置单元文件加载到注册表的HKLM\AddUser_SYSTEM分支。
提示
为什么要加载C:\WINDOWS\system32\config\SYSTEM配置单元?
原来Windows XP安装光盘的“系统恢复选项”,实际上是一个Windows PE环境。该Windows PE在物理内存里划分出一个32MB的空间作为虚拟的内存磁盘(RamDisk),盘符是X:。该Windows PE加载的注册表,实际上对应于X:\WINDOWS\system32\config目录下的配置单元文件。这可以用Process Explorer来验证,只需查看SYSTEM进程的句柄,即可发现所打开的注册表配置单元位于内存磁盘(RamDisk),如图1所示。


所以,必须把Windows Vista所用的注册表配置单元加载进来,才能最终生效。如果Windows Vista安装在别的分区,则需要把“reg load”命令中的C:改成合适的盘符。

(3) 对于这句命令“c:\windows\system32\sc create AddUser Type= own Start= auto Binpath= C:\srvany.exe Obj= LocalSystem”,其目的是借助系统自带的SC命令在系统中新建一个AddUser服务,其可执行文件指向srvany.exe文件,运行身份是LocalSystem。
提示
由于“系统恢复选项”的Windows PE环境,其Path环境变量并不包含Windows Vista的安装目录,所以必须提供SC命令所在的详细路径(此处假设Windows Vista安装在C盘,请根据实际情况修改该命令)。SC命令的实质是在HKLM\SYSTEM\CurrentControlSet\services下添加AddUser服务的子键。

(4) “reg add HKLM\SYSTEM\CurrentControlSet\services\AddUser\Parameters /v Application /t REG_SZ /d c:\AddUser.bat”这个命令的作用是在服务AddUser的注册表子键下添加相应的参数,让SCM(服务控制器)知道实际上要启动c:\AddUser.bat批处理脚本文件。
注意
以上两条命令对注册表的修改,实际上是作用在X:\WINDOWS\system32\config\SYSTEM配置单元文件上,由于该配置单元保存在内存虚拟磁盘上,而非真正保存在Windows Vista所用的配置单元文件。所以我们需要把注册表键值复制到C:\WINDOWS\system32\config\SYSTEM配置单元(现在已经加载到HKLM\AddUser_SYSTEM注册表分支)。

(5) “reg copy HKLM\SYSTEM\CurrentControlSet\services\AddUser HKLM\AddUser_SYSTEM\ControlSet001\services\AddUser /s /f”命令的作用就是为了复制AddUser的注册表键值到真正需要的地方。

(6) “reg unload HKLM\AddUser_SYSTEM”命令则是卸载C:\WINDOWS\system32\config\SYSTEM配置单元。

运行StartMe.bat脚本后,系统就会自动添加一个AddUser服务,该服务会在登录之前在系统中创建一个Test管理员帐户,以便我们顺利地重设管理员密码。

3.写在后面

这个方法虽然简单,但是当初测试时,笔者却走了不少弯路,这里简单地加以总结:

(1) 为什么我们可以在“系统恢复选项”下为所欲为?
在Windows Vista下时间长了,习惯了UAC环境,每运行一个管理任务,都会习惯等待确认权限提升对话框。但是在“系统恢复选项”下,我们可以随意通过命令提示符启动大部分应用程序,包括记事本、注册表编辑器等,除了Windows Shell程序不能运行外,几乎绝大多数的应用程序和脚本都能直接顺利运行。这是为什么?
原来在“系统恢复选项”下,我们是以LocalSystem身份运行的,难怪可以至高无上的权限对系统进行配置!这里可以用“Whoami /all”命令验证一下,如下图所示。


(2) 为什么不直接运行net user和net localgroup命令?
看了前面部分后,您可能一直存在一个疑问,为什么不直接在命令提示符窗口运行net user和net localgroup命令,反正我们现在是LocalSystem权限,而非得绕那么大一个圈子,借助AddUser脚本在系统中添加一个服务,达到“曲线救国”的目的?
原来正如前面所述,“系统恢复选项”的Windows PE环境,所加载的SAM配置单元文件位于X:\WINDOWS\system32\config目录下,而非C:\WINDOWS\system32\config目录下。所以net命令的结果保存在X:\WINDOWS\system32\config\SAM配置文件里,没有真正生效!
就算加载C:\WINDOWS\system32\config目录下的SAM配置单元,并且采用帐户克隆的方法复制注册表的F和V键值,还是无法生效。

(3) 为什么不把X:\WINDOWS\system32\config\下的SAM文件直接复制到C:\WINDOWS\system32\config目录下?
这实际上类似于在Windows 2000/XP下把C:\WINDOWS\repair目录下的SAM副本复制到C:\WINDOWS\system32\config目录下。结果会具有两个空密码的帐户Administrator和Guest。
然而这种方法并不推荐,因为通常并不能仅仅拷贝SAM配置单元文件,还必须同步拷贝SYSTEM、SOFTWARE等其他配置单元文件,这样会可能导致很多系统和软硬件配置信息丢失,损失更大。

[ 本帖最后由 gonghao 于 2006-7-18 10:02 编辑 ]
本帖最近评分记录
删除SAM文件 可以吗?

[ 本帖最后由 Kit 于 2006-7-18 18:25 编辑 ]
席地而坐~~
MVP就是厉害,我没有怎么看得懂哦
呵呵,高深的东东,很是值得研究一下!

继续努力研究……
引用:
原帖由 gonghao 于 2006-7-15 22:37 发表
呵呵,高深的东东,很是值得研究一下!

继续努力研究……
其实没啥高深的,就是为了在Windows Vista里新增一个服务,大家知道服务可以在系统登录之前运行,而且能够以System帐户身份运行。该服务可以运行一个我们定制的脚本,在系统登录之前就新建一个管理员帐户。

唯一麻烦的是Windows Vista自带的Windows PE 2.0,加载的是一个特殊版本的注册表(位于32MB的ramdisk分区,盘符为X:),所以必须挂载Vista的注册表配置单元,再作修改。

提示 该PE.2.0对应于Windows Vista安装光盘\source目录下的boot.wim映像,实际上Vista安装时,就是利用这个映像版的PE加载、并还原操作系统映像(install.wim)。

对于end user来说,不需要理解具体原理,可以直接下载我做好的一个压缩工具包,解压缩到软盘或者U盘,进入系统恢复界面后,直接运行一下里面的startme.bat脚本即可。

遗忘管理员密码是经常有的事情,这里提醒大家注意,如果加密EFS文件,一定要导出EFS加密证书(和私钥),因为一旦帐户密码被重设,就无法再访问加密文件。

还有一点就是,如果启用了Bitlocker全卷加密,那么无法利用这种方法对管理员密码进行破解,BitLocker把所有的内容都加密了,包括SAM配置单元,所以彻底无法破解。这也是要特别注意的。

该工具包的缺点是目前还只能针对Vista安装在C盘里的情况,我将会重新编写这个脚本,使得可以适合更复杂的环境。

[ 本帖最后由 盆盆 于 2006-7-18 09:47 编辑 ]
附件: 您所在的用户组无法下载或查看附件

ITECN博客站长:http://blogs.itecn.net
Microsoft MVP/Micorsoft MCT
太高深了,看不大懂,但最简单易行的方法就是千万千万别忘记管理员密码。
解释的太详细了。。。。。。。。。。。。不想看了!!!~头疼
The china one and only madonna of Qzone!
Hot Top↑嘉年華 [http://macross1985.qzone.qq.com]
真不知道这到底使好还是不好
关键是现在还有几台计算机有软盘!
太长了!  头晕了哦!
不是想逃避多变的生活,只是因为,安全,可以安心!
引用:
原帖由 yelinli 于 2006-9-13 17:28 发表
关键是现在还有几台计算机有软盘!
无需拘泥于文章里的阐述,你完全可以使用U盘等外部存储。

ITECN博客站长:http://blogs.itecn.net
Microsoft MVP/Micorsoft MCT
VISTA知道XP的漏洞不封才怪的啦
下载附件还要撒子权限哈?
阁下绝对高人~赞
xp的都不懂,懂这个,难
发新话题

远景论坛所有文章为会员所发布,会员拥有该内容的所有权及责任,转载时请注明出处!
如有侵犯您的权利,请立即通知我们,我们将在第一时间给予更改或删除.