# AWS - CodeBuild Post Exploitation {{#include ../../../../banners/hacktricks-training.md}} ## CodeBuild Per ulteriori informazioni, controlla: {{#ref}} ../../aws-services/aws-codebuild-enum.md {{#endref}} ### Controlla i Segreti Se le credenziali sono state impostate in Codebuild per connettersi a Github, Gitlab o Bitbucket sotto forma di token personali, password o accesso token OAuth, queste **credenziali verranno memorizzate come segreti nel gestore dei segreti**.\ Pertanto, se hai accesso per leggere il gestore dei segreti, sarai in grado di ottenere questi segreti e passare alla piattaforma connessa. {{#ref}} ../../aws-privilege-escalation/aws-secrets-manager-privesc.md {{#endref}} ### Abuso dell'Accesso al Repo di CodeBuild Per configurare **CodeBuild**, avrà bisogno di **accesso al repo di codice** che utilizzerà. Diverse piattaforme potrebbero ospitare questo codice:
Il **progetto CodeBuild deve avere accesso** al fornitore di sorgente configurato, sia tramite **ruolo IAM** che con un token github/bitbucket **o accesso OAuth**. Un attaccante con **permessi elevati su un CodeBuild** potrebbe abusare di questo accesso configurato per leakare il codice del repo configurato e altri a cui le credenziali impostate hanno accesso.\ Per fare ciò, un attaccante dovrebbe semplicemente **cambiare l'URL del repository a ciascun repo a cui le credenziali di configurazione hanno accesso** (nota che il web di aws elencherà tutti per te):
E **cambiare i comandi Buildspec per esfiltrare ciascun repo**. > [!WARNING] > Tuttavia, questo **compito è ripetitivo e noioso** e se un token github è stato configurato con **permessi di scrittura**, un attaccante **non sarà in grado di (ab)usare quei permessi** poiché non ha accesso al token.\ > O sì? Controlla la sezione successiva ### Leakare Token di Accesso da AWS CodeBuild Puoi leakare l'accesso dato in CodeBuild a piattaforme come Github. Controlla se è stato dato accesso a piattaforme esterne con: ```bash aws codebuild list-source-credentials ``` {{#ref}} aws-codebuild-token-leakage.md {{#endref}} ### `codebuild:DeleteProject` Un attaccante potrebbe eliminare un intero progetto CodeBuild, causando la perdita della configurazione del progetto e influenzando le applicazioni che dipendono dal progetto. ```bash aws codebuild delete-project --name ``` **Impatto Potenziale**: Perdita della configurazione del progetto e interruzione del servizio per le applicazioni che utilizzano il progetto eliminato. ### `codebuild:TagResource` , `codebuild:UntagResource` Un attaccante potrebbe aggiungere, modificare o rimuovere tag dalle risorse di CodeBuild, interrompendo l'allocazione dei costi della tua organizzazione, il tracciamento delle risorse e le politiche di controllo degli accessi basate sui tag. ```bash aws codebuild tag-resource --resource-arn --tags aws codebuild untag-resource --resource-arn --tag-keys ``` **Impatto Potenziale**: Interruzione dell'allocazione dei costi, tracciamento delle risorse e politiche di controllo degli accessi basate su tag. ### `codebuild:DeleteSourceCredentials` Un attaccante potrebbe eliminare le credenziali di origine per un repository Git, influenzando il normale funzionamento delle applicazioni che dipendono dal repository. ```sql aws codebuild delete-source-credentials --arn ``` **Impatto Potenziale**: Interruzione del normale funzionamento delle applicazioni che si basano sul repository interessato a causa della rimozione delle credenziali di origine. {{#include ../../../../banners/hacktricks-training.md}}