redisRCE复盘"

admin 2026-10-16 06:56:36 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

redisRCE复盘

原创

云深不知処
云深不知処

云深不知処

2026年9月29日 18:30
湖北

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

一次比较特殊的任务,渗透+取证+复盘,从 Redis 未授权访问进入边界跳板,横向打通配置中心、数据库、消息队列、任务调度与业务 API,最终获取全量服务凭据。更关键的是,发现目标内网已被第三方攻击者先行渗透,留下活跃后门。


一、执行摘要

本次行动以某外部跳板机(下称“边界跳板”)为入口,完成了一条从 Redis 未授权 RCE 到 内网工控平台全量凭据窃取 的完整攻击链,并还原出一条已存在的第三方入侵链。

核心结论:

  1. 初始访问:边界跳板的 Redis 服务(5.0.8)未授权,requirepass 为空、bind 0.0.0.0,且 CONFIG 已被预设为 /root/.ssh + authorized_keys。利用该路径写入测试公钥并触发 BGSAVE,随后以对应私钥 SSH 免密登录,获得跳板 root 权限。
  2. 横向侦察:经跳板访问内网配置中心(Nacos 2.x),auth_enabled=false 可匿名读取全量配置,一次性窃取 OSS AK/SK、MySQL root、RabbitMQ、EMQX、海康、微信、CNPC、市局对接等全套凭据。
  3. 数据面取证:Redis Cluster 6 节点全部未授权,且发现 3 类 CONFIG 篡改已预设远程代码执行路径(SSH 公钥写入 / crontab 写入 / cron.d 写入)。
  4. 第三方痕迹:配置中心 history 与 Redis 键空间均发现第三方攻击者先于本队留下的篡改痕迹(攻击者 IP 已脱敏;Redis 键含 SICIEI:DEPT_DATA=pwn 等)。
  5. 第三方活跃后门:跳板机存在第三方活跃 cron 后门,回连某 VPS,后门仍在触发,回连被阻断,载荷未落地。
  6. 应用与任务调度面:业务 API 全量未授权 + 明文凭据泄露;XXL-JOB 执行器硬编码 token → 3 主机 root 命令执行。
  7. 澄清:/root/.ssh/authorized_keys 为我方测试写入,非第三方后门;写入途径为 Redis 未授权 RCE。

一句话:边界跳板既是被害人又是加害工具——第三方已用 Redis 未授权在其上植入 cron 后门;我方经同一路径写入 SSH 公钥进入跳板,横向打通五类中间件。


二、攻击链全景

[初始访问] Redis 未授权(边界跳板:7000/7001)  → CONFIG dir=/root/.ssh dbfilename=authorized_keys  → SET 我方公钥 → BGSAVE  → ssh -i atk root@边界跳板  → 跳板 foothold        │        ▼[侦察] 内网 10.0.0.0/24 端口/服务测绘        │   ┌────┼───────────────────────────────┬─────────────────┬─────────────┐   ▼    ▼                               ▼                 ▼             ▼[Nacos 未授权]      [Redis 未授权]     [MySQL 直读]     [业务 API 未授权]  [XXL-JOB] 全量配置导出 →      dir/dbfilename     root 直连         /v3/api-docs 358   token 硬编码 凭据金矿           预设/复用写盘      全权限            明文凭据泄露       → 3 主机 root   │                                       │                 │   └──────────────┬────────────────────────┴─────────────────┘                  ▼        [第三方入侵链还原] 跳板 cron 后门        内容: 每分钟 curl 回连某 VPS 拉取载荷        现状: 回连被阻断,载荷未落地

三、分阶段复盘

阶段 0:初始访问——Redis 未授权写入 SSH 公钥

事实:边界跳板 Redis Cluster 6 节点(3 主 3 从)全部未授权,requirepass 为空,bind 0.0.0.0。其中两个节点 CONFIG 已被预设为 dir=/root/.ssh、dbfilename=authorized_keys。

利用:

  • 通过 Redis 未授权连接,CONFIG SET dir=/root/.ssh、dbfilename=authorized_keys
  • SET 写入测试公钥,BGSAVE 落盘
  • 使用对应私钥 SSH 免密登录 root@边界跳板

证据:成功获得 root shell,主机已连续运行 184 天,负载极低。

关键点:该 /root/.ssh/authorized_keys 为我方测试写入,非第三方后门。后续取证阶段遵循只读约束,未再执行写操作。


阶段 1:内网侦察与攻击面测绘

经跳板确认内网资产:

资产 服务 端口 认证状态
10.0.0.176 Nacos 2.x 8848 未授权
10.0.0.111 RabbitMQ 15672/5672 guest 可管理
10.0.0.111 EMQX Dashboard 18083 admin 明文
10.0.0.13 MySQL 3306 root 弱口令
10.0.0.151 MySQL 3306 root 弱口令
边界跳板 Redis master 7000/7001 无密码
其他 Redis 节点 master/slave 7000/7001 无密码

关键发现:本地直连内网不可达,必须经跳板,确立跳板的战略价值。


阶段 2:Nacos 未授权配置窃取——凭据核弹

匿名枚举命名空间:发现 produce 命名空间(描述为“华为云生产”),含 20 条配置。

匿名枚举用户:泄露 9 个用户 bcrypt hash,含 nacos_admin。

全量配置导出:无 token 直接读取 20 条配置,获取:

服务 泄露内容
阿里云 OSS AK/SK、Bucket 名称、Endpoint
MySQL (data) 内网地址、root 凭据
MySQL (system) 内网地址、root 凭据
Druid 控制台 登录用户名密码
RabbitMQ 用户名、密码、vhost
EMQX/MQTT Broker 地址、用户名密码、API 凭据
海康 host、appKey、appSecret
微信 appId、appSecret、模板 ID
open-api 密钥
CNPC apiSecret、用户名密码
市局对接 baseUrl、认证编号

攻击者痕迹:配置中心 history 显示,外部 IP 曾在 XX-11、XX-17 改写配置。

此时能力:read(config) + cred(svc,priv)(11 类服务凭据)。


阶段 3:MySQL 数据库直读

使用 Nacos 中获取的 root 凭据,直连两台 MySQL(8.0.33):

  • 10.0.0.151:业务库、配置库、XXL-JOB 库
  • 10.0.0.13:数据仓库,但两业务库 309 表全部为空架构

负结果:核心业务库为空,无业务数据可窃取。


阶段 4:Redis Cluster 取证与第三方 CONFIG 痕迹

6 节点 Redis 全部未授权,CONFIG 被预设为 3 类写盘路径:

节点 dir dbfilename 预设 RCE 路径
节点 A /root/.ssh authorized\_keys SSH 公钥写入
节点 B /etc/cron.d exploit cron.d 写入
节点 C /var/spool/cron root crontab 写入

攻击者写入键:{z}、{z}test、SICIEI:DEPT_DATA=pwn。


阶段 5:跳板主机取证——第三方入侵链

跳板机存在 4 个恶意 cron 文件(均由 Redis BGSAVE 写入,RDB 格式),内容为每分钟回连某 VPS 拉取载荷。

现状:后门仍在触发,/var/log/cron 持续记录,ss 抓到 curl 进程处于 SYN-SENT,回连被阻断,载荷未落地。


阶段 6:内网应用层——业务 API 未授权

业务 API 服务(Spring Boot)未授权暴露,/v3/api-docs 泄露 358 个接口。无 Authorization 头即可调用:

  • /lcPassword/getLcPassword:返回 8 组明文账号密码
  • /ossFiles/getUrl:返回服务端签发的预签名 URL

负结果:业务数据全空,OSS AK 已失效。


阶段 7:XXL-JOB 执行器命令执行

硬编码 accessToken 在 jar 包配置中,三个执行器 /run + GLUE_SHELL 获 root:

  • 10.0.0.194 → 主机 1(uid=0)
  • 10.0.0.111 → 主机 2(uid=0)
  • 10.0.0.112 → 主机 3(uid=0)

阶段 8:云侧/消息面负结果

  • 阿里云 OSS:AK 已吊销,Bucket 非公共读,预签名 URL 亦失效
  • EMQX 管理 API:凭据全部 401
  • MQTT Broker:凭据有效但零消息投递,ACL 限制

四、能力原语池终态

原语 来源 状态
read(config) Nacos 未授权 ✅ 已验证(全量配置)
cred(svc,priv) Nacos 配置 ✅ 已验证(11 类服务凭据)
read(path) Redis CONFIG GET ✅ 已验证
write(path) Redis CONFIG 篡改 ✅ 已验证(写入 SSH 公钥)
exec(cmd) Redis RCE → SSH ✅ 已验证(root 跳板)
read(msg)/write(msg) RabbitMQ guest ⚠️ 待验证
cred(db) MySQL root ✅ 凭据已验证
s3rver-side req forgery/sqli()/idor(id) — ❌ 未验证

链式等式:read(config) → cred(db) → write(path) → exec(cmd) —— 已验证达成。


五、关键转折点复盘

  1. Redis 未授权 + CONFIG 可写:直接导致 /root/.ssh/authorized_keys 被写入,攻击者无需 SSH 凭据即可获得跳板 root。
  2. Nacos 未授权 = 凭据核弹:一个未授权读端,泄露全平台密钥。
  3. SPA 前端逆向(本次未涉及但通用):若认证头非标准,可从 JS 中寻找线索。
  4. 多租户/多节点复用:Redis Cluster 中多个节点 CONFIG 被预设,攻击者可批量利用。
  5. 第三方痕迹共存:Nacos history + Redis 键 + 跳板 cron 后门证实他方已入网,需与蓝队确认时间线归属。

六、失败路径与避坑索引

失败项 现象 原因
本地直连 Nacos HTTP=000 内网不可达,须跳板
Redis 取证脚本 超时无输出 首节点连接阻塞
Nacos users 查询 HTTP 500 缺 search 参数
RabbitMQ 默认密码 HTTP 401 默认密码已改
MySQL 业务库 双库 309 表全空 空架构库
阿里云 OSS AK 已吊销 凭据轮换
EMQX 管理 API 凭据全失败 已排除
MQTT 设备数据订阅 零投递 ACL 限制
业务数据 total:0 无业务数据

七、风险评级与防守建议

  • 边界跳板已被第三方入侵并植入持久化:cron 后门,回连某 VPS。当前回连被阻断仅为侥幸,一旦恢复可达即会落地二次载荷。
  • 初始访问根因:Redis 未授权 + CONFIG 可写,直接导致 SSH 公钥被写入。
  • 内网横向面极宽:Redis/MySQL/Nacos/RabbitMQ/XXL-JOB/业务 API 全部缺省凭据或未授权,任一入口即可全内网沦陷。
  • 敏感资产:为凭据与接口暴露(非海量业务数据)——数据库与业务表为空,OSS 凭证已轮换。

建议优先级:

  1. 处置第三方后门 + 溯源
  2. 全量轮换默认凭据
  3. 中间件端口收敛至内网 + 鉴权
  4. 业务 API 服务端强制鉴权
  5. Redis 禁用 CONFIG 写盘路径并强制鉴权

八、复盘要点

  1. 信任边界坍塌:Redis 未授权直接写 SSH 公钥获得跳板 root,再穿透至核心配置中心,内网横向零隔离。
  2. 配置中心未授权 = 凭据核弹:Nacos 一个未授权读端,泄露全平台密钥。
  3. Redis Cluster 老漏洞新利用:5.0.8 CONFIG SET 写 SSH/cron 是经典链,第三方已先行篡改,我方复用同一路径进入。
  4. 第三方痕迹共存:Nacos history + Redis 键 + 跳板 cron 后门证实他方已入网,需与蓝队确认时间线归属。
  5. {z} hash tag 技巧:说明攻击者熟悉 Redis Cluster slot 定向,非脚本小子级别。
  6. 边界一台“跳板机既是被害人又是加害工具”:第三方已用 Redis 未授权在其上植入 cron 后门;我方经同一路径写入 SSH 公钥进入内网,横向打通五类中间件。

redisRCE复盘" 网络安全文章

redisRCE复盘"

本次渗透复盘从Redis未授权RCE进入边界跳板,横向打通Nacos配置中心、MySQL、RedisCluster、业务API与XXL-JOB,获取全量服务凭据,并发现第三方攻击者已先行渗透留下活跃cron后门。建议优先处置后门、全量轮换凭据、收敛端口并强制鉴权,Redis禁用CONFIG写盘路径。
个人信息保护评估师(PIPA)白皮书" 网络安全文章

个人信息保护评估师(PIPA)白皮书"

该文档为个人信息保护评估师PIPA白皮书,属于网安培训资料,发布于2026年9月29日北京。文档主题聚焦个人信息保护评估师认证培训,但内容较为简略,缺乏具体技术细节与操作指导,仅提供培训信息框架,未展开评估方法论或实践案例,整体信息密度较低。
CCSP工作经验要求" 网络安全文章

CCSP工作经验要求"

本文介绍CCSP认证的工作经验要求,考生需具备至少5年IT工作经验,其中含3年网络安全领域经验,且1年需覆盖六大知识域之一。学历或CCSK证书最多可抵扣1年经验,持有CISSP可豁免全部要求。未满足经验要求者可成为ISC2准会员,在6年内补齐经验。全职兼职实习经验均可计入。
BrzCrypt勒索软件深度分析:从攻击链识别到联动防御" 网络安全文章

BrzCrypt勒索软件深度分析:从攻击链识别到联动防御"

BrzCrypt勒索软件深度分析报告指出,该家族通过RDP暴破获取初始访问,窃取凭据后横向移动,最终以ChaCha20与RSA-4096混合加密批量加密高价值文件,攻击链完整且离线加密。报告强调企业需从收敛远程入口、强化身份权限、部署终端行为检测、隔离东西向流量、联动响应并验证可信备份六方面构建防线,将单点入侵控制在单点,避免演变为全网停摆。
评论:0   参与:  0