# AWS - CodeBuild Pós Exploração {{#include ../../../../banners/hacktricks-training.md}} ## CodeBuild Para mais informações, consulte: {{#ref}} ../../aws-services/aws-codebuild-enum.md {{#endref}} ### 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. {{#ref}} ../../aws-privilege-escalation/aws-secrets-manager-privesc/README.md {{#endref}} ### 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 ``` {{#ref}} aws-codebuild-token-leakage.md {{#endref}} ### `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 ``` **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 --tags aws codebuild untag-resource --resource-arn --tag-keys ``` **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 ``` **Impacto Potencial**: Interrupção do funcionamento normal para aplicações que dependem do repositório afetado devido à remoção de credenciais de origem. {{#include ../../../../banners/hacktricks-training.md}}