AWS - Codebuild Enum

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

AWS CodeBuild è riconosciuto come un servizio di integrazione continua completamente gestito. Lo scopo principale di questo servizio è automatizzare la sequenza di compilazione del codice sorgente, esecuzione dei test e imballaggio del software per scopi di distribuzione. Il principale vantaggio offerto da CodeBuild risiede nella sua capacità di alleviare gli utenti dalla necessità di fornire, gestire e scalare i propri server di build. Questa comodità è dovuta al fatto che il servizio stesso gestisce questi compiti. Le caratteristiche essenziali di AWS CodeBuild comprendono:

  1. Servizio Gestito: CodeBuild gestisce e scala i server di build, liberando gli utenti dalla manutenzione dei server.
  2. Integrazione Continua: Si integra con il flusso di lavoro di sviluppo e distribuzione, automatizzando le fasi di build e test del processo di rilascio del software.
  3. Produzione di Pacchetti: Dopo le fasi di build e test, prepara i pacchetti software, rendendoli pronti per la distribuzione.

AWS CodeBuild si integra perfettamente con altri servizi AWS, migliorando l'efficienza e l'affidabilità della pipeline CI/CD (Integrazione Continua/Distribuzione Continua).

Credenziali Github/Gitlab/Bitbucket

Credenziali di origine predefinite

Questa è l'opzione legacy in cui è possibile configurare alcuni accessi (come un token o un'app Github) che saranno condivisi tra i progetti codebuild in modo che tutti i progetti possano utilizzare questo set di credenziali configurato.

Le credenziali memorizzate (token, password...) sono gestite da codebuild e non esiste alcun modo pubblico per recuperarle dalle API AWS.

Credenziali di origine personalizzate

A seconda della piattaforma del repository (Github, Gitlab e Bitbucket) vengono fornite diverse opzioni. Ma in generale, qualsiasi opzione che richiede di memorizzare un token o una password lo memorizzerà come un segreto nel gestore di segreti.

Questo consente a diversi progetti codebuild di utilizzare diversi accessi configurati ai fornitori invece di utilizzare solo quello predefinito configurato.

Enumerazione

bash
# List external repo creds (such as github tokens)
## It doesn't return the token but just the ARN where it's located
aws codebuild list-source-credentials

# Projects
aws codebuild list-shared-projects
aws codebuild list-projects
aws codebuild batch-get-projects --names <project_name> # Check for creds in env vars

# Builds
aws codebuild list-builds
aws codebuild list-builds-for-project --project-name <p_name>
aws codebuild list-build-batches
aws codebuild list-build-batches-for-project --project-name <p_name>

# Reports
aws codebuild list-reports
aws codebuild describe-test-cases --report-arn <ARN>

Privesc

Nella pagina seguente, puoi controllare come abuse codebuild permissions to escalate privileges:

AWS - Codebuild Privesc

Post Exploitation

AWS - CodeBuild Post Exploitation

Unauthenticated Access

AWS - CodeBuild Unauthenticated Access

References

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