专栏首页贝塔安全实验室Harbor任意注册管理员漏洞复现-CVE-2019-16097

Harbor任意注册管理员漏洞复现-CVE-2019-16097

本文作者:欧根亲王号(贝塔安全实验室-核心成员)

0x01:简介

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器。

镜像的存储harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。harbor在docker distribution的基础上增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。harbor以docker-compose的规范形式组织各个组件,并通过docker-compose工具进行启停。

docker的registry是用本地存储或者s3都是可以的,harbor的功能是在此之上提供用户权限管理、镜像复制等功能,提高使用的registry的效率。Harbor的镜像拷贝功能是通过docker registry的API去拷贝,这种做法屏蔽了繁琐的底层文件操作、不仅可以利用现有docker registry功能不必重复造轮子,而且可以解决冲突和一致性的问题。

0x02:原理概述及危害

CVE-2019-16097漏洞是一个垂直越权漏洞,因注册模块对参数校验不严格,可导致任意管理员注册。攻击者注册管理员账号后可以接管Harbor镜像仓库,从而写入恶意镜像,最终可以感染使用此仓库的客户端等。

0x03:测试环境搭建

系统环境:centos

官方容器:docker

漏洞软件:harbor

Docker在centos7以上直接yum安装即可这里不做描述

harbor 的安装从https://github.com/goharbor/harbor/releases中选择相应的版本,这里用到的是1.71。下载后解压得到

修改harbor.cfg中的honstaname处为本机IP。

然后使用./install.sh进行安装,安装成功后使用docker-compose start启动。启动成功如图所示:

这样,整个环境搭建完毕

0x04:实验环境

攻击机:kali

受害机:centos7,harbor1.71

0x05:攻击描述

1、访问受害连接查看软件版本是否为受攻击版本,受攻击版本为Harbor 1.7.6之前版本和Harbor 1.8.3之前版本。

2、使用burp进行代理抓包,并使用注册功能注册任意账户

3、抓紧注册数据,并添加poc

这里是正常注册时抓取的数据

添加poc代码"has_admin_role":true

由此返回值201 提示创建成功

0x06:验证是否成功

新建用户test002为管理员用户

0x07:防御及修复方法

  1. 关闭允许自行注册功能(Allow Self-Registration
  2. 限制源IP,只允许可信IP访问
  3. 升级到1.7.6及以上版本或者1.8.3及以上版本

0x08:文章参考来源

https://cert.360.cn/report/detail?id=57ef85f85ae82a77070ccbba2330c1a0

本文分享自微信公众号 - 贝塔安全实验室(BetaSecLab),作者:欧根亲王号

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 记一次有趣的挖矿病毒

    本病毒使用了去符号表、敏感信息混淆、int 0x80执行系调函数、sh -c 执行bash脚本获取相关信息等技术来做免杀处理,但是不足的点也很明显:

    贝塔安全实验室
  • 逻辑漏洞挖掘经验

    简单说明一下:逻辑漏洞可以分为很多种web逻辑漏洞、业务逻辑漏洞、支付逻辑漏洞等等 其中有部分漏洞都是大体相似的,所以鄙人就不再做归类总结了

    贝塔安全实验室
  • 内网渗透-代理篇(一)

    声明:公众号大部分文章来自团队核心成员和知识星球成员,少部分文章经过原作者授权和其它公众号白名单转载。未经授权,严禁转载,如需转载,请联系开白!

    贝塔安全实验室
  • Docker 私有仓库搭建

    在 Docker 中,当我们执行 docker pull xxx 的时候 ,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是...

    程序员果果
  • 如何搭建及使用 docker registry

    本文通过 Docker Compose 搭建了一个简单的 registry 环境,使用的是 docker hub官方镜像,registry 镜像版本 regis...

    腾讯云容器服务团队
  • openshift/origin工作记录(8)——docker镜像垃圾回收

    版权声明:本文为博主原创文章,未经博主允许不得转载。博客地址:http://blog.csdn.net/huq...

    胡了了
  • docker 实验环境配置

    将boot2docker.iso到用户目录下 C:\Users\wangsen\.docker\machine\cache

    birdskyws
  • 详解docker实战之搭建私有镜像仓库 - kurbernetes

    justmine
  • 32bit-Docker跑32bit-Ubuntu14.04

    AlicFeng
  • Docker | 教你搭建属于自己的镜像仓库

    学了这么久的Docker,相信大家也根据自己的需求构建了不少的镜像,但是打包,上传镜像太过麻烦,如果有一个属于自己的仓库来存放岂不美哉?

    咸鱼学Python

扫码关注云+社区

领取腾讯云代金券