当前位置: 主页 > 操作系统 > Win2003 > 分析Windows2003和Windows XP的SAM文件与管理员密码的关系

分析Windows2003和Windows XP的SAM文件与管理员密码的关系

时间:2012-10-26来源:互联网 点击:
       你在使用Windows XP时,不小心将管理员密码忘记了,怎么办呢?网上流行着这么一种方法:使用DOS启动盘(如果Windows XP所在分区是NTFS分区,则需要支持NTFS的DOS启动盘)进入DOS实模式,将C:\WINDOWS\system32\CONFIG\目录下一个名为sam的文件删除。重新启动系统,Administrator的登录密码已经为空,我们可以轻松登录系统。
为了验证这种方法是否可行,我进行了以下实验:
      C 盘装的是Windows XP,D 盘装的是Windows Server 2003。因此,要做这个实验非常的简单。我在 Windows Server 2003 环境下把 C:\WINDOWS\system32\CONFIG\下面的SAM文件剪切到 D 盘。等于从该文件夹中删除。然后重启,开始一路下去都非常顺利,但到快出现欢迎界面的时候,会跳出一个对话框:
按照提示,再重新启动到安全模式,但还会出现这个提示框。由此看来,系统在开始时无论是正常模式还是安全模式都需要加载这个SAM文件,也就是安全帐户管理器要读取里面的内容。不行的话必然报错。所以,你连安全模式也是进不去的。
      经过实验我们发现,这种方法根本行不通,这种错误方法来源于以前对Windows 2000忘记密码的处理方式,Windows 2000(未安装Service Pack)的用户如果忘记管理员密码,可以采用该方法顺利破解登录密码。该方案的理论支持为:Windows XP的密码存放在sam文件中,当我们登录系统时,系统会自动验证sam数据库信息,如发现此次密码和用户名与sam文件中的加密数据相吻合时,系统就会顺利登录。反之,则无法登录。如果将该文件删除,则sam数据库会被清空,管理员的登录密码也随之清空,自然可以逃过Windows XP的登录密码验证机制。大家可以想一想,这一招在windows 2000时就大行其道了,微软就算再怎么闭目塞听也不可能不知道这个漏洞。微软会令这个漏洞存在达到5年以上吗?实际上该方法对Windows 2000 SP1-SP4都已经无效,对Windows XP更是毫无用处,如果大家按照该方案对Windows XP进行操作,会出现无法启动的情况,给我们的操作带来了更大的麻烦。
     Windows NT/2000/XP中对用户账户的管理采用了安全账号管理器SAM(Security Account Manager)的机制,该机制对帐户的管理不是通过直接确认用户名和密码的形式,而是通过安全标识(SID)进行的。SID号在帐户创建时就同时创建,一旦账号被删除,SID也一并被删除。SAM 负责SAM数据库的控制和维护。SAM数据库位于注册表HKLM\SAM\SAM下,受到ACL保护,可以使用regedt32.exe打开注 册表编辑器并设置适当权限查看SAM中的内容。SAM数据库在磁盘上就保存在%systemroot%system32\config\目录下的sam文件中,在这个目录下还包括一个security文件,是安全数据库的内容,两者有不少关系。SAM数据库中包含所有组、帐户的信息,包括密码HASH、帐户的SID等。
     网上还有一种说法是,将CONFIG下的SAM文件删除,然后把REPAIR目录下面的SAM文件复制到CONFIG下,可空密码进入
     认为,这个是作者的一个巧合。我们首先要了解的是 repair 这个文件夹是作什么用的?他位于 C:\WINDOWS 下,当我们最初装好系统之时所储存的一个登录。把 C:\WINDOWS\REPAIR\ 下对应的文件放到 C:\WINDOWS\system32\CONFIG\ 下面时,我们可以建立一个可以用来启动 Windows XP 的登录配置文件。然而这个登录配置文件记录的是系统最初时的基本状态,对于以后所产生的所有变化,它是不可能存储的。因为在系统安装的时候,当进行到这一步时:

    如果你设定 administrator 这个帐号的密码是为空的,我们就能用空密码登录。这个是的确能够办到的,经我实验成功。但是,我们需要复制的是 software, system, security, default 和 sam 五个文件,而不仅仅是一个 SAM 文件(作者只复制了一个就能进入系统,我认为只能说是幸运。又或是他的计算机的硬件信息不曾发生过什么大的变化),这里面存储了你的硬件信息和一些软件信息。如果你的硬件或软件有较大有改动的话,我认为,不能登录的可能性是非常大的。
    这个方法微软官方早就给出过,大家在不记得密码的时候,可以用这个试试。当然,用这个方法劣势是显而易见的。首先你在安装系统时,设定了 administrator 这个帐号的密码为空,否则免谈。还有,因为是初装系统时候的状态,这个时候,也许你的声卡显卡等驱动还没有安装,可能还要安装一些其它驱动程序,你以前对系统所配置的优化的大部分都将消失。如对系统属性的高级里的设置、虚拟内存的设置、服务启动的设置等等。控制面板里的添加删除程序里将会丢失绝大部分的程序。
当Windows XP登录密码丢失时,我们可以针对不同的情况采用不同的办法来解决:
1)如果在安装Windows XP时,Administrator密码设置为空。大家可以在系统引导的时候按F8进入安全模式,这里的 Administrator口令为空,可以直接进入,进入后对帐户和密码进行设置即可。
(2)如果设置了Administrator口令,破解的办法就没那么简单了,我们可以使用超强的Windows 2000/XP系统维护光盘——ERD Commander 2003。使用该光盘启动系统后,运行"开始→管理→工具→密码修改"命令打开"ERD Commander 2003 LockSmith Wizard"窗口,在"帐号"框中输入要破解的帐户名,然后输入新的密码。
ERD Commander为共享软件,它的官方主页为:[url]http://www.winternals.com[/url]
3)你有双系统的话而且另一个系统能正常进入的话,只需要把 c:\windows\repair 下的software, system, security, default 和 sam 五个文件拷到 c:\windows\system32\config\ 下,覆盖原来的文件,重启即可。
    如果没有双系统的话。如果 C 盘是 FAT32 的话可直接在 DOS 下执行操作,如果是 NTFS 的话,也可以用能识别出 NTFS 分区的工具来实现,如 NTFS FOR DOS 。然后执行下面的操作:
delete c:\windows\system32\config\system
delete c:\windows\system32\config\software
delete c:\windows\system32\config\sam
delete c:\windows\system32\config\security
delete c:\windows\system32\config\default
copy c:\windows\repair\system c:\windows\system32\config\system
copy c:\windows\repair\software c:\windows\system32\config\software
copy c:\windows\repair\sam c:\windows\system32\config\sam
copy c:\windows\repair\security c:\windows\system32\config\security
copy c:\windows\repair\default c:\windows\system32\config\default
(4)用特定软件破解,一些启动工具盘都带,比如深山红叶。
站长资讯网
. TAG: windows 2003 windows XP 密码 SAM文件
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言