Hacking Docker:Registry API 未授权访问

前言

docker pull HOST:PORT/IMAGE_NAME

image001.png

Exploit

环境

  • local.example.com (127.0.0.1)
  • port 30000

GET 请求/v1 /v2确认 Registry API 版本:

image003.png

确定版本后查看 repos 列表,/_catalog:

image005.png

例如 testrepo1,/REPO_NAME/tags/list查看标签:

image007.png

确定标签 (v1v2) 后使用/manifests/v2下载文件:

image009.png

使用终端下载文件v2//blobs/sha256:/:

https://localhost:30000/v2/testrepo1/blobs/sha256:4b981f68920b27d3a35992f3e0343acfc90f52dff050328f38d03f16ba984d34

image011.png

解压文件发现敏感信息:

image013.png

image015.png

自动化脚本:https://github.com/NotSoSecure/docker_fetch/

image017.png

脚本会将所有 gzip 压缩的 blob 保存在用户设定的目录中, 可以使用以下命令一次性解压:

for i in *.tar.gz; do tar -xzvf $i; done

网络空间调查

20170319171846.png

修复

  • 添加身份验证
  • 启用签名和验证
  • 使用 TLS

参考

标签: docker, registry api, 未授权访问

添加新评论