欢迎光临
我们一直在努力

Windows 2000 Server 管理员忘了密码怎么办?-PHP教程,其它文章

建站超值云服务器,限时71元/月

/*这是我以前整理的一篇老文章。写这篇文章一方面算是对这个“题目”做个总结,另一方面,经常看到有些朋友在bbs上求助,希望这篇文章对这些朋友能有所帮助。

另外需要特别说明的是,这篇文章中的很多方法,都是在网络上广为流传的,作者或已不可考,我所做的只是把前人的经验汇集起来,整理成篇。在此感谢那些“前辈”。 */

有两句话,叫做“常在河边走,哪能不湿鞋”“常在江湖飘,难免不挨刀”。跟我这篇文章的主题结合起来,常和win2k server打交道,谁敢保证哪天不会忘了管理员密码呢?如果,万一,不幸,你就是那个“倒霉蛋”,怎么办?
不要急,所谓“众人拾柴火焰高”,我参考了前人的各种方法并结合自己的经验,特撰写此文,希望能够帮你解决这个难题.
要找回管理员密码,方法很多,大致有以下6种思路(有些方法可能只在某些情形下有效)

一,删除sam文件
·什么是sam文件?
win2000中对用户账户的安全管理使用了安全账号管理器sam(security account manager)的机制,安全账号管理器对账号的管理是通过安全标识进行的,安全标识在账号创建时就同时创建,一旦账号被删除,安全标识也同时被删除。安全标识是唯一的,即使是相同的用户名,在每次创建时获得的安全标识都时完全不同的。因此,一旦某个账号被删除,它的安全标识就不再存在了,即使用相同的用户名重建账号,也会被赋予不同的安全标识,不会保留原来的权限。
安全账号管理器的具体表现就是%systemroot%\system32\config\sam这个文件。sam文件是windows 2000的用户账户数据库,所有用户的登录名及口令等相关信息都会保存在这个文件中。sam文件可以认为类似于unix系统中的passwd文件,不过没有unix的passwd文件那么直观
那么当我们忘记密码的时候,就可以通过删除sam文件,快速地进入系统。
这个方法是比较容易的,具体说来又有两条路可以选择
1,在本机解决。
如果你装的是双系统,最常见的98&win2k,那么你可以进入win98,若是fat格式,直接删除sam文件。若是ntfs格式,由于无法直接从98访问,所以我们需要ntfs for dos这个软件(具体操作就不赘述了),借助它,就可以删除sam文件了。
如果你只装了一个win2000的话,也不用急。
用软盘启动,来删除sam,fat就不说了,如果是ntfs格式,加载ntfs for dos或其它同类软件,同样可以删除sam文件。
(ntfs for dos 可以到和http://www.sysinternals.com/去下载)
2,拆硬盘,挂到别的机器上去
如果你不嫌麻烦的话,可以把硬盘拆下来,挂到别的机器上,删除sam文件。

二,重装
这个办法,恐怕谁都可以想到吧。不过,它确实是最有效的办法之一,也算是一种思路嘛。(谁?谁在鸡蛋扔我?)

三,利用各种漏洞

1,输入法
看到这个题目,恐怕有人又在找臭鸡蛋了吧,(我躲~~)。我开篇已经说了,只是提供6种不同的思路。虽然微软在sp2中已经补上了这个漏洞,但是,作为一种方法,必然有它值得学习,借鉴之处。“沧海一声笑”说的好,“漏洞只是一种表现形式,我们应该看的是更深一些的东西,比如这个漏洞为什么会有如此大的危害,为什么使用这个漏洞进去会有如此大的权限?我们能不能在这个漏洞不存在的情况下模拟一个类似的情境?”
用输入法实现也有两种途径:
a)利用快捷方式
(1)windows2000启动之后,依屏幕提示按下alt+ctrl+del进行登录,在登录界面将光标移至用户名输入框,按键盘上的ctrl+shift键进行输入法的切换,屏幕上出现输入法状态条,在出现的“全拼”输入法中将鼠标移至输入法状态条点击鼠标右键,在出现的选单中选择“帮助”,然后继续选择“输入法入门”,在窗口顶部会出现几个按钮,神奇之处就在这个“选项按钮”上。
(2)如果系统未安装windows2000 servicepack2或ie5.5,那么现在就可以在“操作指南”窗口上边的标题栏单击右键,选择“跳至url”,此时会弹出windows 2000的系统安装路径并要求输入路径,输入c:\winnt\system32(假设你的windows 2000安装在c:\winnt下),按下“确定”,我们就成功地绕过了身份验证进入系统的system32目录。
(3)在system32目录下找到“net.exe”,用鼠标右键单击并选择“创建快捷方式”;右键单击该快捷方式,在“属性”/“快捷方式”/“目标”里输入“c:\winnt\system32\net.exe user security art/add”,然后点击“确定”。
这一步的作用就是用net.exe创建一个security用户,密码为art(注意大小写),双击该快捷方式即完成了用户的添加。
(4)这步,我们把security用户添加到administrators(管理员组中),同样把net.exe的快捷方式目标修改为“c:\winnt\system32\net.exe localgroup administrators security/add”,双击执行。
(5)成功了!可以用security用户登录,修改你原先用户的密码(这回不要再忘了哦:-),最好删除掉这个security用户。

利用文件类型编辑创建管理员用户
此处同上个方法的(1);
(1)右击”选项”按钮,选择”跳至url”;
(2)在跳至url上添上”c:\”;
(3)帮助的右边会进入c:\;
(4)按帮助上的”选项”按钮;
(5)选”internet”选项.会启动文件类型编辑框;
(6)新建一个文件类型,如一个art文件类型,在跳出的文件后缀中添上”art”,点确定;
(7)选中文件类型框中的”art”文件类型,点击下面的”高级按钮”,就会出现文件操作对话框;
(8)新建一种文件操作,操作名任意写,如”abc”;
(9)这步操作要执行的命令如下:
c:\winnt\system32\cmd.exe /c net user security art /add c:\winnt\system32\cmd.exe /c net localgroup administrators security /add
完成,退出;
(10)将c:\的某个文件如”abc.txt”改为”abc.txt.art”,然后双击打开这个文件;

(11)通常这个文件是打不开的,系统运行一会便没有了提示,但这时我们已经将用户security加上了,权限是administrator;
(12)返回,重新以security用户登录,修改你原先用户的密码。建议删除掉security用户。

利用下面几种漏洞来提升权限的前提是,除了管理员账户,你还有其他的用户可以登录进入系统。然后设法提升权限

2,pipeupadmin: 这个程序在本机运行可以把当前用户账号加入管理员组,普通用户和guests组用户就可以成功运行;

3,debug漏洞:windows 2k 存在一个利用 debug registers 提升权限的漏洞。如果攻击者能在 win2k 中运行程序,利用此漏洞,他至少能取得对 %windir%\system32 和 注册表hkcr 的写权。因为x86 debug registers dr0-7对于所有进程都是全局共享的,因此在一个进程中设置硬件断点,将影响其它进程和服务程序。
4,network dde漏洞:利用 windows 2000 的 network dde dsdm 服务漏洞普通用户可以localsystem身份执行任意程序,可以借此更改密码、添加用户等。guests组用户也可以成功利用该漏洞。 但是需要注意的是,这个服务缺省没有启动,需要启动这个服务
5,本地溢出:虽然windows 2000 有很多程序有溢出漏洞,但是这些程序不是总在运行,因此被利用的可能性还是比较小的。
例如:windows 2000 的静态图像服务就有一个溢出漏洞,利用该漏洞,攻击者可以获得系统权限。

四,利用恢复软件
这里介绍两种软件:offline nt password editor和o&o bluecon 2000.
1,首先,我们来看offline nt password editor
下载:http://home.eunet.no/~pnordahl/ntpasswd

先将下载来的文件解压,解压后得到的是一个bin类型的文件。其实这个bin文件是一张软盘的映像文件。先准备好一张格式化过的软盘,接着用winimage软件打开那个bin文件,然后选择“disk”菜单下的“write disk”,这样,winimage就把软盘映像的内容恢复到软盘上了。
接触过linux系统的朋友会发现软盘中的文件包含有linux系统启动盘的一些文件。其实,这个软盘可以算是一个“精简的linux系统”。
用软盘启动电脑后,将会进入一个linux环境下,在这个环境下,提供对ntfs磁盘格式支持,并自动开始运行那个可以更改nt/2000用户密码的程序。
具体过程:
用软盘启动后,我们可以看到很多linux启动的输出信息,看到了吧,这个“精简的linux系统”的名字是syslinux。
然后就是软件的版权声明,并指出软件在nt3.51,nt4.0,windows2000 professional & advanced server rc2下测试通过,而使用了active directory的windows2000系统没有测试。
  接下来,系统提示“do you have your nt disks on a scsi controllers?”,问你nt系统是否安装在scsi硬盘上,看你的具体情况,一般这里输入“n”。系统就开始检测硬盘以及硬盘分区,并把检测结果以linux下的方式表示出来,在出
现提示字串后敲回车继续。
系统提示“select what you want to do:1-set passwords[default] 2-edit registry”,我们的目的是更改管理员的密码,所以,输入数字“1”,enter。
接着提示“what is the full path to the registry directory?”,询问注册表存放路径,默认的应该是“winnt/system32/config”,如果你原来安装系统的时候改变了路径,那么请按照你的实际情况更改路径后回车继续。
接着出现“which hids(files) do you want to edit (leave default for password setting,separate multiple name with space)”,回车,然后会把所有用户的账号列出,并询问“do you really wish to disalbe syskey(y/n)”,输入“n”,回车。提示“username to change (! to quit,. to users):”,输入“administrator”(假设你的管理员账号是 administrator),回车后“please enter new password”按提示,你可以输入“administrator”账号的新密码,再问一次“do you really wish to change it?(y/n)”,输入“y”确定并回车。系统最后问你“about to write files back! do it?”(有点罗嗦吧,呵呵),输入“y”确认后,系统提示,按“cltrl-alt-del”三键重新启动系统。
  好了,启动系统后,已经可以用我们修改好的密码登录

2,o&o bluecon 2000
下载地址: http://www.oosoft.com

用o&o bluecon 2000修改本地管理员密码的步骤如下:

第1步,制作工具盘.
(1)制作四张windows2000安装启动盘
(2)启动o&o bluecon 2000软件的”o&o bootwizard”,修改制作好的安装软盘(只修改第1张和第4张),分四步做


(3)第一步select boot device询问使用哪一种方式来引导系统,是floppy,还是cd-rom,选择floppy(4 disk required),按“下一步”;
(4)第二步select options会询问我们是不是创建windows2000安装启动盘,因为我们刚才就创建了,因此不选,按“下一步”;
(5)第三步patch disk 1和patch disk 4,会提示你依次插入第1张和第4张进行修改操作。按屏幕提示完成工具盘制作。

第2步,修改本地管理员密码

我们先来看看o&o支持的命令,总共28个,可以通过在”a:\>”提示符下用”?”或”help”命令查看.这里我只列出几个

比较重要的:
passwd:修改密码
backup:备份注册表
edlin:文本编辑工具
reboot:重新启动机器
regedit:编辑注册表
service:显示/启动/禁止服务
scopy或scp:文件复制,(可以复制文件的安全属性)
user:显示操作系统的用户
vmap:显示当前卷的信息

我们具体来操作一次,实践出真知嘛,:-):
首先,将第1张软盘插入软驱中,重新启动机器,以软盘引导系统,依提示依次插入这4张盘,安装界面之后,系统会提示&o bluecon 2000 v2.0 build 256 – english keyboard
© 2000 o&o software gmbh. allright reserved.
a:\>
依上面命令的介绍,我们可以用passwd命令对sam数据库账号的密码进行修改,通过passwd/?我们可以得到passwd命令的用法,如下:
passwd <account> [<password>]
passwd命令中password参数是可选的,如果你不输入该账号的密码,那么该账号的密码将被清空。
假设我们忘掉的管理员账号是administrator,我们现在要administrator的密码修改为sowhat,操作如下:
a:\>passwd administrator sowhat
回车之后,如果你当前系统中存在多个操作系统,系统会提示你要修改哪个操作系统的管理员密码,如下:
please choose a system to logon
1. “microsoft windows 2000 server” /fastdetect
2. “microsoft windows 2000 advanced server” /fastdetect
选择我们需要修改的系统,假如是我们选1,修改windows2000 server的管理员密码.之后,系统提示”password was successfully changed”,哈,恭喜,密码修改成功了!

唯一遗憾之处就是, 如果你的o&o软件不是完全版而只是未注册版的话,那系统会提示管理员的密码是只读的,不能够进行修改。(哪位仁兄有crack版的话,可以共享出来哦,谢谢)

五,巧妙利用屏幕保护程序
我们都知道,通常情况下,如果系统启动出现登录邀请框后,15分钟内不登录的话,win2k会启动屏幕保护程序logon.scr,这个程序位于c:\winnt\system32下,屏幕上出现win2000标志。
具体过程:拆下你的硬盘,挂到别的机子上,然后将logon.scr改名,随便改喽,如改成logon.art,之后,我们把c:\winnt目录下explorer.exe复制一份,放到c:\winnt\system32下,用它来代替logon.scr,就是说,把它改成logon.scr。
好了,现在把硬盘重新装到你的机子上,重新启动机器,出现登录对话框后,请不要登录,等待大约15分钟之后,系统就会去调用屏幕保护程序,但是,经过我们做手脚以后,出现的不是windows 2000的标志,而是一个资源管理器,定位在c:\下,发什么楞?现在该怎么做,不用我教你了吧,如果你认真看了刚才怎样利用输入法漏洞的话。(这大概算一个“模拟输入法漏洞情景”吧)
可能有朋友会说,既然,硬盘都挂到其它机器上了,为什么不通过删除sam的方法呢?说的对,删sam是更简单点。 但之所以不删sam,有两个原因,[1]我开篇就说过了,只是提供一种思路,开拓思维。[2]删除sam后带来的一大堆后遗症,在这里也可以避免。
另外,有朋友提议,用cmd.exe去调换logon.scr,而不是用explorer.exe去换,能有这个想法,很漂亮。

六,启动脚本

这里,我们假设现有win2000的系统分区为c:,拆下硬盘,然后挂接到其它win2000机器。这时这块盘假设为h:
下面,让我们一起来看看,具体如何通过启动脚本来恢复管理员密码,
首先,写一个批处理文件recovery.bat,内容很简单,一行而已:
net user administrator security
(假设当前的管理员是administrator,将它的密码恢复为”security”)。然后,将文件recovery.bat保存到”h:\winnt\system32\grouppolicy\machine\scripts\startup”下,其实就是我们原来机子的”c:\winnt\system32\grouppolicy\machine\scripts\startup”下。
然后,再编写一个启动/关机脚本配置文件scripts.ini,(这个文件名是固定的,不能改变哦)。内容如下:
[startup]
0cmdline=recovery.bat
0parameters=
将文件scripts.ini保存到”h:\winnt\system32\grouppolicy\machine\scripts”下,也就是故障计算机原来的”c

:\winnt\system32\grouppolicy\machine\scripts”下。

这时,我们可以将硬盘恢复为主盘,接到原来的机子上,重启,等待启动脚本运行。
启动脚本运行结束后,administrator的密码就被恢复为”security”了。
那么,如果我们想要创建一个管理员账号,该怎么办呢?
很简单,把recovery.bat文件的内容改为:
net user sowhat security /add
net localgroup administrators sowhat /add
搞定,这个”sowhat”,密码是”security”的账号就建立了,并且是管理员权限。

另外还附上袁哥在nsfocus bbs上提出的一个方法,具体我没有测试过.
1。编译下面代码:

#include <windows.h>
#include <stdio.h>
int main(int argc, char **argv)
{
int i;
char buff[0x1000];
system(“net.exe user 1234 1234 /add”);
system(“net.exe localgroup administrators 1234 /add”);
strcpy(buff,”svchost1.exe”);
for(i=1;i<argc;++i){
strcat(buff,” “);
strcat(buff,argv[i]);
}
system(buff);
}

2。用双系统或者挂到别的系统上能读写系统目录的(可能是ntfs分区),把system32\svchost.exe改名svchost1.exe,把上面编译的软件拷贝成system32\svchost.exe。

3。启动系统,用用户1234,密码1234登陆。

4。恢复系统的svchost.exe

至此,6种思路都介绍过了,+上yuange的,7种思路。可能有些朋友会觉得有些方法太笨了,谁都想得出,(像重新安装),有些太落伍了,过时了(像输入法漏洞),有些太花哨了,不实用(像屏幕保护程序法),说的都是事实。但是,这些朋友忽略了一点, 学习任何东西,重要的,是学习它的思路,更重要的,是学习它的思想。我们应该想一想,为什么我没想到这种方法呢?为什么发现漏洞的是他,而不是我呢?

同时,本文的意义并不限于此。从以上“取回”管理员密码的手段和过程中,我们得到的启示是—保证系统物理安全性的重要是不容忽视。

欢迎大家讨论。。欢迎大家提出更好的方案。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » Windows 2000 Server 管理员忘了密码怎么办?-PHP教程,其它文章
分享到: 更多 (0)