当前位置:网站首页 > 网络安全培训 > 正文

渗透测试之地基服务篇:服务攻防之数据库Redis(上)

freebuffreebuf 2021-07-17 308 0

本文来源:

系列文章

专辑:渗透测试之地基篇

简介

渗透测试-地基篇

该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。

请注意

本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。

名言:

你对这行的兴趣,决定你在这行的成就!

一、前言

数据库作为业务平台信息技术的核心和基础,承载着越来越多的关键数据,渐渐成为单位公共安全中最具有战略性的资产,数据库的安全稳定运行也直接决定着业务系统能否正常使用。并且平台的数据库中往往储存着等极其重要和敏感的信息。这些信息一旦被篡改或者泄露,轻则造成企业经济损失,重则影响企业形象,甚至行业、社会安全。可见,数据库安全至关重要。所以对数据库的保护是一项必须的,关键的,重要的工作任务。

通过前几期钓鱼、内网攻防篇章落幕后,引来了服务攻防篇章之数据库渗透篇,不管在外网还是内网环境,只要存在业务系统都存在数据库,在渗透测试对数据库的知识学习是必不可少的,接下来将介绍数据库的渗透基本操作,带小伙伴们了解和学习数据库如何渗透的!

今天会讲解到Redis环境安装、Redis未授权访问、redis写webshell、redis 密钥登录ssh、利用计划任务反弹shell等操作,如果连Redis都不会安装操作提权等,怎么进行下一步的研究Redis数据库安全!怎么拿下对方服务器?

二、Redis简介

REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是字符串(String), 哈希(Map), 列表(list), 集合(sets) 和有序集合(sorted sets)等类型。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。目前最新稳定版本为4.0.8。

Redis 是一个开源的高性能键值数据库。最热门的 NoSql 数据库之一,也被人们称为数据结构服务器。

它最突出的特点就是:

1. 以内存作为数据存储介质,读写数据的效率极高。 2. 跟 memcache 不同的是,储存在 Redis 中的数据是持久化的,断电或重启,数据也不会丢失。 3. 存储分为内存存储、磁盘存储和 log 文件。 4. 可以从磁盘重新将数据加载到内存中,也可以通过配置文件对其进行配置,因此,redis 才能实现持久化。 5. 支持主从模式,可以配置集群,更利于支撑大型的项目。 

1、Redis默认端口

Redis默认配置端口为6379,sentinel.conf配置器端口为26379

2、官方站点

https://redis.io/

http://download.redis.io/releases/redis-3.2.11.tar.gz

4.x安装:

wget http://download.redis.io/releases/redis-4.0.8.tar.gz tar -zxvf redis-4.0.8.tar.gz cd redis-4.0.8 make 

最新版本前期漏洞已经修复,测试时建议安装3.2.11版本。

以下实验使用3.2版本复现!!

三、Redis环境安装

1、 定义

Redis是一个C语言编写的基于key-value类型的高效数据库。

Redis可以执行一些操作将数据保存到内存之中(这也是为什么效率这么高的原因)。

同时redis也可以将内存中的数据写入磁盘之中。

2、 未授权访问原因

主要是因为配置不当,导致未授权访问漏洞。

进一步将恶意数据写入内存或者磁盘之中,造成更大的危害。

配置不当一般主要是两个原理:

(1)配置登录策略导致任意机器都可以登录redis。  (2)未设置密码或者设置弱口令。 

3、 redis服务的搭建

wget http://download.redis.io/releases/redis-3.2.0.tar.gz tar xzf redis-3.2.0.tar.gz cd redis-3.2.0 make 

1626491978_60f24c4a93f137197f3a8.png?16264919806961626491982_60f24c4e78cdbc1b7c270.png?1626491986567

下载redis的压缩包文件,解压缩,切换目录到解压后的redis,进行编译。

4、修改配置文件redis.conf

(1)cp redis.conf ./src/redis.conf (2)bind 127.0.0.1前面加上#号注释掉 注释这行语句,代表任意机器都可以登录redis (3)protected-mode设为no 这只为NO,代表关闭安全设置 (4)启动redis-server ./src/redis-server redis.conf 

1626491992_60f24c5878c17ae729467.png?1626491996592安装成功后,如图所示。默认的配置是使用6379端口,没有密码。这时候会导致未授权访问然后使用redis权限写文件。

5、zsh需要添加环境变量:

export PATH=/root/Desktop/redis-3.2.0/src:$PATH 

1626491998_60f24c5e516f6828f8c4e.png?1626491999017

1626492001_60f24c61919225493c12f.png?1626492001735

6、检查服务

1626492005_60f24c65868d9c576a0c0.png?1626492006971

已开启6379!

四、Redis未授权访问

Redis在大公司被大量应用,通过笔者的研究发现,目前在互联网上已经出现Redis未经授权病毒似自动攻击,攻击成功后会对内网进行扫描、控制、感染以及用来进行挖矿、勒索等恶意行为,早期网上曾经分析过一篇文章“通过redis感染linux版本勒索病毒的服务器”(http://www.sohu.com/a/143409075_765820),如果公司使用了Redis,那么应当给予重视,通过实际研究,当在一定条件下,攻击者可以获取webshell,甚至root权限。

1、连接Redis服务器

(1)交互式方式

redis-cli -h {host} -p {port} 

方式连接,然后所有的操作都是在交互的方式实现,不需要再执行redis-cli

转载请注明来自网盾网络安全培训,本文标题:《渗透测试之地基服务篇:服务攻防之数据库Redis(上)》

标签:数据库安全

关于我

欢迎关注微信公众号

关于我们

网络安全培训,黑客培训,渗透培训,ctf,攻防

标签列表