在windows 2000操作系统中,为配合企业需要,并增加windows的网络管理功能,发展了一种新类型的目录服务--活动目录(active directory),在活动目录中包含了active directory域中所有相关资源的对象及该域用户的相关信息,该域的策略和其他重要的域服务信息。可以说,活动目录采用了与原来NT系统完全不同的方式保存数据信息。
Windows 2000 活动目录数据实际是保存在一个数据库文件中,这个文件就是%SystemRoot%\ntds\NTDS.DIT(文件位置可以在安装时指定,不过必须是存放在NTFS格式分区上的).ntds.dit文件可以说是整个活动目录的核心,其中包括了用户帐号信息等等的相关资料. 活动目录的数据库引擎被称为 ExtensibleStorage Engine ( ESE ),Exchange和WINS都可以利用构建在这个数据引擎上的数据库. ESE存储容量高达16 兆兆个字节,能包含一千万之多的数据对象。只有活动目录的数据库能包含如此多的信息(微软资料宣传的).
活动目录的ESE数据库*NTDS.DIT*中包含以下几个数据表:
Schema表
这个表中包含了所有可在活动目录创建的对象信息以及他们之间的相互关系。包括各种类型对象的可选及不可选的各种属性。这个表是活动目录数据库中最小的一个表,但是也是最基础的一个表。
Link 表
link表包含所有属性的关联,包括活动目录中所有对象的属性的值。一个用户对象的所有属性的类型,包括每个属性的值及用户所属于的组等信息都属于这个表。这个表要大于Schema 表,但与Data 表相比要小。
Data table
活动目录中用户,组,应用程序特殊数据和其他的数据全部保存在Data表中。这是活动目录中存储信息最多的一个表,大量的活动目录的资料实际上还是存储在这个表中。
换一个角度来说明的话,可以认为活动目录中有三种不同类型的数据
Schema信息
能在活动目录中创建并存储在活动目录中的所有对象和属性的详细信息,例如:你能在活动目录中新创建一个用户或是联系人,这是因为活动目录已经预先设置了这种类型的对象在活动目录对象中。Schema信息在所有的主域控制器中都有一份,这些都是静态的信息,在活动目录安装时生成,是不能更改的。
Configuration信息
所有关于域控制器所在域森林或域树中的配置信息。这些信息域中所有的主域控制器都会相互复制,但是这些信息对一个域森林来说是静态的,在配置好后是无法修改的
Domain 信息
域对象的信息,域中所有对象的信息。在域范围内会复制到所有的域控制器中。即使其中部分对象属于全局范围的对象。但是属性值也只在域内进行复制。
*活动目录数据库的维护
windows2000升级到域控制器,安装活动目录之后,启动速度与未安装活动目录之前相比慢了许多,这是因为windows2000在启动中需要加载活动目录并设置活动目录的对象。而在使用活动目录的过程中对活动目录进行大量的操作使活动目录的数据库文件不断变大,从而导致windos2000启动速度越来越慢。其实,windows提供了一个工具能对活动目录的数据库进行压缩。
对活动目录进行压缩的步骤
* 重新启动计算机
当出现启动菜单时按下F8键激活windows 2000的高级选项菜单
选择"活动目录回复模式",然后敲回车键使用恢复模式启动计算机。
为什么要重新启动计算机呢?NTDS.dit在活动目录启用的时候是被锁定的,不能对这个文件进行读写操作,所以要重启动计算机,用这一方法启动计算机不会启动活动目录了。
*当引导过程出现登录欢迎时,用本地管理员帐号登录,这时口令不是存储在活动目录中的管理员口令,而是安装活动目录前使用的管理员口令。这个口令是存储在SAM文件中的。
*完成登录后进入命令行模式。启动管理工具ntdsutil,以下是我进行活动目录压缩的操作过程
c:>Ntdsutil
ntdsutil:files
file maintenance:info (查看驱动器信息)
驱动器信息:
c:\ FAT32 (固定驱动器),空白(2.9Gb)总共(3.8Gb)
d:\ NTFS (固定驱动器),空白(2.5Gb)总共(5.8Gb)
e:\ FAT32 (固定驱动器),空白(1.2Gb)总共(9.2Gb)
ds路径信息:
数据库:D:\WINNT\NTDS\NTDS.DIT-8.1MB
备份目录:D:\WINNT\NTDS\DSADATA.BAK
工作目录:D:\WINNT\NTDS
log dir:D:\WINNT\NTDS-30MB
RES2.LOG-10.0MB
RES1.LOG-10.0MB
EDB.LOG-10.0MB
file maintenance:compact to "c:\mytest"
打开数据库[current]
创建目录:c:\mytest
使用临时路径:e:\
执行指令:d:\winnt\system32\esentull.exe /d"d:\winnt\ntds\ntds.dit" /8 /o /L"d:\winnt/ntds" /s"d:\winnt\ntds" /t"c:\mytest" 1:10240 /p
initiating DEFRAGMENTION mode......
database:d:\winnt\ntds\ntds.dit
log files:d:\winnt\ntds
system files:d:\winnt\ntds
temp. Database:c:\mytest\ntds.dit
这时系统开始创建压缩数据库文件,创建完成后,创建完成了退出操作。
file maintenance:quit
ntdsutil:quit (退出)
完成转换后在c:\mytest目录下就生成了一个数据库压缩文件ntds.dit,将这个文件copy覆盖旧文件就完成活动目录的数据库压缩了。重启动后看看是否一切都正常。如果你还不完全确认,可以在覆盖前备份源数据库文件ntds.dit。
*备份/恢复活动目录数据库
由于ntds.dit文件是整个活动目录的核心,因此必须要小心保护这个文件的安全,经常对这个文件进行备份。一旦这个文件被损坏或被删除(虽然很少见,不过还是有可能发生的),确保还可以从备份中进行恢复,养成一个经常备份的好习惯对一个管理员来说还是很重要的。
对活动目录数据库的备份,出来可以使用上面所提到的压缩活动目录文件的方法之外,还可以通过windows2000系统工具中的备份功能来完成。
*安装活动目录管理员口令恢复
与过去的NT系统不同的是,安装了活动目录之后的windows2000是将用户信息保存在活动目录数据库文件ntds.dit中,原来使用的安全帐号管理器(SAM)已经不再使用了。因此,许多针对SAM文件的破解方法几乎都没有效果了。相比之下,恢复活动目录的管理员口令相对方法要少的多了。
常用的破解方法
1、删除SAM文件
2、使用破解工具如H.peter advin的chntpw.
3、使用l0phcrack进行口令猜解
4、使用备份盘进行恢复
5、重新安装NT,在安装输入管理员口令后中止安装退出。
6、利用系统漏洞
7、其他解决方法
在这些常用的恢复方法中,前5中方法几乎都是针对SAM文件进行的,虽然能修改sam中的口令,可是对活动目录而言根本没有什么用处。到目前为止,还没有出现针对活动目录数据库ntds.dit的破解工具(至少我还没见过)所以对安装了活动目录的管理员口令只能利用系统漏洞或是其他方法破解。利用系同漏洞的方法比较多,不过系统上必须存在能获得管理员权限的漏洞,例如中文windows2000的本地输入法漏洞。由于输入法漏洞的主要问题是出在输入法中的帮助上,如果没有输入法漏洞,我们可以人为创造类似的漏洞。可以通过将一些由系统启动,但是又不是系统必须的程序用其他的能打开帮助文件的程序来替换,这样我们就可以获得权限。例如将win2000启动时加载的程序logon.src用其他能打开帮助文件的程序甚至是explorer.exe来调换。详细的做法说明的文章已经很多,这里就不需要多作说明了。