- IP:
10.10.11.37
- tags:
Medium
,Linux
- status:
userflag gained
ping 10.10.11.37
首先,使用 nmap
進行掃描,發現了 22
和 80
這兩個 port
sudo nmap -v -sV -O -sS 10.10.11.37
由於該伺服器有開 80 port,因此可以嘗試訪問網站,透過自動轉址可知道 domain 為 instant.htb
,與其他題目一樣修改 /etc/hosts
以方便訪問
稍微訪問了一下網站,發現基本上只有 /downloads/instant.apk
路徑比較有趣,可以下載一個 apk 檔案,其他的部分都沒有什麼特別的
此外我也使用 dirsearch
和 gobuster
工具進行掃描,一樣沒有發現有趣的東西
dirsearch --url http://instant.htb/
gobuster dir -k --wordlist /usr/share/seclists/Discovery/Web-Content/common.txt --url http://instant.htb/
在 apk 分析上,我參考了 Android App 逆向入門之一:拆開與重組 apk 與 APK Decompilation: A Beginner's Guide for Reverse Engineers 這兩篇文章,前者主要以 apktool
進行分析,後者則是以 jadx
進行分析,由於 jadx
有 GUI 介面,因此我主要以後者的方式進行分析
啟動 GUI 並將 apk 檔案放入進行分析後,可在 com/instantlabs.instant
路徑下找到程式相關的原始碼資訊,包含 LoginActivity
, RegisterActivity
等等,也可以發現相關的 API 路徑,不過其中最有價值的是 AdminActivities
,裡面含有寫死的 authorized jwt session 資訊,權限為 admin
當然我也嘗試去打了一下 API,不過裡面沒有什麼可以更進一步利用的資訊
curl -v 'http://mywalletv1.instant.htb/api/v1/view/profile' -H 'Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwicm9sZSI6IkFkbWluIiwid2FsSWQiOiJmMGVjYTZlNS03ODNhLTQ3MWQtOWQ4Zi0wMTYyY2JjOTAwZGIiLCJleHAiOjMzMjU5MzAzNjU2fQ.v0qyyAqDSgyoNFHU7MgRQcDA0Bw99_8AEXKGtWZ6rYA'
當然我也有嘗試爆破看看 jwt 的 secret key,不過在使用 rockyou.txt
的情況下並沒有爆破成功
john --wordlist=~/Desktop/temp/rockyou.txt jwt.txt
在經過一系列的嘗試之後 (包含猜密碼、創新帳號觀察 jwt 和紀錄的資訊、掃描 mywalletv1
的 domain 等等),我沒有找到近一步利用的方式,因此找了一下官方討論區發現這個和這個留言,提到了 apk 中可能不只有一個 doamin 的資訊,且可能進入點與 log 資料相關
而使用了 grep
工具查看 apk 檔案中的資訊後,在 instant/res/xml/network_security_config.xml
中發現了還有一個 swagger-ui.instant.htb
domain 存在 (這邊的 instant/
是先前測試 apktool
產生的資料夾,不過理論上直接對 apk 做 string search 應該也可以找到此字串)
grep -r 'instant.htb' instant/
訪問新找到的 domain 後,發現是一個類似 API 測試的頁面,可以直接在網頁上進行 API 測試,而在其中可以看到有關於 log 的區塊,可能是接下來的進入點
稍微測試了一下,發現 /api/v1/admin/view/logs
可以取得有哪些 log 檔案的資訊,且他也會將 log 檔案的儲存位置回傳,因此我們可知道 log 檔案的儲存位置在 /home/shirohige/logs
中,當然也就知道有一個使用者為 shirohige
而 /api/v1/admin/read/log
可以用來讀取 log 檔案
在上一段中找到了讀取 log 檔案的相關 API,而一個簡單的想法是嘗試看看能不能 path traversal 讀取其他檔案,因此我嘗試了讀取 /etc/passwd
檔案,發現可以成功讀取
而由於該伺服器有開啟 ssh
服務,因此我嘗試讀取 /home/shirohige/.ssh/id_rsa
檔案,發現檔案確實存在且可以讀取
將檔案內容下載並整理後,即可使用 ssh
進行登入,即可取得一般使用者 shirohige
的權限
ssh -o StrictHostKeyChecking=no -i id_rsa [email protected]
userflag 在 /home/shirohige/user.txt
中
64b86ab5a9c9cc299d70bdb544bbfec6
TODO