ntds.dit 修复分析时内存不足怎么办

在渗透测试进入内网之后,首要目标就是得到域控权限,将域中所有用户的hash值全部跑出来,下载到本地。很多工具比如meterpreter中的smart_hashdump和Impacket中的secretsdump.py都可以做到。但是有些情况下我只能拷贝出来NTDS.dit文件,然后离线将这些密码提取出来。今天正好碰到了这一情况,接下来我将详细的介绍一下如何将密码导出,当然假设我已经成功将这两个文件下载到本地:1. ntds.dit:Extensible storage engine DataBase, version 0x620, checksum 0xa50ff5a, page size 8192, DirtyShutdown, Windows version 6.1 2. systemhive: MS Windows registry file, NT/2000 or above 使用Impacket Imapacket的作者在twitter上告诉我secretsdump.py有一个本地选项,可以很简单的做到将密码提取出来。Impacket实在是太方便了,如果你已经有这两个文件,可以通过执行以下命令就可以得到hash值。python secretsdump.py -ntds /root/ntds_cracking/ntds.dit -system /root/ntds_cracking/systemhive LOCAL 稍等一会,它就会将域中所有用户的NTLM hash值呈现出来:
这是最简单一种方法,如果你想尝试着使用ntdsxtract导出表,你可以继续阅读~安装esedbexport 从NTDS.dit中导出用户表的第一步就是使用libesedb中的esedbexport,你可以在下面网页中下载到最新版本: https://github.com/libyal/libesedb/releases 我使用的版本是:”libesedb-experimental-”下载并且解压:$ wget https://github.com/libyal/libesedb/releases/download//libesedb-experimental-.tar.gz$ tar xf libesedb-experimental-.tar.gz$ cd libesedb-/ 安装依赖:$ sudo apt-get install autoconf automake autopoint libtool pkg-config 进行安装:$ ./configure$ make$ sudo make install$ sudo ldconfig 如果一切顺利地话,你会在/usr/local/bin/esedbexport得到这个工具。提取表 现在工具已经安装完成,使用这个工具可以从ntds.dit中提取出表,在执行过程中会新建一个名称为ntds.dit.export文件夹存放提取出来的表,命令为:$ /usr/local/bin/esedbexport -m tables ntds.dit 这一步骤进行的时间有点长,在我的机器上进行了20-30分钟,在执行完毕之后,你会看到成功的分离出了表:【不支持外链图片,请上传图片或单独粘贴图片】两个重要的表为:datatable以及link_table,他们都会被存放在./ntds.dit.export/文件夹中.使用ntdsxtract提取域中信息 一旦表被提取出来,很多python工具可以将这些表中的信息进一步提取,比如ntdsxtract就可以完美进行。安装命令:$ git clone https://github.com/csababarta/ntdsxtract.git$ cd ntdsxtract/$ python setup.py build && python setup.py install 执行完毕之后,ntdsxtract就会在你的系统上进行安装。提取用户信息以及密码hash值 ntdsxtract工具中dsusers.py可以被用来从分离出来的表中提取用户信息以及NT/LM密码hash值。前提是具有如下三个文件:datatablelink_tablesystem hive 这个工具的使用规则为:dsusers.py &datatable& &link_table& &output_dir& --syshive &systemhive& --passwordhashes &format options& &pwdformat选项是选择以什么格式进行提取,有john(John format),ocl(oclHashcat),ophc(OphCrack)三个选项。这个工具还会将所获得信息输出出来,这也方便了我们可以将信息写入到其他文件当中。以oclHashcat格式提取所有NT和LM的hash,并将它们保存在”output”目录中的”ntout”和”lmout”中:$ dsusers.py ntds.dit.export/datatable.3 ntds.dit.export/link_table.5 output --syshive systemhive --passwordhashes --pwdformat ocl --ntoutfile ntout --lmoutfile lmout |tee all_user_info.txt 执行结束之后,NT的hash值已经以oclHashcat格式提取出来了:root@kali:~/ntds_cracking# head -n2 output/ntout user1:BC62AC0F8EA9DD1AD703C8B4F0A968C4 user2:0E10081EDBCFB92DEFF7881 进一步查看我们提取出来的文件,我们还可以看到其他信息,比如SID,密码修改时间,以及最后登录时间等等:
通过hashcat进行简单hash破解:$ hashcat -m 1000 output/ntout --username /path/to/wordlist 进一步提取域中计算机信息 Ntdsxtract中还具有一个工具可以从分离出来的表中提取域中计算机信息。这对于离线分析目标信息是非常有用的。在使用过程中,需要对它提供datatable,输出目录以及输出文件,格式为csv:$ dscomputers.py ntds.dit.export/datatable.3 computer_output --csvoutfile all_computers.csv 执行完毕之后他会在all_computers.csv中写入所有域中计算机信息。如下:head -n 1 computer_output/all_computers.csv"Record ID";"Computer name";"DNS name";"GUID";"SID";"OS name";"OS version";"When created";"When changed";"Bitlocker recovery name";"Bitlocker recovery GUID";"Bitlocker volume GUID";"Bitlocker when created";"Bitlocker when changed";"Bitlocker recovery password";"Dial-In Permission" 总结 使用secretsdump.py或者其他方法可以很快的提取域中用户以及其他密码哈希等等信息。不过如果你想通过离线对NTDS.dit以及SYSTEM hive文件进行提取的话,希望这篇文章可以给你提供帮助。*本文作者:liulang,转载请注明来自 FreeBuf.COM特别声明:本文为网易自媒体平台“网易号”作者上传并发布,仅代表该作者观点。网易仅提供信息发布平台。
一键安装官方客户端
重大事件及时推送 阅读更流畅
http://crawl.nosdn.127.net/nbotreplaceimg/732f1787920dba79c7f2e8eedede8376eecae.jpg至顶网(zhiding.cn)- 新技术、新商业的知识媒体
很抱歉,您访问了一个不存在的页面!
如果您想阅读最新IT技术资讯,请直接进入首页
如果您想订阅IT技术邮件,请点击“”求救,快来救救我
[问题点数:0分]
求救,快来救救我
[问题点数:0分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2006年1月 荣获微软MVP称号2007年1月 荣获微软MVP称号2004年9月 荣获微软MVP称号
2006年4月 Windows专区大版内专家分月排行榜第一2005年2月 Windows专区大版内专家分月排行榜第一2003年9月 Windows专区大版内专家分月排行榜第一
2004年2月 总版技术专家分月排行榜第一
2004年6月 总版技术专家分月排行榜第三2004年3月 总版技术专家分月排行榜第三2004年1月 总版技术专家分月排行榜第三
2004年9月 Windows专区大版内专家分月排行榜第二2004年9月 扩充话题大版内专家分月排行榜第二
2004年12月 Windows专区大版内专家分月排行榜第三
匿名用户不能发表回复!|目录服务日志出现了读取文件NTDS.DIT花费时间很长的警告,请哪位高的告诉我怎么处理?
日志信息如下:
NTDS (492) NTDSA: 从文件 &C:\WINDOWS\NTDS\ntds.dit& 中偏移量 xc000) 读取 02000) 字节的请求成功,但是花费了 OS 异常的长时间(62 秒)。另外,自 1732598 秒前关于此问题的上一个消息张贴后,0 其他对此文件的 I/O 请求也花费了异常的长时间。此问题可能是硬件故障造成的。请与您的硬件供应商联系获得进一步协助诊断此问题。
这个日志事件出现的次数多吗? 如果有使用杀毒软件的话,请确定当时杀毒软件没有在扫描活动目录的相关文件。
同时,我们有必要检查一下磁盘的健康状态。 我们可以用chkdsk命令去检查磁盘的状态。
关于chkdsk命令,下面文章可以作为参考
已标记为答案
这个日志事件出现的次数多吗? 如果有使用杀毒软件的话,请确定当时杀毒软件没有在扫描活动目录的相关文件。
同时,我们有必要检查一下磁盘的健康状态。 我们可以用chkdsk命令去检查磁盘的状态。
关于chkdsk命令,下面文章可以作为参考
已标记为答案
谢谢,出现过两三次了,最近一个月的时间吧,硬盘刚换不久,我用扫描修复工具试试看。如何巧妙的从ntds.dit中提取Hash和域信息
在渗透测试进入内网之后,首要目标就是得到域控权限,将域中所有用户的hash值全部跑出来,下载到本地。很多工具比如meterpreter中的smart_hashdump和Impacket中的secretsdump.py都可以做到。
但是有些情况下我只能拷贝出来NTDS.dit文件,然后离线将这些密码提取出来。今天正好碰到了这一情况,接下来我将详细的介绍一下如何将密码导出,当然假设我已经成功将这两个文件下载到本地:
1. ntds.dit:Extensible storage engine DataBase, version 0x620, checksum 0xa50ff5a, page size 8192, DirtyShutdown, Windows version 6.1
2. systemhive: MS Windows registry file, NT/2000 or above
使用Impacket
Imapacket的作者在twitter上告诉我secretsdump.py有一个本地选项,可以很简单的做到将密码提取出来。Impacket实在是太方便了,如果你已经有这两个文件,可以通过执行以下命令就可以得到hash值。
python secretsdump.py -ntds /root/ntds_cracking/ntds.dit -system /root/ntds_cracking/systemhive LOCAL
稍等一会,它就会将域中所有用户的NTLM hash值呈现出来:
这是最简单一种方法,如果你想尝试着使用ntdsxtract导出表,你可以继续阅读~
安装esedbexport
从NTDS.dit中导出用户表的第一步就是使用libesedb中的esedbexport,你可以在下面网页中下载到最新版本:
我使用的版本是:”libesedb-experimental-”
下载并且解压:
$ wget https://github.com/libyal/libesedb/releases/download//libesedb-experimental-.tar.gz
$ tar xf libesedb-experimental-.tar.gz
$ cd libesedb-/
安装依赖:
$ sudo apt-get install autoconf automake autopoint libtool pkg-config
进行安装:
$ ./configure
$ sudo make install
$ sudo ldconfig
如果一切顺利地话,你会在/usr/local/bin/esedbexport得到这个工具。
现在工具已经安装完成,使用这个工具可以从ntds.dit中提取出表,在执行过程中会新建一个名称为ntds.dit.export文件夹存放提取出来的表,命令为:
$ /usr/local/bin/esedbexport -m tables ntds.dit
这一步骤进行的时间有点长,在我的机器上进行了20-30分钟,在执行完毕之后,你会看到成功的分离出了表:
【不支持外链图片,请上传图片或单独粘贴图片】
两个重要的表为:datatable以及link_table,他们都会被存放在./ntds.dit.export/文件夹中.
使用ntdsxtract提取域中信息
一旦表被提取出来,很多python工具可以将这些表中的信息进一步提取,比如ntdsxtract就可以完美进行。
安装命令:
$ git clone https://github.com/csababarta/ntdsxtract.git
$ cd ntdsxtract/
$ python setup.py build && python setup.py install
执行完毕之后,ntdsxtract就会在你的系统上进行安装。
提取用户信息以及密码hash值
ntdsxtract工具中dsusers.py可以被用来从分离出来的表中提取用户信息以及NT/LM密码hash值。前提是具有如下三个文件:
link_table
system hive
这个工具的使用规则为:
dsusers.py &datatable& &link_table& &output_dir& --syshive &systemhive& --passwordhashes &format options&
–pwdformat选项是选择以什么格式进行提取,有john(John format),ocl(oclHashcat),ophc(OphCrack)三个选项。
这个工具还会将所获得信息输出出来,这也方便了我们可以将信息写入到其他文件当中。
以oclHashcat格式提取所有NT和LM的hash,并将它们保存在”output”目录中的”ntout”和”lmout”中:
$ dsusers.py ntds.dit.export/datatable.3 ntds.dit.export/link_table.5 output --syshive systemhive --passwordhashes --pwdformat ocl --ntoutfile ntout --lmoutfile lmout |tee all_user_info.txt
执行结束之后,NT的hash值已经以oclHashcat格式提取出来了:
root@kali:~/ntds_cracking
进一步查看我们提取出来的文件,我们还可以看到其他信息,比如SID,密码修改时间,以及最后登录时间等等:
通过hashcat进行简单hash破解:
$ hashcat -m 1000 output/ntout --username /path/to/wordlist
进一步提取域中计算机信息
Ntdsxtract中还具有一个工具可以从分离出来的表中提取域中计算机信息。这对于离线分析目标信息是非常有用的。
在使用过程中,需要对它提供datatable,输出目录以及输出文件,格式为csv:
$ dscomputers.py ntds.dit.export/datatable.3 computer_output --csvoutfile all_computers.csv
执行完毕之后他会在all_computers.csv中写入所有域中计算机信息。如下:
head -n 1 computer_output/all_computers.csv
"Record ID";"Computer name";"DNS name";"GUID";"SID";"OS name";"OS version";"When created";"When changed";"Bitlocker recovery name";"Bitlocker recovery GUID";"Bitlocker volume GUID";"Bitlocker when created";"Bitlocker when changed";"Bitlocker recovery password";"Dial-In Permission"
使用secretsdump.py或者其他方法可以很快的提取域中用户以及其他密码哈希等等信息。不过如果你想通过离线对NTDS.dit以及SYSTEM hive文件进行提取的话,希望这篇文章可以给你提供帮助。
*本文作者:liulang,转载请注明来自 FreeBuf.COM
已有 4 条评论
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 ntds.dit 口令 提取 的文章

 

随机推荐