AWS - ECR Enum

Reading time: 6 minutes

AWS - ECR Enum

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

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> 部分は管理者によって覚えやすい別の文字列に変更できます。

リポジトリ

これらは プライベートレジストリ または パブリック のイメージです。

note

リポジトリにイメージをアップロードするには、ECRリポジトリがイメージと同じ名前である必要があります

レジストリ & リポジトリポリシー

レジストリとリポジトリには、他のプリンシパル/アカウントに権限を付与するために使用できるポリシーもあります。たとえば、次のリポジトリポリシーの画像では、組織全体の任意のユーザーがイメージにアクセスできることがわかります。

列挙

bash
# 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

参考文献

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする