AWS - Codebuild Enum

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

CodeBuild

AWS CodeBuild est reconnu comme un service d’intĂ©gration continue entiĂšrement gĂ©rĂ©. L’objectif principal de ce service est d’automatiser la suite de compilation du code source, l’exĂ©cution des tests et le packaging du logiciel en vue du dĂ©ploiement. L’avantage principal offert par CodeBuild rĂ©side dans sa capacitĂ© Ă  supprimer la nĂ©cessitĂ© pour les utilisateurs de provisionner, gĂ©rer et faire Ă©voluer leurs serveurs de build, puisque le service prend en charge ces tĂąches. Les fonctionnalitĂ©s essentielles d’AWS CodeBuild comprennent :

  1. Service gĂ©rĂ©: CodeBuild gĂšre et met Ă  l’échelle les serveurs de build, libĂ©rant les utilisateurs de la maintenance des serveurs.
  2. IntĂ©gration continue: Il s’intĂšgre au workflow de dĂ©veloppement et de dĂ©ploiement, automatisant les phases de build et de test du processus de release logiciel.
  3. Production de packages: AprĂšs les phases de build et de test, il prĂ©pare les packages logiciels, prĂȘts pour le dĂ©ploiement.

AWS CodeBuild s’intĂšgre parfaitement avec d’autres services AWS, amĂ©liorant l’efficacitĂ© et la fiabilitĂ© du pipeline CI/CD (Continuous Integration/Continuous Deployment).

Github/Gitlab/Bitbucket Credentials

Default source credentials

Il s’agit de l’option hĂ©ritĂ©e oĂč il est possible de configurer certains accĂšs (comme un Github token ou une app) qui seront partagĂ©s entre les CodeBuild projects, de sorte que tous les projets puissent utiliser cet ensemble d’identifiants configurĂ©.

Les identifiants stockĂ©s (tokens, passwords
) sont gĂ©rĂ©s par CodeBuild et il n’existe aucun moyen public de les rĂ©cupĂ©rer via les APIs AWS.

Custom source credential

Selon la plateforme de dépÎt (Github, Gitlab et Bitbucket), différentes options sont proposées. Mais en général, toute option qui exige de stocker un token ou un password le stockera en tant que secret dans le secrets manager.

Cela permet Ă  diffĂ©rents CodeBuild projects d’utiliser des accĂšs configurĂ©s diffĂ©rents aux fournisseurs au lieu d’utiliser uniquement le rĂ©glage par dĂ©faut configurĂ©.

Enumeration

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

Tip

Si vous avez codebuild:StartBuild, souvenez-vous que vous pouvez souvent remplacer les env vars au moment du build (--environment-variables-override). Cela suffit pour certaines attaques mĂȘme sans UpdateProject ni remplacements de buildspec (par exemple : rediriger les buckets artifact/upload pour exfiltrate des secrets, ou abuser des env vars language/runtime pour exĂ©cuter des commandes).

Privesc

Sur la page suivante, vous pouvez voir comment abuser des permissions codebuild pour escalader les privilĂšges :

AWS - Codebuild Privesc

Post Exploitation

AWS - CodeBuild Post Exploitation

Unauthenticated Access

AWS - CodeBuild Unauthenticated Access

Références

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks