首页 > 其他分享 >网络安全漏洞分析远程代码执行

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

时间:2022-11-06 22:03:02浏览次数:78  
标签:网络安全 destinationLocator JNDI 漏洞 代码执行 Apache JMSMessageConsumer

介绍

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

简笔画 http://j.dianjilingqu.com/

漏洞分析

环境搭建

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

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

【一一帮助安全学习,所有资源获取处一一】
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

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

image.png

最后运行TestIntegrationActiveMQ 测试类即可。大写数字转换 https://daxie.dianjilingqu.com/

漏洞原理

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

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

image.png

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

代码分析

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

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

image.png

destinationLocator的定义是在JMSMessageConsumerTestBase.java中。
image.png

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

image.png

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

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

image.png

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

image.png

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

漏洞复现

image.png

修复建议

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

转自:程序员 https://www.dianjilingqu.com/

标签:网络安全,destinationLocator,JNDI,漏洞,代码执行,Apache,JMSMessageConsumer
From: https://www.cnblogs.com/yuanyuzhou/p/16864285.html

相关文章

  • 漏洞挖掘学习
    引言自己学习Java安全也有半年了,但是学了又好像没有学还是停留在复现漏洞用脚本的水平,自己也很困惑,就找点文章看看。明确观点问题怕麻烦,觉得环境搭建困难,操作麻烦看......
  • 【Azure 环境】Azure 云环境对于OpenSSL 3.x 的严重漏洞(CVE-2022-3602 和 CVE-2022-3
    问题描述引用报告:(OpenSSL3.x曝出严重漏洞: ​​​https://www.ctocio.com/ccnews/37529.html​​ )最近OpenSSL3.x爆出了严重安全漏洞,分别是 CVE-2022-3602和 CVE-202......
  • 【Azure 环境】Azure 云环境对于OpenSSL 3.x 的严重漏洞(CVE-2022-3602 和 CVE-2022-3
    问题描述引用报告:(OpenSSL3.x曝出严重漏洞:https://www.ctocio.com/ccnews/37529.html )最近OpenSSL3.x爆出了严重安全漏洞,分别是 CVE-2022-3602和 CVE-2022-3786.......
  • 18-网络安全与iptables
    网络安全与iptables防火墙的分类按保护范围划分主机防火墙:服务范围为当前一台主机网络防火墙:服务范围为防火墙一侧的局域网按实现方式划分:硬件防火墙:在硬件级别实现部分功能......
  • 【漏洞学习及复现】Log4j2(CVE-2021-44228)漏洞复现
    Log4j2漏洞(CVE-2021-44228)Log4j2ApacheLog4j2是一个基于Java的日志记录工具。该工具重写了Log4j框架,并且引入了大量丰富的特性。该日志框架被大量用于业务系统开......
  • MS17_010漏洞利用
    用到的试验机kaliip192.168.1.106windows2008  ip  192.168.1.107用kali扫描靶机端口   这里看到445端口是开放的,可以利用17_010使用命令msfconsole启......
  • 测量业务层接口执行效率(万次核心代码执行效率)
    1、例子  2、分析:(1)业务功能:业务层接口执行前后分别记录时间,求差值得到执行效率;(2)通知类型选择前后均可以增强的类型——环绕通知。 补充:当前测试的接口执行效率......
  • Apache shiro 反序列化漏洞
    Apacheshiro简介ApacheShiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从......
  • 【THM】Exploit Vulnerabilities(利用漏洞)-学习
    本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/exploitingavulnerabilityv2通过学习相关知识点:了解一些利用漏洞的工具、技术和资源。介绍在本文中,我们将......
  • 东进云服务器密码机荣获“2022中国网络安全行业最具竞争力产品”奖
    11月3日,由赛迪网、《数字经济》杂志联合主办的2022(第五届)行业信息化技术创新发展峰会在北京成功举办。大会现场重磅发布《2022行业信息化竞争力百强-2022行业信息化推优成......