AWS - ECR Enum

AWS - ECR Enum

HackTricksをサポートする

ECR

基本情報

Amazon Elastic Container Registry (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プライベートレジストリは、EKS、ECSなどの他のAWSサービスと簡単に統合できます。

  • 他のプライベートレジストリオプション

  • タグの不変性列はそのステータスを示し、タグの不変性が有効になっている場合、既存のタグを持つイメージのプッシュが上書きされるのを防ぎます

  • 暗号化タイプ列はリポジトリの暗号化プロパティを示し、AES-256などのデフォルトの暗号化タイプやKMSが有効な暗号化を表示します。

  • プルスルーキャッシュ列はそのステータスを示し、プルスルーキャッシュのステータスがアクティブであれば、外部のパブリックリポジトリのリポジトリをプライベートリポジトリにキャッシュします。

  • 特定の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

参考文献

HackTricksをサポートする

Last updated