AWS - CodeBuild Pós Exploração

Reading time: 4 minutes

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

CodeBuild

Para mais informações, consulte:

AWS - Codebuild Enum

Verificar Segredos

Se credenciais foram configuradas no Codebuild para se conectar ao Github, Gitlab ou Bitbucket na forma de tokens pessoais, senhas ou acesso de token OAuth, essas credenciais serão armazenadas como segredos no gerenciador de segredos.
Portanto, se você tiver acesso para ler o gerenciador de segredos, poderá obter esses segredos e pivotar para a plataforma conectada.

AWS - Secrets Manager Privesc

Abusar do Acesso ao Repositório do CodeBuild

Para configurar o CodeBuild, ele precisará de acesso ao repositório de código que irá utilizar. Várias plataformas podem estar hospedando esse código:

O projeto CodeBuild deve ter acesso ao provedor de origem configurado, seja via papel IAM ou com um token do github/bitbucket ou acesso OAuth.

Um atacante com permissões elevadas em um CodeBuild poderia abusar desse acesso configurado para vazar o código do repositório configurado e outros onde as credenciais definidas têm acesso.
Para fazer isso, um atacante precisaria apenas mudar a URL do repositório para cada repositório ao qual as credenciais configuradas têm acesso (note que a web da aws listará todos eles para você):

E mudar os comandos do Buildspec para exfiltrar cada repositório.

warning

No entanto, essa tarefa é repetitiva e tediosa e se um token do github foi configurado com permissões de escrita, um atacante não poderá (ab)usar essas permissões pois não tem acesso ao token.
Ou tem? Verifique a próxima seção

Vazando Tokens de Acesso do AWS CodeBuild

Você pode vazar o acesso dado no CodeBuild para plataformas como Github. Verifique se algum acesso a plataformas externas foi concedido com:

bash
aws codebuild list-source-credentials

AWS Codebuild - Token Leakage

codebuild:DeleteProject

Um atacante poderia deletar um projeto inteiro do CodeBuild, causando perda da configuração do projeto e impactando aplicações que dependem do projeto.

bash
aws codebuild delete-project --name <value>

Impacto Potencial: Perda da configuração do projeto e interrupção do serviço para aplicações que utilizam o projeto excluído.

codebuild:TagResource , codebuild:UntagResource

Um atacante poderia adicionar, modificar ou remover tags dos recursos do CodeBuild, interrompendo a alocação de custos da sua organização, o rastreamento de recursos e as políticas de controle de acesso baseadas em tags.

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

Impacto Potencial: Interrupção da alocação de custos, rastreamento de recursos e políticas de controle de acesso baseadas em tags.

codebuild:DeleteSourceCredentials

Um atacante poderia deletar credenciais de origem para um repositório Git, impactando o funcionamento normal de aplicações que dependem do repositório.

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

Impacto Potencial: Interrupção do funcionamento normal para aplicações que dependem do repositório afetado devido à remoção de credenciais de origem.

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks