
该项目会获取一个 Docker 注册表,并对其目录中每个镜像的 manifest 和 configuration 进行掠夺。
它使用 Google 的 crane 命令包,该包应遵循 Docker 的 keychain 语义。
如果你想覆盖此行为,只需按照 https://github.com/google/go-containerregistry/tree/master/pkg/authn/k8schain 中的描述更改 authn.DefaultKeychain 即可。
git clone https://github.com/nccgroup/go-pillage-registries.git
cd go-pillage-registries
go install ./...
$ pilreg
Usage:
pilreg <registry> [flags]
Flags:
-c, --cache string Path to cache image layers (optional, only used if images are pulled)
-h, --help help for pilreg
-i, --insecure Fetch Data over plaintext
-r, --repos strings list of repositories to scan on the registry. If blank, pilreg will attempt to enumerate them using the catalog API
-o, --results string Path to directory for storing results. If blank, outputs configs and manifests as json object to Stdout.(must be used if 'store-images` is enabled)
-k, --skip-tls Disables TLS certificate verification
-s, --store-images Downloads filesystem for discovered images and stores an archive in the output directory (Disabled by default, requires --results to be set)
-t, --tags strings list of tags to scan on each repository. If blank, pilreg will attempt to enumerate them using the tags API
-w, --workers int Number of workers when pulling images. If set too high, this may cause errors. (optional, only used if images are pulled) (default 8)
在 示例目录 中有一个镜像示例,该 Docker 镜像是一个包含机密的服务器。