# VulnHub: NullByte ###### tags: `security` > VM image: https://www.vulnhub.com/entry/nullbyte-1,126/ > Goal: 查看 /root/proof.txt - 先找到 target IP ![](https://i.imgur.com/2goZAy3.png) - 用 nmap 指令掃描 port, 看哪些 port 是開的 (nmap -v -A 192.168.100.12):可以看到 port 80, 111, 777 是打開的 ![](https://i.imgur.com/UFHMWlS.png) - 因為 port 80 是在做 http service, 所以用瀏覽器輸入 url 192.168.100.12 查看, 觀察網頁元素沒有找到線索, 把圖片下載下來掃, 可以知道是一張 GIF 格式的圖片, 下 exiftool 指令來觀察這張圖片的 metadata, 在 comment 的欄位找到看起來可疑的資訊 ![](https://i.imgur.com/5KsSJ21.png) ![](https://i.imgur.com/YuEtzSZ.png) - 把在 url 後面塞 /kzMb5nVYJw, 可以發現跳轉到另一個頁面, 要我們輸入 key, 嘗試了幾個 SQL injection 沒有成功, 看到提示說 "和 mysql 無關, 密碼並不複雜" ![](https://i.imgur.com/fHs8nqa.png) - 所以改用 hydra 和字典 rockyou.txt 來暴力破解, 可以得到 key 是 "elite" ![](https://i.imgur.com/I8UOzaG.png) ![](https://i.imgur.com/zi5SFqc.png) - 輸入 key "elite" 後, 出現有 Enter username 的欄位, 直接按 enter, 出現以下畫面, 看起來是資料庫的 usernames ![](https://i.imgur.com/mJ14mCi.png) - 因此用 sqlmap 指令來把資料庫的資料洩漏出來 `$ sqlmap -u http://192.168.100.12/kzMb5nVYJw/420search.php?usrtosearch= --dump-all | less` - 直接 dump 全部, 可以找到帳號名稱 ramses, 密碼是一串可疑字串 "YzZkNmJkN2ViZjgwNmY0M2M3NmFjYzM2ODE3MDNiODE", 把此字串用 base64 解碼後, 得到 "c6d6bd7ebf806f43c76acc3681703b81" ![](https://i.imgur.com/GbWoY90.png) ![](https://i.imgur.com/trkDDBB.png) - 用 online 的 hash password cracker 解出密碼是 omega ![](https://i.imgur.com/qHsxZjD.png) - 得到帳密後 (帳號:ramses, 密碼:omega), 就可以用 ssh 指令連到 port 777 ![](https://i.imgur.com/1TaPT5f.png) - 目標是看到 /root/proof.txt 的內容, 先觀察 directory 結構, 發現 root 資料夾我們沒有權限, 先去找 SUID program ![](https://i.imgur.com/BW3mNZc.png) - 找到 ./var/www/backup/procwatch 這個檔案, 執行看看, 發現是在查看現在執行哪些 process, 類似 ps 指令 ![](https://i.imgur.com/yBaUEhF.png) - 剩下就是 abuse SUID 來提權, 為了能夠執行 shell, 新增一個叫 ps 的檔案, 但把裡面內容偷改成 /bin/sh, 並且修改環境變數, 強迫先解析成當前的目錄, 即 export PATH=\$PWD:\$PATH, 接著再執行 ./procwatch, 就可以得到 root 權限執行 shell ``` $ echo "/bin/sh" > ps $ chmod +x ps $ export PATH=$PWD:$PATH $ ./procwatch ``` - 下 cat 指令, 成功看到 /root/proof.txt 檔案內容! ![](https://i.imgur.com/vSQfFgl.png) ![](https://i.imgur.com/smu3Ja6.png)