redis未授权漏洞详细利用
攻击机(kali):192.168.52.130
靶机(Ubuntu):192.168.52.134
1.启动redis服务
2.未授权访问漏洞测试
3.利用redis写webshell
前提
1.靶机redis链接未授权,在攻击机上能用redis-cli连上,如上图,并未登陆验证
2.开了web服务器,并且知道路径(如利用phpinfo,或者错误爆路经),还需要具有文件读写增删改查权限
(我们可以将dir设置为一个目录a,而dbfilename为文件名b,再执行save或bgsave,则我们就可以写入一个路径为a/b的任意文件。)
此时为本地搭建,已经知道目录,我们把shell写入/home目录下
在靶机中进行验证
4.利用“公私钥”认证获取root权限
当redis以root身份运行,可以给root账户写入SSH公钥文件,直接通过SSH登录目标服务器。
靶机中开启redis服务:redis-server /etc/redis.conf
在靶机中执行 mkdir /root/.ssh 命令,创建ssh公钥存放目录(靶机是作为ssh服务器使用的)
在攻击机中生成ssh公钥和私钥,密码设置为空:
进入.ssh目录:cd .ssh/,将生成的公钥保存到1.txt
将保存的1.txt写入redis
远程登录靶机的redis服务:redis-cli -h 192.168.52.134并使用 CONFIG GET dir 命令得到redis备份的路径:
将备份路径改为ssh公钥存放目录(一般为/root/.ssh)
设置上传公钥的备份文件名字为authorized_keys:
查看是否更改,进行保存
在kali使用ssh免密码登录靶机:ssh -i id_rsa root@192.168.52.134
利用私钥登录成功redis服务器