首先提议:
如果你是一个很容易遗忘的人,那么一定不要忘记在第一次设置密码的同时创建一张可以恢复Windows XP中的账户密码的启动盘,它可以让你免去格式化硬盘的烦恼。
从“控制面板”中找到“用户账户”项,选中自己的账户进入如图所示的控制界面,我们可以看到左侧任务列表中有一项“阻止一个已忘记的密码”,点击后便可打开“忘记密码向导”,向导会提示插入一张格式化过的空白磁盘,操作过程中会让你输入该账户所使用的密码,很快便可以创建一张密码重设盘。
以后,当我们忘记了账户密码的时候,在没有使用“欢迎屏幕”登录方式的情况下登录到Windows XP后,按下“Ctrl + Alt + Del”组合键,出现“Windows 安全”窗口,点击选项中“更改密码”按钮,出现更改密码窗口。这个窗口中,将当前用户的密码备份,点击左下角“备份”按钮,激活“忘记密码向导”,按照提示创建密码重设盘。
如果在Windows XP的登录窗口输入了错误的密码,就会弹出“登录失败”窗口,如果你的确想不起来自己的密码是什么时,可点击“重设”按钮,启动密码重设向导,通过刚才所创建的密码重设盘,就可以用这张密码重设盘更改密码并启动系统。重新设定密码,登录Windows XP。
“密码重设盘”的创建,含有一定的危险性,因为任何人都可以使用这一张“密码重设盘”来登录Windows XP,都可以以该用户的名义进入用户帐户,操作真正用户所能操作的一切,所以必须将“密码重设盘”保存在适当的地方,以防丢失或失泄密。
---------------------------------------
方法1——利用“administrator”(此方法适用于管理员用户名不是“administrator”的情况)
我们知道在安装Windows XP过程中,首先是以“administrator”默认登录,然后会要求创建一个新账户,以进入Windows XP时使用此新建账户登录,而且在Windows XP的登录界面中也只会出现创建的这个用户账号,不会出现“administrator”,但实际上该“administrator”账号还是存在的,并且密码为空。
当我们了解了这一点以后,假如忘记了登录密码的话,在登录界面上,按住Ctrl+Alt键,再按住Del键二次,即可出现经典的登录画面,此时在用户名处键入“administrator”,密码为空进入,然后再修改“zhangbp”的口令即可。
---------------------------------------------
方法2——删除SAM文件(注意,此法只适用于WIN2000)
Windows NT/2000/XP中对用户帐户的安全管理使用了安全帐号管理器(Security Account Manager , SAM)的机制,安全帐号管理器对帐号的管理是通过安全标识进行的,安全标识在帐号创建时就同时创建,一旦帐号被删除,安全标识也同时被删。安全标识是唯一的,即使是相同的用户名,在每次创建时获得的安全标识完全不同。因此,一旦某个帐号被用户名重建帐号,也会被赋予不同的安全标识,不会保留原来的权限。安全帐号管理器的具体表现就是%SystemRoot%\system32\config\sam文件。SAM文件是Windows NT/2000/XP的用户帐户数据库,所有用户的登录名以及口令等相关信息都会保存在这个文件中。
知道了这些,我们的解决办法也产生了:删除SAM文件,启动系统,它会重建一个干净清白的SAM,里面自然没有密码了。
不过,这么简单的方法在XP是不适用的,可能微软以此为BUG,做了限制……所以现在在XP系统下,即使你删除了SAM,还是不能删除密码,反而会使系统启动初始化出错,从而进入死循环而不能进系统!!
---------------------------------------------
方法3——从SAM文件中找密码(前提……会使用DOS基本命令就行)
在系统启动前,插入启动盘,进入:C:\WINNT\System3\Config\ 用COPY命令将SAM文件复制到软盘上。拿到另一台机子读取。这里需要的工具是LC4,运行LC4,打开并新建一个任务,然后依次击“IMPORT→Import from SAM file”,打开已待破解的SAM文件,此时LC4会自动分析此文件,并显示出文件中的用户名;之后点击“Session→Begin Audit”,即可开始破解密码。如果密码不是很复杂的话,很短的时间内就会得到结果。
不过,如果密码比较复杂的话,需要时间会很长,这时我们就需要用下面的方法了。:(
---------------------------------------------
方法4——用其他SAM文件覆盖(前提是你可以得到另外一台电脑的SAM文件和它的密码……个人觉得是最为可行的办法)
1——如上所说,SAM文件保存着登录名以及口令,那么我们只要替换SAM文件就是替换登录名以及口令了。不过,这个替换用的SAM文件的“产地”硬盘分区格式要和你的系统一样(看是FAT32还是NTFS,你自己确认)。最好这个“产地”的系统没有设密码,安全方面设置没动过(实际上很大部分的个人电脑都是这样),当然,比较保险的方式是把XP的[Win NT\System 32\Config\]下的所有文件覆盖到[C:\Win NT\System 32\Config\]目录中(假设你的XP安装在默认分区C:),
2——如果得不到别人的帮助(我是说“万一”),你可以在别的分区上在安装一个XP系统,硬盘分区格式要和原来的一样,并且请你注意一定不要和原来的XP安装在同一分区!在开始之前,一定要事先备份引导区MBR,备份MBR的方法有很多,使用工具软件,如杀毒软件KV3000等。装完后用Administrator登陆,现在你对原来的XP就有绝对的写权限了,你可以把原来的SAM考下来,用10PHTCRACK得到原来的密码。也可以把新安装的XP的Win NT\System 32\Config\下的所有文件覆盖到C:\Win NT\System 32\Config\目录中(架设原来的XP安装在这里),然后用KV3000恢复以前悲愤的主引导区MBR,现在你就可以用Administrator身份登陆XP了。
[2号方案我自己都觉得麻烦,还是1号:叫别人帮忙比较好……]
【另外,据说C:\windows\repair 目录下的SAM是原始版本的,可以用它来覆盖 system32下的这个 SAM,这样就可以删除现在的密码,而恢复到刚开始安装系统时的密码了。如果这个密码为空,岂不是…… 】
---------------------------------------------
方法5——使用Win 2000安装光盘引导修复系统(前提……很明显吧?就是你要有一张Win 2000安装光盘)
使用Win 2000安装光盘启动电脑,在Wndows2000安装选择界面选择修复Windows 2000(按R键);,然后选择使用故障控制台修复(按C键),系统会扫描现有的Window2000/XP版本。一般只有一个操作系统,所以只列出了一个登录选择(l:C:\Windows)。从键盘上按l,然后回车,这个时候,Window XP并没有要求输人管理员密码,而是直接登录进入了故障恢复控制台模式(如果使用的是Windows XP安装光盘启动的,那是要求输人管理员密码的。这里指的管理员是指系统内建的Administraor账户)熟悉Windows的朋友都知道,故障恢复控制台里面可以进行任何系统级别的操作,例如:复制、移动、删除文件,启动、停止服务,甚至格式化、重新分区等破坏性操作。
测试使用光盘:集成SP3的Windows 2000 Proessional 简体中文版。
测试通过的系统:Windows XP Proessional,打SPI补丁的Windows XP (FAT32和NTFS文件系统都一样)
[需要注意的是,由于各种原因,市面上的一些Windows 2000安装光盘不能够显现故障控制台登录选项,所以也无法利用这个漏洞。同时,由于故障控制台模式本身的限制,也无法从网络上利用这个漏洞,换句话说,这个漏洞仅限于单机。]
---------------------------------------------
方法6——利用NET命令(有两个必要前提才行:按装WINDOWS XP的分区必须采用FAT 32文件小系统,用户名中没有汉字。)
我们知道在Windows XP中提供了“net user”命令,该命令可以添加、修改用户账户信息,其语法格式为:
net user [UserName [Password | *] [options]] [/domain]
net user [UserName {Password | *} /add [options] [/domain]
net user [UserName [/delete] [/domain]]
每个参数的具体含义在Windows XP帮助中已做了详细的说明,在此笔者就不多阐述了。好了,我们现在以恢复本地用户“zhangbq”口令为例,来说明解决忘记登录密码的步骤:
1、重新启动计算机,在启动画面出现后马上按下F8键,选择“带命令行的安全模式”。
2、运行过程结束时,系统列出了系统超级用户“administrator”和本地用户“zhangbq”的选择菜单,鼠标单击“administrator”,进入命令行模式。
3、键入命令:“net user zhangbq 123456 /add”,强制将“zhangbq”用户的口令更改为“123456”。若想在此添加一新用户(如:用户名为abcdef,口令为123456)的话,请键入“net user abcdef 123456 /add”,添加后可用“net localgroup administrators abcdef /add”命令将用户提升为系统管理组“administrators”的用户,并使其具有超级权限。
4、重新启动计算机,选择正常模式下运行,就可以用更改后的口令“123456”登录“zhangbq”用户了。另外,zhangbq 进入 登入後在〔控制台〕→〔使用者帐户〕→选忘记密码的用户,然後选〔移除密码〕後〔等出〕 在登入画面中选原来的用户便可不需密码情况下等入 (因已移除了) 删除刚才新增的用户,在〔控制台〕→〔使用者帐户〕→选〔alanhkg888〕,然後选〔移除帐户〕便可
[但是有人提出:在实验后得知——在安全模式命令符下新建的用户不能进入正常模式(此结论暂不确认)]
方法7——用破解密码软件(前提是你要有标准的系统安装光盘——不是那种“集成”多个系统的D版盘)
1——使用PASSWARE KIT 5.0中的Windows KEY 5.0,用于恢复系统管理员的密码,运行后生成3个文件:TXTSETUP.OEM、WINKEY.SYS和WINKEY.INF,3个文件共50KB。把这3个文件放在任何软盘中,然后使用XP安装光盘启动电脑,启动过程中按F6键让系统采用第三方驱动程序。此时,正是我们切入的最好时机,放入该软盘就会自动跳到Windows KEY的界面。他会强行把ADMINISTRATOR的密码换成12345,如此一来何愁大事不成?嗬嗬!当你重新启动以后,你会被要求再次修改你的密码。
2——使用OFFICE NT PASSWORD & REGISTRY EDITOR.用该软件可以制作LINUX启动盘,这个启动盘可以访问NTFS文件系统,因此可以很好地支持Windows 2000/XP。使用该软盘中的一个运行在LINUX下的工具NTPASSWD就可以解决问题,并且可以读取注册表并重写账号。使用方法很简单,只需根据其启动后的提示一步一步做就可以了。在此,建议你使用快速模式,这样会列出用户供你选择修改那个用户密码。默认选择ADMIN组用户,自动找到把ADMINISTRATOR的名字换掉的用户,十分方便。
3——ERD.Commander2003为Windows的管理员和最终用户,面对随时可能崩溃的系统,可能每人都会有自己的一套工具,用来挽救数据和修复系统。ERD Commander这可以算是Winternals Administrators' Pak工具中最强大的组件了,其中一个引人注目的功能就是修改密码,Windows NT/2000/XP/2003 系统中任何一个用户的密码都可以在不知道原先密码的情况下被ERD修改掉。
---------------------------------------------
方法8——修改屏幕保护程序(前提是你有设置屏保)
使用NTFSDOS这个可以从DOS下写NTFS分区的工具。用该软件制作一个DOS启动盘,然后到C:\Win NT\System 32下将屏幕保护程序Logon.Scr改名,接着拷贝Command.com到C:\Win NT\System 32下(WIN2000下可以用CMD.EXE),并将该文件改名为Logon.Scr。这样启动机器15分钟以后,本该出现的屏幕保护现在变成了命令行模式,而且是具有ADMINISTRATOR权限的,通过他就可以修改密码或者添加新的管理员账号了。改完以后不要忘了把屏幕保护程序的名字改回去。---------------------------------------------
方法9——使用启动脚本(前提……会使用DOS基本命令就行)
Windows XP启动脚本(startup scripts)是计算机在登录屏幕出现之前运行的批处理文件,它的功能类似于Windows 9×和DOS中的自动执行批处理文件autoexec.bat。利用这个特性,可以编写一个批处理文件重新设置用户密码,并将它加入启动脚本中,这样就达到了目的。以下是具体步骤(假设系统目录为C:\Windows)。
1.使用Windows98启动盘启动电脑。在DOS下新建一个文件叫a.bat,内容只需要一条“net user”命令即可:“Net user rwd 12345678”。这条命令的意思是将用户rwd的密码设置为“12345678”(有关Net命令的用法,可参考Windows帮助)。然后将文件a.bat保存到“C:\windows\system32\GroupPolicy\Machine\Scripts\Startup”下。
2.编写一个启动/关机脚本配置文件scripts.ini,这个文件名是固定的,不能改变。内容如下:
[Startup]
0CmdLine=a.bat
0Parameters=
3.将文件scripts.ini保存到“C:\winnt\system32\GroupPolicy\Machine\Scripts”下。scripts.ini保存着计算机启动/关机脚本的设置数据,文件内容通常包含两个数据段:[Startup]和[Shutdown]。[Startup]数据段下是启动脚本配置,[Shutdown]数据段下是关机脚本配置。每个脚本条目被分成脚本名和脚本参数两部分存储,脚本名保存在XCmdLine关键字下,参数保存在XParameters关键字下,这里的X表示从0开始的脚本序号,以区别多个脚本条目和标志各脚本条目的运行顺序。
4.取出Windows 98启动盘,重新启动电脑,等待启动脚本运行。启动脚本运行结束后用户rwd的密码就被恢复为“12345678”。
5.登录成功后删除上述步骤建立的两个文件。
[实际上你可以借用另一台电脑用“记事本”编写a.bat和scripts.ini,再用软盘通过DOS复制到自己的电脑上]
说明:
以上脚本使用的是FAT32文件系统,如果使用NTFS文件系统,可以将这块硬盘以从盘模式挂接到其它能识别NTFS文件系统(如Windows 2000或Windows XP)的计算机上进行上述操作。本方法可以恢复管理员(Administrator)的密码。对Windows2000系统中本地计算机用户和域用户的密码恢复同样有效。
------------------------------------------------------------------------------------------------------
个人瞎猜的方法
==============
方法10——利用输入法漏洞(前提是进入系统看见的不是欢迎界面,而是一般的系统网络用户登陆窗口)
[其奥义取自网管软件登陆的破解,没有在系统里实验过。不过倒也没有后遗症,你们姑且试试]
按ctrl+shift打开拼音输入法,出现拼音的状态条,在状态条上点击右键,就会出现一个下拉菜单,选择其中的定义词组(放心,就算系统限制右键,在这也不管用)然后选择文件菜单里面的保存,就会调出保存对话框,然后随便选择一个文件夹,点击右键,选择资源管理器,打开,进去添加个超级用户,一切就OK啦!
(另外也可以用下拉菜单里的[帮助],打开CHM帮助文件,[选项]-[Internet选项]-[Internet临时文件夹]-[设置]-[查看文件],同样可以进文件夹)
另外也可以利用输入法BUG,这个方法很简单:就是调出输入法,调到智能ABC,输入VV。然后按左方向键,光标到字母最前面,按DEL删掉,按空格,这时系统提示出错,登陆窗口就被关掉了。进去后……要怎么做,不用多说吧?
[这方法的初衷无非是先进入系统,再更改添加用户。大不了放弃原先的管理员用户,自己另建一个使用……]
---------------------------------------------
方法11——使用注册表(前提……你敢修改注册表)
[借鉴于“修改注册表自动登陆系统”]
“修改注册表自动登陆系统”的内容如下:
【单击“开始 运行”,在输入框中键入“regedit”打开注册表编辑器,然后在注册表编辑器左方控制台中依次单击展开“HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/Current Version/Winlogon”,再选择“编辑 添加 字符串值”,在数值名称中键入“AutoAdminLogon”,然后在窗口中的空白位置上点一下,再双击刚新建的字符串“AutoAdminLogon”,在弹出的“编辑字符串”对话框中输入“1”设置系统允许自动登录。再重复以上的操作,创建一个名为“DefaultUserName”的字符串值,编辑字符串为您准备用于自动登录的账户名称。再新创建一个名为“Defaultpassword”的字符串值,并编辑字符串为您准备用于自动登录的用户账户密码,编辑完并检查无误后,关闭注册表编辑器并重新启动电脑即可自动登录。注意,如果已有“DefaultUserName”,可以不必重新创建,直接更改原有字符串值。如果您的系统工作在局域网环境下,并且在登录到系统上时需要登录域服务器,那么您还需要再添加一个“DefaultDomainName”并编辑字符串为您登录的域名称。】
而我在修改注册表时,发现里面本来就有“Defaultpassword”的字符串,(这是我的个人情况),当然,我原来就没有设密码,所以字符串的值为空。我是想,如果你们的系统也有“Defaultpassword”的字符串,那是否它的值就是密码呢?
或者你们谁敢以上文的方法修改注册表,没准会屏蔽原先的登陆窗口呢!当然,要先备份注册表。
关于SAM文件
使用过NT内核Windows操作系统的朋友都知道NT内核对系统密码的管理机制比Win32内核的Windows操作系统要强得多,这部分归功于NT系统的门卫——SAM。
对于Windows的启动,很多用户并没什么特别的想法,大多数的人都这样看待这个问题:按下电源,稍等片刻,“傻瓜化”的Windows登录界面就出现在我们眼前。但是看了此文,你也许就会有点不同的想法了。
微软做了两个不同的系统骨架,一个叫Win32,我们用的Win9x/Me系统就附在它上面;另一个叫NT(New Technology),也就是WinNT/2000/XP/2003的骨架。不过很不幸,微软有点“偏心”,Win32的骨架做得明显有点过小,所以它成了瘦子,而NT则是典型的美国壮汉。更不幸的是,微软给Win32配备的PWL门卫是个花瓶,不仅连个家门都看不住,而且嘴巴也守不住秘密;而NT呢,又捞了个好处,SAM门卫尽心尽责,嘴巴也难撬开。NT内核Windows操作系统的密码安全性较Win32内核Windows操作系统的密码安全性高出很多跟SAM不无关系,在这篇文章里,我们就一起来认识一下NT内核Windows操作系统的看门神——SAM。
忠实的SAM门卫
SAM最初是跟随第一代NT来到世界的,它在微软总部的特工代号叫做“安全账户管理器”(Security Accounts Manager),经历了几代系统的改进,这个门卫越来越强壮了。SAM平时居住在WINNT\System32\Config下。当然,它不仅仅是一个SAM文件这么简单,它还带有一名随从:Security(如图1所示)。在NT内核Windows系统启动的时候,SAM就开始忙碌了,首先,它在入口处要求你出示身份证——没有?那么就不能进入Windows,并且没得商量。即使你通过了“门检”,事情也还远远没有结束,SAM随时盯着你呢,只要哪里又有人进来了,它就赶紧去问人家要“证件”……SAM记录的数据很多,包括所有组、账户信息、密码HASH、账户SID等,应该说是一个考虑得比较周全的门卫。
前面说过了,SAM不仅仅是一个文件那么简单,它不但有文件数据,在注册表里面还有一个数据库,位于HKEY_LOCAL_MACHINE\SAM下,这是一个比较复杂的结构(如图所示)。SAM在系统启动后就处于锁定状态,我们没法擅自更改这个文件内容。
SAM的主要结构和用户分组
从上述注册表里的分支我们可以看到以下结果:
1.在HKEY_LOCAL_MACHINE\SAM\SAM\
Domains下就是SAM的内容,其下有两个分支“Account”和“Builtin”。
2.Domains\Account\Users下存放的就是各个账号的信息,当然,这里是加密过的二进制数据,每个账号下面有两个子项,F和V。项目V中保存的是账户的基本资料,用户名、所属组、描述、密码、注释、是否可以更改密码、账户启用、密码设置时间等。项目F中保存的是一些登录记录,比如上次登录时间、错误登录次数等。SAM靠这些齐全的备忘录来保存与用户账号相关的各种信息。
3.Domains\Builtin存放着不同用户分组信息,SAM就是根据这个来划分NT中固有的6个不同的工作组的,它们分别是:管理员(Administrators)、备份操作员(Backup Operators)、客人(Guests)、高权限用户(Power Users)、修复员(Replicator)和普通用户(Users)。
幕后指挥官
在Windows系统中,虽然SAM如此尽力,但是它却如《Terminator 3(终结者3)》里MODEL 101的设置一样,不听从你的指挥。它只听本地安全认证(Local Security Authority)程序——LSASS.EXE的差遣,就连进门时的审查也是LSASS的指示。如果你把LSASS杀了,你就等着被赶出门吧——当然,对于普通用户来说,如果你试图用普通的进程管理工具或者Windows系统的进程管理杀掉“LSASS.EXE”进程的话,只会得到“该进程为关键系统进程,任务管理器无法结束进程。”的提示,本地安全认证(Local Security Authority)在Windows系统中主要负责以下任务:1.重新找回本地组的SID和用户权限;2.创建用户的访问令牌;3.管理本地安装的服务所使用的服务账号;4. 存储和映射用户权限;5.管理审核的策略和设置;6.管理信任关系。
“萨姆也是人”
俗话说,“人无完人”。尽管SAM(萨姆)是这么尽心尽责,可是在这里,我们还是必须用那句话——“萨姆也是人”来形容它。由于一些设计上的失误,在WinNT/2000里,如果你忘记了密码,那么你要做的不是呼天喊地,只需要在非NT环境里把SAM驱逐出硬盘就可以了。但是在XP以后的Windows操作系统里,这个情况得以改善,如果你把萨姆大叔踢了,NT也躲着死活不肯出来了。
当然,这也并不是说XP以后的Windows的操作系统密码都无法破解,要知道:经典的LC4和NtPassword都专门拿SAM开刀