# AWS - CodeBuild Post Exploitation {{#include ../../../../banners/hacktricks-training.md}} ## CodeBuild Für weitere Informationen, siehe: {{#ref}} ../../aws-services/aws-codebuild-enum.md {{#endref}} ### Check Secrets Wenn Anmeldeinformationen in CodeBuild eingerichtet wurden, um sich mit Github, Gitlab oder Bitbucket in Form von personal tokens, Passwörtern oder OAuth token access zu verbinden, werden diese **credentials als secrets im secret manager gespeichert**.\ Wenn du also Zugriff zum Lesen des secret manager hast, kannst du diese secrets abrufen und zum verbundenen Platform pivoten. {{#ref}} ../../aws-privilege-escalation/aws-secrets-manager-privesc/README.md {{#endref}} ### Abuse CodeBuild Repo Access Um **CodeBuild** zu konfigurieren, benötigt es **Zugriff auf das Code-Repo**, das es verwenden soll. Mehrere Plattformen könnten diesen Code hosten:
Das **CodeBuild project must have access** zum konfigurierten source provider, entweder via **IAM role** oder mit einem github/bitbucket **token oder OAuth access**. Ein Angreifer mit **elevated permissions over a CodeBuild** könnte diesen konfigurierten Zugriff missbrauchen, um den Code des konfigurierten Repos und anderer Repos zu leak, auf die die gesetzten creds Zugriff haben.\ Dazu müsste ein Angreifer lediglich die **repository URL auf jedes Repo ändern, auf das die konfigurierten credentials Zugriff haben** (beachte, dass die aws web alle für dich auflisten wird):
Und **die Buildspec commands ändern, um jedes Repo zu exfiltrate**. > [!WARNING] > Allerdings ist diese **Aufgabe repetitiv und mühsam** und wenn ein github token mit **write permissions** konfiguriert wurde, wird ein Angreifer **diese Berechtigungen nicht (ab)use können**, da er keinen Zugriff auf den token hat.\ > Oder doch? Sieh dir den nächsten Abschnitt an ### Leaking Access Tokens from AWS CodeBuild You can leak access given in CodeBuild to platforms like Github. Check if any access to external platforms was given with: ```bash aws codebuild list-source-credentials ``` {{#ref}} aws-codebuild-token-leakage.md {{#endref}} ### Untrusted PR execution via webhook filter misconfiguration Wenn webhook-Filter schwach sind, können externe Angreifer ihre PRs in privilegierten CodeBuild-Projekten bauen lassen und anschließend beliebigen Code in CI ausführen. {{#ref}} aws-codebuild-untrusted-pr-webhook-bypass.md {{#endref}} ### `codebuild:DeleteProject` Ein Angreifer könnte ein komplettes CodeBuild-Projekt löschen, wodurch die Projektkonfiguration verloren geht und Anwendungen, die auf das Projekt angewiesen sind, beeinträchtigt werden. ```bash aws codebuild delete-project --name ``` **Mögliche Auswirkungen**: Verlust der Projektkonfiguration und Dienstunterbrechung für Anwendungen, die das gelöschte Projekt verwenden. ### `codebuild:TagResource` , `codebuild:UntagResource` Ein Angreifer könnte tags zu CodeBuild-Ressourcen hinzufügen, ändern oder entfernen und dadurch die Kostenaufteilung, die Ressourcenverfolgung und die auf tags basierenden Zugriffskontrollrichtlinien Ihrer Organisation stören. ```bash aws codebuild tag-resource --resource-arn --tags aws codebuild untag-resource --resource-arn --tag-keys ``` **Potentielle Auswirkungen**: Beeinträchtigung der Kostenallokation, der Ressourcenverfolgung und der tag-basierten Zugriffskontrollrichtlinien. ### `codebuild:DeleteSourceCredentials` Ein Angreifer könnte Quell-Anmeldeinformationen für ein Git-Repository löschen, wodurch die normale Funktionalität von Anwendungen beeinträchtigt wird, die auf dieses Repository angewiesen sind. ```sql aws codebuild delete-source-credentials --arn ``` **Mögliche Auswirkungen**: Beeinträchtigung der normalen Funktionsweise von Anwendungen, die auf das betroffene Repository angewiesen sind, aufgrund der Entfernung der Quellzugangsdaten. {{#include ../../../../banners/hacktricks-training.md}}