AWS - CodeBuild Post Exploitation

Support HackTricks

CodeBuild

For more information, check:

AWS - Codebuild Enum

Abuse CodeBuild Repo Access

CodeBuild를 구성하려면 사용할 코드 저장소에 대한 액세스가 필요합니다. 여러 플랫폼이 이 코드를 호스팅할 수 있습니다:

CodeBuild 프로젝트는 구성된 소스 제공자에 IAM 역할 또는 github/bitbucket 토큰 또는 OAuth 액세스를 통해 액세스할 수 있어야 합니다.

CodeBuild에 대한 높은 권한을 가진 공격자는 구성된 저장소와 설정된 자격 증명이 액세스할 수 있는 다른 저장소의 코드를 유출하기 위해 이 구성된 액세스를 악용할 수 있습니다. 이를 위해 공격자는 구성 자격 증명이 액세스할 수 있는 각 저장소의 URL을 변경하기만 하면 됩니다(aws 웹이 모두 나열해 줄 것입니다):

그리고 각 저장소를 유출하기 위해 Buildspec 명령을 변경합니다.

그러나 이 작업은 반복적이고 지루하며, github 토큰이 쓰기 권한으로 구성된 경우 공격자는 그 권한을 (악용)할 수 없습니다. 정말 그럴까요? 다음 섹션을 확인하세요.

Leaking Access Tokens from AWS CodeBuild

CodeBuild에서 Github과 같은 플랫폼에 부여된 액세스를 유출할 수 있습니다. 외부 플랫폼에 대한 액세스가 부여되었는지 확인하십시오:

aws codebuild list-source-credentials
AWS Codebuild - Token Leakage

codebuild:DeleteProject

공격자는 전체 CodeBuild 프로젝트를 삭제할 수 있으며, 이는 프로젝트 구성의 손실을 초래하고 프로젝트에 의존하는 애플리케이션에 영향을 미칠 수 있습니다.

aws codebuild delete-project --name <value>

잠재적 영향: 프로젝트 구성 손실 및 삭제된 프로젝트를 사용하는 애플리케이션의 서비스 중단.

codebuild:TagResource , codebuild:UntagResource

공격자는 CodeBuild 리소스에서 태그를 추가, 수정 또는 제거하여 조직의 비용 할당, 리소스 추적 및 태그 기반 접근 제어 정책을 방해할 수 있습니다.

aws codebuild tag-resource --resource-arn <value> --tags <value>
aws codebuild untag-resource --resource-arn <value> --tag-keys <value>

잠재적 영향: 비용 할당, 리소스 추적 및 태그 기반 접근 제어 정책의 중단.

codebuild:DeleteSourceCredentials

공격자는 Git 저장소의 소스 자격 증명을 삭제하여 저장소에 의존하는 애플리케이션의 정상적인 기능에 영향을 미칠 수 있습니다.

aws codebuild delete-source-credentials --arn <value>

Potential Impact: 영향을 받은 저장소의 소스 자격 증명 제거로 인해 해당 저장소에 의존하는 애플리케이션의 정상적인 기능이 중단될 수 있습니다.

Support HackTricks

Last updated