介绍
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://
①网络安全学习路线
②20 份渗透测试电子书
③安全攻防 357 页笔记
④50 份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100 个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年 CTF 夺旗赛题解析
在 JMSMessageConsumerTestBase.java 中将 destinationLocator = JMSDestinationLocator.CDI;修改为 destinationLocator = JMSDestinationLocator.JNDI;
最后运行 TestIntegrationActiveMQ 测试类即可。
漏洞原理
根据 Apache Flume 漏洞描述,可以确定问题是出现在了 JMSMessageConsumer 中。
查看 DIff(https://github.com/apache/flume/commit/7fe9af49)记录发现,修复方式是在 JMSMessageConsumer 中的 else 分支下,在 initialContext.lookup(destinationName)前新增了对 destinationName 的校验。
那么漏洞触发点已经很明确了,在没有增加校验前,只要进入 JMSMessageConsumer 中 else 分支,控制 destinationName 参数,即可实现 JNDI 注入。
代码分析
知道了漏洞原理后,分析一下代码。
首先在 TestJMSMessageConsumer#testCreateDurableSubscription 初始化了 JMSMessageConsumer 并传入 destinationLocator
destinationLocator 的定义是在 JMSMessageConsumerTestBase.java 中。
在搭建环境时,我们是将 destinationLocator = JMSDestinationLocator.CDI;修改为了 destinationLocator = JMSDestinationLocator.JNDI;
这样配置,是为了在 JMSMessageConsumer 中不满足 if 条件后,能够进入到 else,到达漏洞触发点。
而在官方提供的测试类中,TestIntegrationActiveMQ 类存在 testQueueLocatedWithJndi,将作为 source 点传入参数。
修改 DESTINATION_NAME 为恶意 JNDI 地址,将 JNDI_PREFIX 修改为 ldap://
通过参数的传入,经过如上分析的流程,到达 else 后,由于没有校验,直接触发 initialContext.lookup,造成 JNDI 注入,从而执行恶意远程代码。
漏洞复现
修复建议
官方已发布安全版本,请尽快更新至安全版本
网安&黑客学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,朋友们如果需要可以点击链接免费领取或者滑到最后扫描二v码
👉[CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享](安全链接,放心点击)
同时每个成长路线对应的板块都有配套的视频提供:
因篇幅有限,仅展示部分资料,朋友们如果需要可以点击链接免费领取或者滑到最后扫描二v码
👉[CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享](安全链接,放心点击)
视频配套资料&国内外网安书籍、文档
当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料
所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接或者保存图片到wx扫描二v码免费领取 【保证100%免费
】
👉[CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享](安全链接,放心点击)