近日调试一台Windows 2000服务器,开机后输入管理员密码,系统提示密码错误而无法登录,经询问得知工作人员并没有更改过密码,于是试用其他账号,结果都可以正常登录,再换成管理员登录,故障依旧。
该服务器主要用于Web发布,使用三块SCSI硬盘构成RIAD 5,文件系统格式为NTFS,用一般的系统盘启动机器后不能访问硬盘,工具软件也无法使用。
经过网上一翻搜索,终于找到了两个工具。首先使用的是MKE2FS,据说这个软件可以更改Windows NT/2000任意用户的口令,下载后按照说明将该软件解压并制作成启动软盘,用它引导系统并按屏幕提示一步步操作,开始时还都正常,但是到了安装SCSI驱动程序时,软件自带的驱动程序无法正常安装。
在这种情况下,我们接着又下载了NTFS for DOS软件。这次还比较顺利,使用Windows98启动盘将系统引导到DOS环境后,按照软件说明,用ntcp.exe将原系统目录 WINNTsystem32\config中的Sam文件复制出来,并进行了备份,然后用chntpw.exe对复制出来的Sam文件进行破解,屏幕却提示:
A:chntpw-i sam
Exiting due to signal SIGSEGV
gENERAL pROTECTION fAULT AT EIP=000059D6
eax=6477bc44 ebx=000a8c1c ecx=0b002000 edx=000a8c1c
App stack:[000a493c..0002493c] Exceptn stack:[00024890..00022950]
Call frame traceback EIPs:
0x000059d6
……
显然,软件运行失败,此路不通。在没有其他办法的情况下,我们又尝试着将另外一台 Windows 2000服务器上的Sam文件复制到该机器上(用NTFS for DOS软件中的ntchange写入),但开机后系统提示出错,并自动重新启动计算机。
正在绝望之际,偶然在另外一台服务器上的WINNT
epair\目录中发现了一个Sam文件,经查阅资料,得知这是系统初始安装时的自动备份文件。抱着试一试的心态,我们找来 Windows 2000的系统安装盘,启动并进入恢复控制台,用WINNT
epairsam对 WINNTsystem32\configsam进行覆盖操作,然后重启服务器,在登录界面中键入系统安装时的初始管理员密码,登录成功!
问题解决后,为了测试,我们再次使用NTFS for DOS软件对原WINNT
epair目录中的 Sam文件进行破解,执行完上述相同的操作后,结果却出乎预料,屏幕显示内容如下:
A:chntpw-i sam
chntpw version 0.98.4 011022,(c)Petter N Hagen
……
RID:01f4,Username:Administrator
RID:01f5,Usemame:Guest,*BLANK password*
**Checking for syskey!
******SYSKEY ENABLED!******
This installation very likely has the syskey passwordhash-obfuscator installed
………
Username to change(!to quit,.to list users):[Administrator]RID 0500 [01f4]
Username:Administrator
fullname:
……
Please enter new password
Or nothing to leave unchanged:Nothing changed.
Username to change (!to quit,.to list users):[Administrator]
Hives that have changed:
......
原来这个软件是好用的!忙活了半天,现在才明白:系统并非被黑客攻击,管理员无法登录竟然是由于Sam文件的损坏所导致。
问题是解决了,但也给我们留下了一些思考。Windows Server登录密码的安全机制并非想象中那么强壮,不但工具软件可以破解,而且Sam文件还有可能因意外而损坏,所以在此提醒系统管理员,除了及时备份Active Directory和创建紧急修复盘外,还应注意:
(1)尽量不要使用Administrator登录,以提高系统的抗攻击性,即使黑客进犯,首先也得猜出管理员的账号;
(2)系统中应有两个或两个以上管理员账号,其登录名与登录密码的长度和强度都要符合安全要求;
(3)应定期更换管理员及重要用户的密码,同时应作好管理员密码的记录工作,以备应急使用。