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文件放到靶机上用不了就真的寄了。

相关推荐
PcVue China2 小时前
PcVue + SQL Grid : 释放数据的无限潜力
大数据·服务器·数据库·sql·科技·安全·oracle
舞动CPU4 小时前
linux c/c++最高效的计时方法
linux·运维·服务器
秦jh_6 小时前
【Linux】多线程(概念,控制)
linux·运维·前端
Hacker_Nightrain7 小时前
网络安全CTF比赛规则
网络·安全·web安全
看山还是山,看水还是。7 小时前
Redis 配置
运维·数据库·redis·安全·缓存·测试覆盖率
学编程的小程8 小时前
【安全通信】告别信息泄露:搭建你的开源视频聊天系统briefing
安全·开源·音视频
网络安全指导员8 小时前
恶意PDF文档分析记录
网络·安全·web安全·pdf
keep__go8 小时前
Linux 批量配置互信
linux·运维·服务器·数据库·shell
矛取矛求8 小时前
Linux中给普通账户一次性提权
linux·运维·服务器
Fanstay9858 小时前
在Linux中使用Nginx和Docker进行项目部署
linux·nginx·docker