Proving Grounds Practice : Fanatastic Walkthrough
Proving Grounds Practice : Fanatastic Walkthrough
Foothold :
- 3000 Port 發現 Grafana V3.8.0,查找 Exploit 發現 Path Traversal 漏洞利用
- 參考 HackTricks 讀取 /etc/grafana/grafana.ini 拿取 secret_key
- 以及讀取 /var/lib/grafana/grafana.db 獲取 dataSourcePassword
- Grafana 有獨特的加密方式,使用網上提供的 go 語言套件解密
- 獲得憑證後 SSH 登入
PE :
- id 發現使用者有 (disk) 權限
- 使用 debugfs 讀取 root 的 id_rsa Key 後登入成為 root
注意 :
- Grafana 枚舉技巧與檔案位置學習以及 .db 內的密碼解密方式
- kali 預設無法執行 go 語言套件,花了不少時間設定環境
- 使用者隸屬 (disk) 的利用方式
Rustscan,└─$ rustscan -a 192.168.223.181 --scripts none --ulimit 5000 | tee rustscan
snmp check,└─$ sudo nmap -sU -p 161 192.168.223.181 | tee snmp
nmap,└─$ sudo nmap -sCV -A -p 22,3000,9090 192.168.223.181 | tee nmap
3000 / 轉 /login 是個 Grafana CMS,版本 V8.3.0
使用 admin:admin、admin:password、grafana:admin、grafana:grafana、grafana:password 登入失敗
3000 /robots.txt
searchsploit grafana,看來有 Path Traversal
使用後直接讀取到 /etc/passwd
獲取使用者帳號 prometheus、sysadmin
使用這兩個帳號 hydra 噴灑 SSH,沒有任何結果
測試 Grafana 登入沒有成功
gobuster 3000 /
讀取 /etc/grafana/grafana.ini
Grafana 有用的資訊是 /etc/grafana/grafana.ini & /var/lib/grafana/grafana.db
第一個我們已讀,第二個透過上述的 Exploit 讀取不好看,檔案過於大
參考 Exploit 50581 主要漏洞讀取的路徑是
http://<Target IP> + /public/pligins/ + choice(plugin_list) + ../../../../../../../../ + File_to_Read
而 plugin_list 是有字典檔的如下
那就直接 curl 試試看,使用指令
└─$ curl http://192.168.223.181:3000/public/plugins/alertlist/../../../../../../../../etc/passwd
加上參數 --path-as-is 就可以順利讀到了
下載 AESDecrypt.go 後進行編輯,將 main 底下的 dataSourcePassword 替換成該值
看了一下說明還要從 grafana.ini 抓取 secret_Key
還有看到另一組憑證 admin:63f576276a6db59bb750c34f126945c1e941f9e3b21ab2f5be74ae00cc8abfc1b9f7ee5840f9abdae46efc0ee5350bd65aa8
wget https://dl.google.com/go/go1.23.0.linux-amd64.tar.gz
開始 PE,cat /etc/passwd,之前就已知的兩個帳號 prometheus、sysadmin
sudo -l 輸入密碼沒有東西
利用新學到的 Linux 好用的提權工具 lse.sh
參考 : https://github.com/diego-treitos/linux-smart-enumeration/blob/master/lse.sh
執行後輸入現有使用者密碼,跑了之後沒有發現甚麼
加上參數 -l1 (深層資訊掃描) 再掃掃看
root 執行了一個好玩的指令 id
輸入 id 看一下發現 6(disk)
再執行 df -h 看看,檔案系統位於 /dev/sda2 路徑
啟用 debugfs /dev/sda2 然後切換到路徑 /root 底下,輸入 ls 發現有 .ssh 路徑
PS : 要跳出回復上個畫面輸入 q 即可
再進入 .ssh
一樣 ls 查看檔案發現 authorized_keys & id_rsa 檔案
直接 cat id_rsa 讀取檔案
抓回來後直接 SSH 登入確認是 root,獲取 proof.txt
補充說明 :
執行 linpeas 也可以看到 (disk) 亮橘燈
跑到 User Information 的時候還會再看到一次
留言
張貼留言