百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Redis未授权漏洞到shell利用过程

mhr18 2024-11-26 12:05 27 浏览 0 评论

前言

redis是一个高性能的key-value数据库,也经常被使用,今天来看看redis里面有什么好的利用方式,其一是利用redis写入shell,第二个就是写入ssh公钥进行登录。

FOfa语法

protocol="redis" && banner="redis_version" && port="6379”

Redis简介

Redis(Remote Dictionary Server ),即远程字典服务,是?个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

Redis是?个key-value存储系统,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set —有序集合)和hash(哈希类型)。这些数据类型都支持 push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached?样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Ubuntu apt安装

sudo apt install redis-server 
redis-server
redis-cli

Redis命令

redis分为服务器端和客户端,服务端上执行的是客户端发送过来的命令。Redis在安装完成之后会有redis-cli。

redis-cli -h host #免密登录
redis-cli -h host -p port -a password #使用Redis密码登录Redis服务
#与Redis服务器连接成功后 执行ping 会返回?个PONG

Redis配置文件

Redis的配置文件位于Redis安装目录下,文件名为redis.conf(Windows名为redis.windows.conf)。当然也可以通过指定配置文件来进行启动。列举?些重要的配置项进行说明。

Redis漏洞利用

1)前置条件

  • 将redis 绑定到 0.0.0.0 (?般会通过ssrf gopher进行利用);
  • 没有绑定redis到任何地址将protected-mode参数为no;
  • 使用redis-server 启动redis服务 redis-cli 本地连接,启动成功。

将bind 改为 0.0.0.0

修改成功:

2)启动攻击机 kali 进行连接

Ubuntu(受害机) : 192.168.23.134

kali(攻击机) : 192.168.23.129

3)写入shell

成功写入。

4)写入SSH公钥

服务端的Redis连接存在未授权,在攻击机上能用redis-cli直接登陆连接,并未登陆验证。服务端存在.ssh目录并且有写入的权限。

在数据库中插入一条数据,将本机的公钥作为value,key无所谓,然后通过修改数据库的默认路径为/root/.ssh和默认的缓冲文件 authorized.keys,把缓冲的数据保存在文件里,这样就可以在服务器端的/root/.ssh下生成?个授权的key,在kali的/root/.ssh目录里生成ssh公钥key。

将公钥导入key.txt文件,再把key.txt文件内容写入服务端Redis的缓冲里:

(echo -e "\n\n"; cat /root/.ssh/id_rsa.pub; echo -e "\n\n") > /root/.ssh/key.txt cat /root/.ssh/key.txt | redis-cli -h 192.168.23.134 -x set huahua

-x代表从标准输入读取数据作为该命令的最后?个参数 :

使用kali连接服务端Redis,设置Redis的备份路径为/root/.ssh/和保存文件名为authorized_keys,并将数据保存在目标服务器上。

小结

可以看到,redis的两种利用方式,可以直接拿到shell,在内网中普遍使用。

相关推荐

线程池—ThreadPoolExecutor详解(线程池实战)

一、ThreadPoolExecutor简介在juc-executors框架概述的章节中,我们已经简要介绍过ThreadPoolExecutor了,通过Executors工厂,用户可以创建自己需要的执...

navicat如何使用orcale(详细步骤)

前言:看过我昨天文章的同鞋都知道最近接手另一个国企项目,数据库用的是orcale。实话实说,也有快三年没用过orcale数据库了。这期间问题不断,因为orcale日渐消沉,网上资料也是真真假假,难辨虚...

你的程序是不是慢吞吞?GraalVM来帮你飞起来性能提升秘籍大公开

各位IT圈内外的朋友们,大家好!我是你们的老朋友,头条上的IT技术博主。不知道你们有没有这样的经历:打开一个软件,半天没反应;点开一个网站,图片刷不出来;或者玩个游戏,卡顿得想砸电脑?是不是特别上火?...

大数据正当时,理解这几个术语很重要

目前,大数据的流行程度远超于我们的想象,无论是在云计算、物联网还是在人工智能领域都离不开大数据的支撑。那么大数据领域里有哪些基本概念或技术术语呢?今天我们就来聊聊那些避不开的大数据技术术语,梳理并...

秒懂列式数据库和行式数据库(列式数据库的特点)

行式数据库(Row-Based)数据按行存储,常见的行式数据库有Mysql,DB2,Oracle,Sql-server等;列数据库(Column-Based)数据存储方式按列存储,常见的列数据库有Hb...

AMD发布ROCm 6.4更新:带来了多项底层改进,但仍不支持RDNA 4

AMD宣布,对ROCm软件栈进行了更新,推出了新的迭代版本ROCm6.4。这一新版本里,AMD带来了多项底层改进,包括更新改进了ROCm的用户空间库和AMDKFD内核驱动程序之间的兼容性,使其更容易...

难怪打不过英伟达CUDA!AMD ROCm开发平台仍然不支持RDNA 4

AMD发布了最新版本的ROCm6.4开发平台,不过奇怪的是,仍然没有加入对RDNA4架构产品的支持,只是新加入了RadeonProW780048GB显存版本,它仍然是RDNA3架构产品。R...

Java后端学习路线是什么?(java后端学到什么程度)

关于Java后端(SpringBoot为主)学习路线:一、Java基础阶段编程语言基础掌握基本数据类型(如int、double、char等)、变量、常量的定义和使用。理解运算符(算术、关...

Oracle与Nextcloud合作,推出主权云上的安全协作平台

据thefastmode网6月18日报道,Oracle与Nextcloud达成合作,将NextcloudHub引入Oracle云基础设施(OCI),为政府和企业客户提供安全协作平台。Nextclou...

主打的是回顾与展望?解读美国陆军250周年庆丨武装

2025年6月14日,美国陆军250周年庆(Armycelebrates250thbirthday)及阅兵活动在美国弗吉尼亚州阿灵顿县和华盛顿特区隆重举行,以纪念美国陆军成立(1775年6月14...

微服务不如单体架构?那是你不会用!

一、我为什么选择微服务架构?众所周知,单体应用程序,由于其种种不足,几乎不支持敏捷方法。如果你想为一个大型或复杂的业务创建一个软件项目,最好从微服务架构开始。微服务架构是一种灵活的架构,可以显著性地提...

从杯垫到塔罗牌,这些“非主流品类”才是真风口!

说到卖小玩意,想到的不是薄利多销就是卷价格战,毕竟这种模式在国内已经根深蒂固,但跨境电商给了每一位想要做小品类赚大钱的卖家一个机会,从杯垫到塔罗牌,越来越多人,开始靠一些你日常根本不会注意到的小玩意,...

Raid磁盘阵列更换磁盘时另一块盘离线恢复案例

Raid磁盘阵列更换磁盘时另一块盘离线恢复案例(v7000存储数据恢复)【故障描述】客户设备型号为IBMV7000存储,架构为AIX+oracle+V7000存储阵列柜,需要恢复的数据主要存放在阵列...

sql还有类型,大牛黑客必学,你也必须了解

上节课讲到sql注入的基础,上节课讲到的注入方法是联合查询,也称之为”显错注入”,当然,sql注入的方式不单单只是显错注入,还有不同的类型。根据数据库类型;一种是整形注入,一种是字符型注入。其实sql...

Java 性能优化(一)(java性能优化权威指南pdf)

优化目的可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务。优化通常包含两方面的内容:减小代码的体积;提高代码的运行效率。本文讨论的主要是如...

取消回复欢迎 发表评论: