AWS - ECR Enum

AWS - ECR 枚举

从零开始学习 AWS 黑客技术,成为专家 htARTE(HackTricks AWS 红队专家)

支持 HackTricks 的其他方式:

ECR

基本信息

Amazon 弹性容器注册表(Amazon ECR)是一种托管容器镜像注册表服务。它旨在提供一个环境,使客户可以使用众所周知的接口与其容器镜像进行交互。具体而言,支持使用 Docker CLI 或任何首选客户端,从而可以进行推送、拉取和管理容器镜像等活动。

ECR 由 2 种对象组成:注册表存储库

注册表

每个 AWS 帐户都有 2 个注册表:私有公共

  1. 私有注册表

  • 默认为私有:存储在 Amazon ECR 私有注册表中的容器镜像仅可由授权用户在您的 AWS 帐户内访问,或者已被授予权限的用户访问。

  • 私有存储库的 URI 遵循格式 <account_id>.dkr.ecr.<region>.amazonaws.com/<repo-name>

  • 访问控制:您可以使用IAM 策略控制对私有容器镜像的访问,并可以基于用户或角色配置细粒度权限。

  • 与 AWS 服务集成:Amazon ECR 私有注册表可以轻松与其他 AWS 服务集成,如 EKS、ECS...

  • 其他私有注册表选项

  • 标签不变性列出其状态,如果启用了标签不变性,将防止具有现有标签的图像覆盖推送

  • 加密类型列出存储库的加密属性,显示默认加密类型,如 AES-256,或启用了KMS加密。

  • 拉取缓存列出其状态,如果拉取缓存状态为 Active,则会将外部公共存储库中的存储库缓存到您的私有存储库

  • 可以配置特定的IAM 策略以授予不同的权限

  • 扫描配置允许扫描存储在存储库中的图像中的漏洞。

  1. 公共注册表

  • 公共可访问性:存储在 ECR 公共注册表中的容器镜像可供任何人在互联网上无需身份验证访问

  • 公共存储库的 URI 类似于 public.ecr.aws/<random>/<name>。尽管 <random> 部分可以由管理员更改为另一个更容易记住的字符串。

存储库

这些是私有注册表公共注册表中的图像

请注意,为了将图像上传到存储库,ECR 存储库的名称需要与图像相同

注册表和存储库策略

注册表和存储库还有可用于授予其他主体/帐户权限的策略。例如,在以下存储库策略图像中,您可以看到整个组织的任何用户将能够访问图像:

枚举

# Get repos
aws ecr describe-repositories
aws ecr describe-registry

# Get image metadata
aws ecr list-images --repository-name <repo_name>
aws ecr describe-images --repository-name <repo_name>
aws ecr describe-image-replication-status --repository-name <repo_name> --image-id <image_id>
aws ecr describe-image-scan-findings --repository-name <repo_name> --image-id <image_id>
aws ecr describe-pull-through-cache-rules --repository-name <repo_name> --image-id <image_id>

# Get public repositories
aws ecr-public describe-repositories

# Get policies
aws ecr get-registry-policy
aws ecr get-repository-policy --repository-name <repo_name>

未经身份验证的枚举

AWS - ECR Unauthenticated Enum

提权

在以下页面中,您可以查看如何滥用 ECR 权限以提升特权

AWS - ECR Privesc

漏洞利用后

AWS - ECR Post Exploitation

持久性

AWS - ECR Persistence

参考资料

从零开始学习 AWS 黑客技术,成为专家 htARTE(HackTricks AWS 红队专家)

支持 HackTricks 的其他方式:

Last updated