VulnHub是一個面向所有人開放的安全靶場,裡面有很多安全環境,只要下載相關映像檔,在相關虛擬機器上面執行就可以練習相關靶場了。裡面設計了好多關,如果有耐心一定可以到達峰頂。許多考OSCP人員,也會利用Vulnhub靶場進行刷題。我們下載了一個經典漏洞靶場,給大家進行演示,希望讓初學者知道滲透測試的套路,可以更快的成長。
該題在首頁為一登入功能,透過簡易SQL Injection取得密碼後,嘗試登入ssh,在shell命令限制下,得跳脫限制來提權,接著查看該網站文件設定檔,取得資料庫訊息後,透過MySQL資料庫提權為root。
首先,先查詢自己本地的IP,可以透過 ifconfig查詢。
eth0 192.168.43.119 這是本地IP ,同時也是攻擊者端
使用nmap -sP,用Ping方式快速掃描該網段的主機。
發現標的為 192.168.43.79
繼續使用nmap -A對該主機完整掃描,並掃描該端口 0-65535 port。
結果發現 開啟 22 port、80 port、139 port、445 port。
對該80 port的網頁端進行dirb目錄探測,
看到 /john的目錄。
訪問該網站 192.168.43.79/john ,會自動跳轉為 192.168.43.79/index.php,為一個登入頁面框。
於是嘗試弱密碼與SQL Injection注入
測試許多注入語法,最後 透過 ' or 1=1 # 成功注入
帳號 john
密碼 ' or 1=1 #
登入成功後,顯示john的密碼為 MyNameIsJohn
於是接著嘗試ssh登入,帳號john
登入後,有些指令被限制住了,但使用help可以查看可以下的指令。
這讓我想到這篇文章,我們可以透過echo來幫助我們跳脫限制
Escaping Restricted Linux Shells
echo python: exit_code = os.system('/bin/sh') output = os.popen('/bin/sh').read()
接著進入到 /root目錄後,發現有個 congrats.txt檔,
-rw-r--r-- 1 root root 625 2012-02-06 10:48 congrats.txt
我們可以直接查看該檔案。
但我們最終目的應該是要取得root帳號,所以還沒結束。
我們進入到/var/www/john目錄,並查看 john.php
顯示資料庫的資訊,帳號為root,密碼為空。
於是直接老方法,透過MySQL提權就行了。
mysql -uroot -p,成功登入後,將john的帳號添加權限。
select sys_exec('useradd -a -G admin john');
勝利就在眼前。添加完權限後,直接sudo su,即可提權成功為root。
結束。