蚁景科技
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
原创: Mature 合天智汇
原创投稿活动:重金悬赏 | 合天原创投稿等你来
漏洞描述:
2019年11月11号,安全工程师Henry Chen披露了一个Apache Flink未授权上传jar包导致远程代码执行的漏洞。由于Apache Flink Dashboard 默认无需认证即可访问,通过上传恶意jar包并触发恶意代码执行,从而获取shell。
影响范围
<= 1.9.1(最新版本)
环境搭建:
(1) 提前安装好java(需要java8以上)
(2) 下载flink-1.9.1
下载地址:https://www.apache.org/dyn/closer.lua/flink/flink-1.9.1/flink-1.9.1-bin-scala_2.11.tgz
(3) 解压下载的压缩包:
(4) 进去到解压后的目录中,来到其bin目录下:
(5) 启动flink:
(6) 浏览器访问验证(默认端口为8081):
http://172.26.1.108:8081
出现上图即搭建成功.
(7) 设置开机自启(这里折腾了好久,一直起不来.直接source /etc/rc.d/rc.local可以启动,但是重启后并不会启动flink,最后在一篇博客中找到了解决方法)
开机自启设置参考:
https://www.cnblogs.com/aaronlinux/p/6804531.html
漏洞复现:
jar包制作步骤:
(1) 参考https://klionsec.github.io/2016/09/27/revese-shell/#menu文中给出的利用java反弹shell
记得修改ip和端口:
代码:
(2) 利用eclipse将其导出为一个可执行的jar包: a. 点击 File-->Export(导出)
b.然后选择java-->Runnable JAR file
c.然后选择对应的java项目和导出路径以及导出文件名
图片
这样就生成了一个反弹shell的jar包
msf生成jar马:
(1) 利用msfvenom来生成一个jar马:
(2) 打开msf的监听模块,并监听9999端口(要与我们jar马设置的端口一致)
(3) 上传我们生成的jar马并提交后(这部分操作参考下面的复现),可以看到我们成功接收到shell:
本地复现:
(1) 访问目标:
(2) 点击Submit New job,打开上传jar包的页面:
(3) 点击Add New选择我们制作好的jar包:
(4) 我们的机器上监听好端口(我们制作的jar包是直接反弹shell的)
(5) 点击我们刚刚上传的jar包:
(6) 然后点击Submit即可,可以看到我们已经成功接收到了shell:
互联网站点:
fofa关键词:
"apache-flink-dashboard" && country="US"
(1) 随便找一个目标:
(2) 点击Submit new Job,可以看到其可以允许我们上传jar包
(3) 利用flink上传jar包的功能将我们的jar包上传:
(4) 上传后,我们在我们的vps上监听好端口
(5) 然后回到浏览器,选中我们刚刚上传的jar包,然后点击Submitting提交,可以看到我们的vps已经成功接收到了shell
漏洞修复:
建议设置防火墙策略,仅允许白名单ip访问 apache flink服务,并在Web代理(如apache httpd)中增加对该服务的digest认证。
时刻关注官网,等待新版本或补丁更新
参考链接:
flink安装https://s.tencent.com/research/bsafe/841.htmlhttps://mp.weixin.qq.com/s?src=11×tamp=1573607236&ver=1971&signature=roySoRWnz5MgPLuikntTt3rx7rWFdFBOOQfI5rmaOe-d1LWj7NEJxkVBvzfjKtpuihSaRk*EVBoHJ5Roh48qdTm3v2jbU8EW**As8i3ylp3OOskx7IUXnKXqDU5tcUfn&new=1https://klionsec.github.io/2016/09/27/revese-shell/#menu
声明:笔者初衷用于分享与普及网络知识,若读者因此作出任何危害网络安全行为后果自负,与合天智汇及原作者无关!
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
