前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从NTDS.dit获取密码hash的三种方法

从NTDS.dit获取密码hash的三种方法

作者头像
FB客服
发布2018-07-31 10:22:50
2.1K0
发布2018-07-31 10:22:50
举报
文章被收录于专栏:FreeBuf

本文我将为大家介绍一些取证工具,这些工具在渗透测试中将会对我们起到很大的帮助。例如当你提取到了大量的主机内部文件时,你可会发现其中包含如NTDS.dit和系统hive,那么你将可能需要用到下面的这些工具,来帮助你提取其中的用户信息。

Impacket-secretsdump

Impacket是一个Python类库,用于对SMB1-3或IPv4 / IPv6 上的TCP、UDP、ICMP、IGMP,ARP,IPv4,IPv6,SMB,MSRPC,NTLM,Kerberos,WMI,LDAP等协议进行低级编程访问。 该库提供了一组工具,作为在此库的上下文中可以执行的操作示例。

secretsdump.py:实现了多种不需要在远程主机上执行任何代理的情况下转储机密数据的技术。对于SAM和LSA Secrets(包括缓存的凭据),我们尽可能的尝试从注册表中读取,然后将hives保存在目标系统(%SYSTEMROOT%\Temp目录)中,并从那里读取其余的数据。对于DIT文件,我们使用DL_DRSGetNCChanges()方法转储NTLM哈希值,明文凭证(如果可用)和Kerberos密钥。此外,还可以通过使用smbexec/wmiexec方法执行vssadmin来转储NTDS.dit。

参考:https://www.coresecurity.com/corelabs-research/open-source-tools/impacket

根据官方文档的说明,想要提取用户的密码哈希,我们必须获取到ntds.dit和System-hive这两个文件。如果条件满足,你可以执行以下命令:

impacket-secretsdump -system /root/Desktop/NTDS/SYSTEM -ntds /root/Desktop/NTDS/ntds.dit LOCAL

-system:表示系统hive文件的路径(SYSTEM)

-ntds:表示dit文件的路径(ntds.dit)

可以看到,它已从ntd.dit文件中转储了NTLM密码。

利用在线密码破解工具来尝试破解密码哈希,如图所示,最终的爆破结果是“123@password”。

DSInternals PowerShell

DSInternals PowerShell模块提供了构建在框架之上的易于使用的cmdlet。主要功能包括离线ntds.dit文件操作以及通过目录复制服务(DRS)远程协议查询域控制器。

参考:https://github.com/MichaelGrafnetter/DSInternals

此方法仅适用于Windows,你可以使用以下命令来提取NTLM哈希值:

代码语言:javascript
复制
Save-Module DSInternals -Path C:\Windows\System32\WindowsPowershell\v1.0\Modules
Install-Module DSInternals
Import-Module DSInternals
代码语言:javascript
复制
Get-Bootkey -SystemHivePath 'C:\Users\sanje\Desktop\NTDS\SYSTEM'
代码语言:javascript
复制
Get-ADDBAccount -All -DBPath 'C:\Users\sanje\Desktop\NTDS\ntds.dit' -Bootkey $key

可以看到NTML哈希值成功被提取。同样,我们再次利用在线密码破解工具来尝试破解该密码哈希。

Ntdsxtract

首先我们需要从NTDS.dit文件中提取表格,这里我们可以通过libesedb-tools中的esedbexport来帮我们完成。Libesedb是一个用于访问可扩展存储引擎(ESE)数据库文件(EDB)格式的库。当前,ESE数据库格式被应用于许多不同的应用程序上,如Windows Search,Windows Mail,Exchange,Active Directory(NTDS.dit)等。

参考:https://github.com/libyal/libesedb/

最新下载链接:https://github.com/libyal/libesedb/releases

键入以下命令来下载libesedb库以安装esedbexport,然后解压tar文件。

代码语言:javascript
复制
wget https://github.com/libyal/libesedb/releases/download/20170121/libesedb-experimental-20170121.tar.gz
tar xf libesedb-experimental-20170121.tar.gz

接着,通过以下命令完成安装:

代码语言:javascript
复制
cd libesedb-20170121
apt-get install autoconf automake autopoint libtool pkg-config
./configure
make
make install
ldconfig
代码语言:javascript
复制
安装完成后,我们就可以利用该工具从ntds.dit文件中转储表格了。命令如下:
代码语言:javascript
复制
esedbexport -m tables /root/Desktop/NTDS/ntds.dit

这将创建一个名为“ntds.dit.export”的新目录,其中包含提取的表。这里你将会提取到两个主表,即datatablelink_table

现在我们来下载ntdsxtract,这是一个取证工具,能够为我们从NTDS.dit文件中,提取与用户对象,组对象,计算机对象的相关信息以及删除对象。

代码语言:javascript
复制
git clone https://github.com/csababarta/ntdsxtract.git

执行以下命令,安装所有配置文件。

代码语言:javascript
复制
cd ntdsxtract
python setup.py build && python setup.py install

提取用户信息和密码哈希值

现在借助这三个文件(即Datatable,link_table和system hive),我们将能够转储用户信息和NT/LM密码哈希值。你也可以通过以下命令以John the ripper的格式来获取NTLM密码。

代码语言:javascript
复制
dsusers.py ntds.dit.export/datatable.4 ntds.dit.export/link_table.6 data --syshive /root/Desktop/NTDS/SYSTEM --passwordhashes --pwdformat john --ntoutfile nthash.txt --lmoutfile lmhash.txt

如你所见,用户信息和密码哈希值已成功被提取。

cat data/nthash.txt

现在,我们使用John the ripper来破解这个密码哈希值。如下:

*参考来源:hackingarticles,FB小编 secist 编译,转载请注明来自FreeBuf.COM

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Impacket-secretsdump
  • DSInternals PowerShell
  • Ntdsxtract
  • 提取用户信息和密码哈希值
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档