22、Raven2

难度 中

目标 root权限 + 4个flag

使用Virtualbox启动

kali 192.168.86.105 靶机 192.168.86.106

信息收集

看到111端口有一个rpc相关的东西,去网上查看了一下是什么服务

通过在网上搜索发现这是一个信息泄露的漏洞,上面的这个端口其实就是泄露的端口和服务,但是这里明显没有看出来有什么重要的服务,那个36623也并没有什么重要的信息。

因为不确定36623端口的服务所以先看看80端口

看着是一个安全团队的公司主页,发现有个注册登录结果是假的

最下面有个邮件发送的输入框,尝试发送也没有反应,抓包看是发向一个域名猜测可以需要做域名解析。

然后点击blog是wordpress的登录页面,但是页面资源都没有加载出来

抓包发现访问 raven.local 域名失败,于是编辑一下/etc/hosts文件修改一下域名解析然后再访问就正常了

点击contact有几个输入功能点,点击后发现mail.php都没有。。。假的功能点

在没有过多信息下先扫一扫目录,用ip和域名都扫一下

看到有泄露DS_Store,使用工具ds_store_exp-master可以将泄露的内容下载

但是下载后没有下载到有用的源码文件,不过倒是发现了这个Security - Doc目录,这个应该是一个安装手册

然后使用域名又扫了一遍扫出了vendor

发现了目录遍历

点了第二个PATH发现了一个flag。。。

然后里面的全都翻了一番,大概是一个email的开源的项目,在github上面有的,其中发现了还有个列出了此项目存在的CVE漏洞。全都是英文人要看晕了。。。

同时这个页面还告诉了我们版本号

突破边界

刚好小于5.2.18,说不定存在CVE-2016-10033,或者直接在漏洞库中搜索一下这个PHPMailer项目有没有什么漏洞

在kali里面看一下

上面这几个都是CVE-2016-10033漏洞的利用,三个试了都没直接成功。然后去网上找了一下使用方法发现需要修改内容

使用的是40874.py这个脚本

这里目标是contact.php,是这个页面触发的漏洞(这个地方指定了漏洞出现的页面是contact.php页面我一开始也不理解,然后我拿到shell之后进去看发现有个contact.zip能下载contact.php。里面有提示,同时可以参考 PHPMailer 命令执行漏洞(CVE-2016-10033)复现 - Fram3 - 博客园 可以看到漏洞出现的地方是有一个发送邮件的输入框和contact符合特征。)

修改之后还是无法正常的上传文件,然后又执行看了一下wp发现应该是编码的问题

在代码前面添加这些东西

#!/usr/bin/python3

-*- coding: utf-8 -*-

然后执行的使用直接./40974.py

这里我换了个后门的名字为666.php

访问一下

成功的反弹了shell,而且是python反弹的比较好的shell

提取

查看一下passwd发现steven和michael连两个用户可以登录,并且都有自己的目录。先去两个家目录看了一下发现没啥东西,先上信息收集脚步收集一下信息

收集到wp_config中的一些数据库的账号密码

库名 wordpress

登录名 root

密码 R@v3nSecurity

以及发现版本可以使用脏牛提权

同是发现了var目录下面的flag2

但是使用脏牛提权失败了,不知道为什么两个exp都使用了执行结果都说成功的创建了新的账号密码实际并没有。。。

那么还有数据库没有查看,我是挺怀疑数据库中存在flag的所以需要去看一看

先查看了一下数据库是否开启,没想到数据库是以root权限启动的,说不定可以用来提权

简单看了一下没有flag,那么开始尝试使用mysql进行提权

使用UDF提权

首先查看版本 MySQL / MariaDB 版本 4.X 和 5.X 。

查看一下路径的写入权限

show variables like "%secure_file_priv%";

没啥问题,这里使用msf中自带的文件

复制一下文件

c文件给出了编译使用的方法

在kali本地生成so文件

然后再次进入mysql进行操作,这里注意一下插件的路径,这里一开始没注意然后后面链接过去发现没写对,可以先使用

show variables like "%plugin%";

查看一下路径

然后就可以利用这个函数进行命令执行了,可以使用SUID留下后门

gcc -g -c raptor_udf2.c
gcc -g -shared -Wl,-soname,raptor_udf2.so -o raptor_udf2.so raptor_udf2.o -lc

mysql -u root -p
use mysql;
create table foo(line blob);
insert into foo values(load_file('/tmp/raptor_udf2.so'));
select * from foo into dumpfile '/usr/lib/mysql/plugin/raptor_udf2.so';
create function do_system returns integer soname 'raptor_udf2.so';
select * from mysql.func;
select do_system('chmod u+s /usr/bin/find');
exit

成功提权

find . -exec '/bin/sh' \;

拿到flag4

好像还差一个flag3,用命令找了一圈没找到不知道藏到那个里面去了不找了。

后记:

第一次在linux使用UDF提权,也算是比较有收获了,完整的完成了整个的提权过程,还好没有遇到什么环境的问题要是在本机编译的so文件放到靶机上用不了就真的寄了。

相关推荐
cc7752101 分钟前
WebLogic文件任意上传漏洞CVE-2018-2894
安全·web安全
zhangxueyi36 分钟前
超详图解 Apache HTTP Server(httpd)安装与验证
linux·http·vmware虚拟机
思禾1 小时前
Qemu开发ARM篇-3、qemu运行uboot演示
linux·arm开发·qemu·uboot
宇寒风暖1 小时前
反病毒技术和反病毒软件(网络安全小知识)
安全·web安全
mariokkm1 小时前
Django一分钟:借助Django的认证系统快速实现RBAC权限校验以及Session会话
python·安全·django·web
无敌的俊哥2 小时前
WebLogic系列漏洞
安全·web安全
玖石书2 小时前
ubuntu 20.04修改启动项默认等待时间
linux·运维·ubuntu
我写代码菜如坤2 小时前
ubuntu18.04升级到20.04
linux·运维·ubuntu
&黄昏的乐师2 小时前
Ubuntu以及ROS的一些方便设置及使用
linux·运维·ubuntu
Gene_20222 小时前
Ubuntu 20.04安装pycharm2022及配置快捷方式
linux·ubuntu·pycharm