AWS - CodeBuild Post Exploitation

Reading time: 4 minutes

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

CodeBuild

Per ulteriori informazioni, controlla:

AWS - Codebuild Enum

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.

AWS - Secrets Manager Privesc

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

AWS Codebuild - Token Leakage

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 <value>

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 <value> --tags <value>
aws codebuild untag-resource --resource-arn <value> --tag-keys <value>

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 <value>

Impatto Potenziale: Interruzione del normale funzionamento delle applicazioni che si basano sul repository interessato a causa della rimozione delle credenziali di origine.

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks