VulnHub #Node:1
Official website: Node: 1 ~ VulnHub
info
1 | Nmap scan report for 192.168.56.101 |
22/tcp SSH 服務目前沒有登錄資訊暫且擱置,3000/tcp 是一個網站,得從這裡著手。
Login
把 Bur Suite 接起來以後觀察網站的封包,發現一些有意思的 API,且此網站為 Node.js express 框架,基本上只有一個登入的功能,推測應該要以管理員身份登入才能得到進一步的資訊。/assets/js/app/ 裡有不少 JavaScript 的 code 也可以幫助你找到這些 API 路徑。
/api/users/latest 會回傳三個使用者的帳號及 SHA256 的密碼,Google 就可以找到 decrypt 的明文,不過一般使用者帳號並沒有用處,目標是取得 admin 的帳號並登入後台。
嘗試不同的 API 時發現/api/users會回傳所有的使用者資訊,於是得到具有管理權限的帳號 myP14ceAdm1nAcc0uNT 及 SHA256 的密碼 dffc504aa55359b9265cbebe1e4032fe600b64475ae3fd29c07d23223334d0af,一樣直接 Google 明文後即可成功登入。

後台介面唯一的功能便是下載網站的備份檔,下載下來是個純文字檔,觀察一下即可發現是 base64 編碼,decode 以後再次確認檔案類型發現是個有密碼的 ZIP 壓縮檔。
1 | $ file myplace.backup |
Decrypt Zip File
如果能夠解開這個壓縮檔,便可以進行 code review 去尋找其他潛在的漏洞。我使用 pkcrack 來還原加密的壓縮檔,只要我們能有一個同樣的檔案存在在壓縮檔內,便可以透過 pkcrack 去解密,於是我下載了 home.html 這個模板並壓縮成 key.zip,使用 binwalk 來確認 home.html 的路徑,便成功的還原出 result.zip,可以解壓縮進行更多的檢視了。
1 | $ binwalk decode.zip | grep home.html |
Code Review
Code review 會發現 mongoDB 的登錄資訊為 mark:5AYRft73VtFpc84k,嘗試登陸 SSH 成功,可是並未具有 root 權限,並發現第一個 flag 為 /home/tom/user.txt,必須設法提升權限。
Local Privilege Escalation
看了一下目錄底下沒有其他檔案以後,決定將目標轉移到本地提權上。首先檢查 kernel 相關資訊並使用 searchsploit 來尋找相關的 payload。

1 | $ uname -a |
找到了可能可行的 payload 以後,我們已經有 SSH 的登錄資訊,可以使用 scp 來把檔案上傳至靶機內並編譯執行,即可成功取得 root 權限並且拿到兩把 flag。
1 | $ scp /usr/share/exploitdb/exploits/linux/local/44298.c [email protected]:/tmp/exploit.c |
