AWS - CodeBuild Post Exploitation

Reading time: 4 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

CodeBuild

Pour plus d'informations, consultez :

AWS - Codebuild Enum

Vérifier les Secrets

Si des identifiants ont été définis dans Codebuild pour se connecter à Github, Gitlab ou Bitbucket sous forme de jetons personnels, mots de passe ou accès par jeton OAuth, ces identifiants vont être stockés comme secrets dans le gestionnaire de secrets.
Par conséquent, si vous avez accès pour lire le gestionnaire de secrets, vous pourrez obtenir ces secrets et pivoter vers la plateforme connectée.

AWS - Secrets Manager Privesc

Abuser de l'Accès au Repo CodeBuild

Pour configurer CodeBuild, il aura besoin de l'accès au repo de code qu'il va utiliser. Plusieurs plateformes pourraient héberger ce code :

Le projet CodeBuild doit avoir accès au fournisseur de source configuré, soit via un rôle IAM soit avec un jeton github/bitbucket ou un accès OAuth.

Un attaquant avec des permissions élevées sur un CodeBuild pourrait abuser de cet accès configuré pour divulguer le code du repo configuré et d'autres où les identifiants définis ont accès.
Pour ce faire, un attaquant n'aurait qu'à changer l'URL du dépôt pour chaque dépôt auquel les identifiants de configuration ont accès (notez que le site web aws les listera tous pour vous) :

Et changer les commandes Buildspec pour exfiltrer chaque dépôt.

warning

Cependant, cette tâche est répétitive et fastidieuse et si un jeton github a été configuré avec des permissions d'écriture, un attaquant ne pourra pas (ab)user de ces permissions car il n'a pas accès au jeton.
Ou peut-être ? Consultez la section suivante

Fuite des Jetons d'Accès depuis AWS CodeBuild

Vous pouvez divulguer l'accès accordé dans CodeBuild à des plateformes comme Github. Vérifiez si un accès à des plateformes externes a été accordé avec :

bash
aws codebuild list-source-credentials

AWS Codebuild - Token Leakage

codebuild:DeleteProject

Un attaquant pourrait supprimer un projet CodeBuild entier, entraînant la perte de la configuration du projet et impactant les applications dépendant du projet.

bash
aws codebuild delete-project --name <value>

Impact potentiel : Perte de la configuration du projet et interruption de service pour les applications utilisant le projet supprimé.

codebuild:TagResource , codebuild:UntagResource

Un attaquant pourrait ajouter, modifier ou supprimer des balises des ressources CodeBuild, perturbant l'allocation des coûts de votre organisation, le suivi des ressources et les politiques de contrôle d'accès basées sur les balises.

bash
aws codebuild tag-resource --resource-arn <value> --tags <value>
aws codebuild untag-resource --resource-arn <value> --tag-keys <value>

Impact potentiel : Perturbation de l'allocation des coûts, du suivi des ressources et des politiques de contrôle d'accès basées sur des balises.

codebuild:DeleteSourceCredentials

Un attaquant pourrait supprimer les informations d'identification source pour un dépôt Git, impactant le fonctionnement normal des applications s'appuyant sur le dépôt.

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

Impact potentiel : Perturbation du fonctionnement normal des applications s'appuyant sur le dépôt affecté en raison de la suppression des identifiants source.

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks