网络安全漏洞分析之远程代码执行

ApacheFlume是一个用于收集、聚合和移动大量日志数据的软件,最近被发现存在一个远程代码执行漏洞(CVE-2022-34916),影响版本1.4.0到1.10.0。该漏洞源于JMS源配置中未校验的JNDILDAP数据源URI,允许攻击者通过JNDI注入执行恶意代码。官方已发布安全更新,建议用户升级到安全版本以防止攻击。
摘要由CSDN通过智能技术生成

介绍

Apache Flume 是一个分布式的,可靠的,并且可用于高效地收集,汇总和移动大量日志数据的软件。它具有基于流数据流的简单而灵活的体系结构。它具有可调的可靠性机制以及许多故障转移和恢复机制,并且具有健壮性和容错性。它使用一个简单的可扩展数据模型,该模型允许进行在线分析应用程序。

漏洞描述

在 7 月 22 日,Apache 发布安全公告,修复了一个存在于 Apache Flume 中的远程代码执行漏洞,CVE 编号为 CVE-2022-34916。当攻击者控制目标 LDAP 服务器时,如果配置使用带有 JNDI LDAP 数据源 URI 的 JMS 源,Apache Flume 版本 1.4.0 到 1.10.0 很容易受到远程代码执行 (RCE) 攻击。

利用范围

1.4.0 <= Apache Flume <= 1.10.0

漏洞分析

环境搭建

从 GitHub 上下载 1.10.0 版本,导入 IDEA。

项目 jdk 使用 1.8,然后修改 TestIntegrationActiveMQ 测试类中的 DESTINATION_NAME,因为 destinationName 是由 DESTINATION_NAME 定义;修改 JNDI_PREFIX 为 ldap://

img

【一一帮助安全学习,所有资源获取处一一】

①网络安全学习路线

②20 份渗透测试电子书

③安全攻防 357 页笔记

④50 份安全攻防面试指南

⑤安全红队渗透工具包

⑥网络安全必备书籍

⑦100 个漏洞实战案例

⑧安全大厂内部视频资源

⑨历年 CTF 夺旗赛题解析

在 JMSMessageConsumerTestBase.java 中将 destinationLocator = JMSDestinationLocator.CDI;修改为 destinationLocator = JMSDestinationLocator.JNDI;

img

最后运行 TestIntegrationActiveMQ 测试类即可。

漏洞原理

根据 Apache Flume 漏洞描述,可以确定问题是出现在了 JMSMessageConsumer 中。

img

查看 DIff(https://github.com/apache/flume/commit/7fe9af49)记录发现,修复方式是在 JMSMessageConsumer 中的 else 分支下,在 initialContext.lookup(destinationName)前新增了对 destinationName 的校验。

img

那么漏洞触发点已经很明确了,在没有增加校验前,只要进入 JMSMessageConsumer 中 else 分支,控制 destinationName 参数,即可实现 JNDI 注入。

代码分析

知道了漏洞原理后,分析一下代码。

首先在 TestJMSMessageConsumer#testCreateDurableSubscription 初始化了 JMSMessageConsumer 并传入 destinationLocator

img

destinationLocator 的定义是在 JMSMessageConsumerTestBase.java 中。

img

在搭建环境时,我们是将 destinationLocator = JMSDestinationLocator.CDI;修改为了 destinationLocator = JMSDestinationLocator.JNDI;

img

这样配置,是为了在 JMSMessageConsumer 中不满足 if 条件后,能够进入到 else,到达漏洞触发点。

而在官方提供的测试类中,TestIntegrationActiveMQ 类存在 testQueueLocatedWithJndi,将作为 source 点传入参数。

img

修改 DESTINATION_NAME 为恶意 JNDI 地址,将 JNDI_PREFIX 修改为 ldap://

img

通过参数的传入,经过如上分析的流程,到达 else 后,由于没有校验,直接触发 initialContext.lookup,造成 JNDI 注入,从而执行恶意远程代码。

漏洞复现

img

修复建议

官方已发布安全版本,请尽快更新至安全版本

网安&黑客学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果需要可以点击链接免费领取或者滑到最后扫描二v码

👉[CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]安全链接,放心点击

图片

同时每个成长路线对应的板块都有配套的视频提供:

图片

因篇幅有限,仅展示部分资料,朋友们如果需要可以点击链接免费领取或者滑到最后扫描二v码

👉[CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]安全链接,放心点击

视频配套资料&国内外网安书籍、文档

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料

图片
图片
所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包,需要点击下方链接或者保存图片到wx扫描二v码免费领取保证100%免费

👉[CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]安全链接,放心点击

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值