MENU

Hacking Docker:Registry API未授权访问

April 10, 2017 • Security

前言

docker pull HOST:PORT/IMAGE_NAME

mMvYBvj.png

Exploit

环境

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

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

QZFNVzY.png

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

jiyMRvJ.png

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

ABFFjmi.png

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

EZV7jiU.png

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

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

63qQzqY.png

解压文件发现敏感信息:

QbmI3qI.png

bQV7zqZ.png

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

r6beqqy.png

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

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

修复

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

参考

Archives QR Code
QR Code for this page
Tipping QR Code