AWS - CodeBuild Post Exploitation

Reading time: 4 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

CodeBuild

Für weitere Informationen, siehe:

AWS - Codebuild Enum

Überprüfen von Geheimnissen

Wenn Anmeldeinformationen in Codebuild festgelegt wurden, um sich mit Github, Gitlab oder Bitbucket in Form von persönlichen Tokens, Passwörtern oder OAuth-Token-Zugriff zu verbinden, werden diese Anmeldeinformationen als Geheimnisse im Geheimnismanager gespeichert.
Daher, wenn Sie Zugriff auf den Geheimnismanager haben, können Sie diese Geheimnisse abrufen und zu der verbundenen Plattform pivotieren.

AWS - Secrets Manager Privesc

Missbrauch des CodeBuild-Repo-Zugriffs

Um CodeBuild zu konfigurieren, benötigt es Zugriff auf das Code-Repo, das es verwenden wird. Mehrere Plattformen könnten diesen Code hosten:

Das CodeBuild-Projekt muss Zugriff auf den konfigurierten Quellanbieter haben, entweder über IAM-Rolle oder mit einem Github/Bitbucket Token oder OAuth-Zugriff.

Ein Angreifer mit erhöhten Berechtigungen in einem CodeBuild könnte diesen konfigurierten Zugriff missbrauchen, um den Code des konfigurierten Repos und anderer, auf die die festgelegten Anmeldeinformationen Zugriff haben, zu leaken.
Um dies zu tun, müsste ein Angreifer nur die Repository-URL auf jedes Repo ändern, auf das die konfigurierten Anmeldeinformationen Zugriff haben (beachten Sie, dass die AWS-Webseite alle für Sie auflistet):

Und die Buildspec-Befehle ändern, um jedes Repo zu exfiltrieren.

warning

Diese Aufgabe ist jedoch repetitiv und mühsam und wenn ein Github-Token mit Schreibberechtigungen konfiguriert wurde, kann ein Angreifer diese Berechtigungen nicht (miss)brauchen, da er keinen Zugriff auf das Token hat.
Oder doch? Überprüfen Sie den nächsten Abschnitt

Zugriffstoken von AWS CodeBuild leaken

Sie können den Zugriff, der in CodeBuild auf Plattformen wie Github gewährt wurde, leaken. Überprüfen Sie, ob Zugriff auf externe Plattformen gewährt wurde mit:

bash
aws codebuild list-source-credentials

AWS Codebuild - Token Leakage

codebuild:DeleteProject

Ein Angreifer könnte ein gesamtes CodeBuild-Projekt löschen, was zu einem Verlust der Projektkonfiguration führt und Anwendungen beeinträchtigt, die auf das Projekt angewiesen sind.

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

Potenzielle Auswirkungen: Verlust der Projektkonfiguration und Dienstunterbrechung für Anwendungen, die das gelöschte Projekt verwenden.

codebuild:TagResource , codebuild:UntagResource

Ein Angreifer könnte Tags von CodeBuild-Ressourcen hinzufügen, ändern oder entfernen, was die Kostenallokation, die Ressourcenverfolgung und die Zugriffskontrollrichtlinien Ihrer Organisation, die auf Tags basieren, stören würde.

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

Potenzielle Auswirkungen: Störung der Kostenallokation, Ressourcenverfolgung und tagbasierter Zugriffskontrollrichtlinien.

codebuild:DeleteSourceCredentials

Ein Angreifer könnte die Quellanmeldeinformationen für ein Git-Repository löschen, was die normale Funktionsweise von Anwendungen beeinträchtigt, die auf das Repository angewiesen sind.

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

Potenzielle Auswirkungen: Störung der normalen Funktion von Anwendungen, die auf das betroffene Repository angewiesen sind, aufgrund der Entfernung von Quellanmeldeinformationen.

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks