AWS - CodeBuild Post Exploitation

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, consulta:

AWS - Codebuild Enum

Check Secrets

Se in CodeBuild sono state impostate credenziali per connettersi a Github, Gitlab o Bitbucket sotto forma di personal tokens, password o OAuth token, queste credentials saranno memorizzate come secrets nel secret manager.
Pertanto, se hai accesso in lettura al secret manager potrai ottenere questi secrets e pivotare verso la piattaforma connessa.

AWS - Secrets Manager Privesc

Abuse CodeBuild Repo Access

Per configurare CodeBuild è necessario avere accesso al repository del codice che verrà utilizzato. Diversi provider possono ospitare questo codice:

Il progetto CodeBuild deve avere accesso al source provider configurato, sia tramite IAM role sia con un github/bitbucket token o accesso OAuth.

Un attacker con permessi elevati su un progetto CodeBuild potrebbe abusare di questo accesso configurato per leak il codice del repo configurato e di altri a cui le credenziali impostate hanno accesso.
Per farlo, un attacker dovrebbe semplicemente cambiare l’URL del repository verso ogni repo a cui le credenziali di configurazione hanno accesso (nota che la console AWS elencherà tutti per te):

E modificare i comandi Buildspec per exfiltrate ogni repo.

Warning

Tuttavia, questo compito è ripetitivo e noioso e se è stato configurato un github token con write permissions, un attacker non sarà in grado di (ab)use di tali permessi poiché non ha accesso al token.
O forse ce l’ha? Controlla la sezione successiva

Leaking Access Tokens from AWS CodeBuild

Puoi leak gli accessi concessi in CodeBuild verso piattaforme come Github. Verifica se è stato dato accesso a piattaforme esterne con:

aws codebuild list-source-credentials

AWS Codebuild - Token Leakage

Untrusted PR execution via webhook filter misconfiguration

Se i filtri dei webhook sono deboli, attaccanti esterni possono far buildare le loro PRs in progetti CodeBuild privilegiati e poi eseguire codice arbitrario nella CI.

AWS CodeBuild - Untrusted PR Webhook Bypass (CodeBreach-style)

codebuild:DeleteProject

Un attaccante potrebbe eliminare un intero progetto CodeBuild, causando la perdita della configurazione del progetto e impattando le applicazioni che dipendono dal progetto.

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 attacker potrebbe aggiungere, modificare o rimuovere tag dalle risorse CodeBuild, compromettendo l’allocazione dei costi della tua organizzazione, il tracciamento delle risorse e le politiche di controllo degli accessi basate sui tag.

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, del tracciamento delle risorse e delle policy di controllo accessi basate sui tag.

codebuild:DeleteSourceCredentials

Un attaccante potrebbe eliminare le credenziali di origine per un repository Git, compromettendo il normale funzionamento delle applicazioni che dipendono dal repository.

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

Potential Impact: Interruzione del normale funzionamento delle applicazioni che dipendono dal 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