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 |