AWS - CodeBuild Post Exploitation

Aprenda e pratique Hacking AWS:HackTricks Treinamento AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Treinamento GCP Red Team Expert (GRTE)

Suporte HackTricks

CodeBuild

Para mais informações, confira:

AWS - Codebuild Enum

Verificar Segredos

Se credenciais foram configuradas no Codebuild para conectar ao Github, Gitlab ou Bitbucket na forma de tokens pessoais, senhas ou tokens de acesso 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 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 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 que 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.

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? Confira 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 dado com:

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

codebuild:DeleteProject

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

aws codebuild delete-project --name <value>

Impacto Potencial: Perda da configuração do projeto e interrupção do serviço para aplicativos 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.

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.

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.

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

Support HackTricks

Last updated