借鉴:Redis未授权漏洞复现及利用(window,linux)_windows下redis未授权访问漏洞修复-CSDN博客
Redis是远程字典服务(是一个开源使用ANSI C语言编写的、可基于内存亦可持久化的日志型、Key-Vaule数据库、并提供多种语言API),redis默认绑定端口是0.0.0.0:6379,一般密码为空,如果没有设置密码或者密码特别简单(弱密码),会被直接未授权访问,读取数据甚至利用Redis自身的命令进行文件写入
真实场景下信息收集:使用抓包工具抓取redis服务器发送的INFO命令的Payload(是redis自身提供的命令),然后在使用Socket(请求发送功能)向目标主机端口发送Payload看是否会返回redis相关版本信息判断是否有开启redis服务
首先先在Windows和Linux虚拟机上安装Redis,并运行
这是kali靶机
这是win10测试机
进行redis直接连进kali靶机可以进行下一波操作
上传WebShell
利用redis的特性将redis的存放目录更改为想上传文件的位置
然后使用可持久化的dbfilename存放文件
并在文件中写入webshell后门完成恶意后门上传
还可以在 /var/www/html web服务器目录里面动手脚
在其中加上一句话木马即可用菜刀、御剑等直接连接(一句话木马需要在可以web服务器可以解析php代码的情况下)
SSH秘钥链接
ssh远程加密登录(秘钥登录),给一串随机字符串给访问的客户端,让客户端用自己的私钥加密然后发送回来服务器,服务器用自身的公钥解密正确就连接(流行的RSA加密方案)
1.客户端生成RSA公钥和私钥
2.客户端利用redis未授权(在root权限下)可以找到/root/.ssh目录存放自己的公钥要服务器里
3.客户端对服务器发送请求,拿到随机字符串加密
4.服务器使用我们放入的公钥解密就此破解提权
windows(利用Git Bash Here)生成密钥
利用Crontab反弹shell
crontab(是用来定时执行某些任务)将命令放入指定文件里程序会定期执行,相当于每隔一段时间自动执行命令(持久化渗透)
nc -lvp 8888 监听8888端口(等待反弹shell)
利用redis上传反弹shell
主从复制反弹Shell
利用msf破解redis密码
当redis有简易弱密码时使用msf(攻击工具,有一些针对出现漏洞的exp(利用))
相当于字典遍历密码