VulnHub是一個面向所有人開放的安全靶場,裡面有很多安全環境,只要下載相關映像檔,在相關虛擬機器上面執行就可以練習相關靶場了。裡面設計了好多關,如果有耐心一定可以到達峰頂。許多考OSCP人員,也會利用Vulnhub靶場進行刷題。我們下載了一個經典漏洞靶場,給大家進行演示,希望讓初學者知道滲透測試的套路,可以更快的成長。
靶機:Moonraker: 1
首先,先查詢自己本地的IP,可以透過 ifconfig查詢。
eth0 192.168.44.136 這是本地IP ,同時也是攻擊者端
透過 namp -sP,使用Ping方式快速掃描該網段的其他主機。
發現該標的端為192.168.44.140
找到標的後,使用nmap -A來完整掃描,並可發現開啟了22 port 、80 port 、3000 port
於是可從 80 port網頁端下手。
有了站點目標,第一步就是要先蒐集資訊,使用Dirb,掃描網站目錄。
不過這邊掃描結果,看起來沒什麼有趣的點
直接進到首頁,發現背景是個影片,但過幾秒後,就會跳轉到下一個頁面了。
首頁自動跳轉進入到moonraker.html,總共有三個選項,分別是 Home、Services、Blog
經一番搜尋後,發現Services頁面底下有個功能 SEND AN INQUIRY ,於是點擊進入查看
根據頁面顯示說,5分鐘內會檢查一次,第一直覺以為是要XSS過去,等待管理員檢查後,再傳回訊息回來,
嘗試了很久最後發現用<img src> 傳送過去,等5分鐘後 才收到Log
在這邊顯示已成功傳送出去,但需要等約5分鐘,等待標的端檢查
5分鐘後,檢查apache log,可以看到標的主機訪問了我們的123.txt,並傳回一個網址路徑。
透過訪問該路徑,左上角有個 Back to Sales Admin Interface,是個管理員介面
進入到管理員介面後,第一眼看到CouchDB,這是我們接下來可以嘗試的點。
在其他頁面(Hugo's page moved to port 3k),可以看到 var serialize = require('node-serialize');
看起來是可以利用 node.js的反序列化漏洞。
在CouchDB Notes頁面,可以看到有個提示,Jaws'的密碼是 他女朋友名字+x99
透過Google 搜尋下 Jaws' girlfriend ,可以看到Jaw's的女朋友是 Dolly,而密碼就是 Dollyx99
Google了解下CouchDB後,知道CouchDB 是 5984 port,而目錄是 _utils ,於是便直接訪問。
接著需要輸入帳號密碼,帳號就是剛才得知的,jaws,密碼為 dollyx99
進入到後臺介面後,可以看到有三個表,分別是 _replicator、_users、links
在link表下分別有4個欄位,一一查詢
每個欄位下都有 提示 link,可以直接訪問。
在/HR-Confidential/offer-letters.html目錄下,可以看到有5個選項,分別進入查看。
在Offer Letter: HUGO下,可以看到有帳號密碼,其他的頁面同樣也有其他帳號密碼。
現在,我們將蒐集到的資訊整理出來,總共得到了四組帳號密碼,並嘗試登入 ssh,但發現都失敗,所以只好先保留著,看看還有沒有其他點。
在 /HR-Confidential/moonraker_hugo.pdf ,最下面提示可以訪問 3000 port,於是我們轉向該服務查看。
顯示需要輸入帳號密碼,於是我們帳號輸入hugo 密碼TempleLasersL2K,即可成功登入。
還記得我們在前面有提到,有個Node.js反序列化漏洞嗎?
透過 Burp,我們可以看到 Cookie:profile=eyJ1c2VybmFtZSI6Imh1Z28ifQ%3D%3D ,這邊就是我們接下來可利用的點。
接下來我們透過 node.js反序列化的腳本 生成一個 Reverse shell
然後按照【漏洞分析】利用Node.js反序列化的漏洞执行远程代码(含演示视频)教學,將生成的Payload base64 encode後,貼到 profile。
並且在Kali主機端,透過 nc 監聽 4444 port,等待shell連回來。
Payload送出後,即可看到shell連接成功,並下id、uname -a,ls,查看當前標的端資訊。
發現是 jaws用戶,系統為Debian
經一番搜尋後,最後在/var/mail下發現有四個檔案,但因為權限不夠,所以無法查看。
於是得想辦法提權。
記得這個主機有用到CouchDB,每個訊息都很重要,切記。
於是我們轉向戰場,嘗試訪問 couchdb的local.ini,看有沒有敏感資料。
果真,得到了hugo用戶的帳號密碼。
有了hugo用戶後,我們su hugo 將使用者提升為hugo,並查看 hugo文件,
上半段顯示 root 密碼被has過,且密碼後面為 "password"+VR00M
下半段看到被hash過的密碼,所以得想辦法解開。
我們透過 john 工具 進行爆破後,成功解開,密碼為 cyber。
於是密碼為 cyberVR00M
有了root帳號密碼,勝利就在眼前。
提權為root,su root
id 顯示結果,我們成功提權到root權限了。
只差一步了,訪問 /root目錄,透過 ls 查看當前目錄後,可以看到 flag.txt
於是直接 cat flag.txt,flag就出來了。
結束。