# AWS - Codebuild Enum {{#include ../../../banners/hacktricks-training.md}} ## CodeBuild AWS **CodeBuild** wird als **vollständig verwalteter Continuous Integration-Service** anerkannt. Der Hauptzweck dieses Dienstes besteht darin, die Abfolge des Kompilierens von Quellcode, der Ausführung von Tests und der Verpackung der Software für Bereitstellungszwecke zu automatisieren. Der überwiegende Vorteil von CodeBuild liegt in seiner Fähigkeit, die Notwendigkeit für Benutzer zu verringern, ihre Build-Server bereitzustellen, zu verwalten und zu skalieren. Dieser Komfort ergibt sich daraus, dass der Dienst diese Aufgaben selbst verwaltet. Wesentliche Funktionen von AWS CodeBuild umfassen: 1. **Verwalteter Dienst**: CodeBuild verwaltet und skaliert die Build-Server, wodurch Benutzer von der Serverwartung befreit werden. 2. **Continuous Integration**: Es integriert sich in den Entwicklungs- und Bereitstellungsworkflow und automatisiert die Build- und Testphasen des Softwarefreigabeprozesses. 3. **Paketproduktion**: Nach den Build- und Testphasen bereitet es die Softwarepakete vor und macht sie bereit für die Bereitstellung. AWS CodeBuild integriert sich nahtlos mit anderen AWS-Diensten und verbessert die Effizienz und Zuverlässigkeit der CI/CD (Continuous Integration/Continuous Deployment)-Pipeline. ### **Github/Gitlab/Bitbucket-Anmeldeinformationen** #### **Standard-Quellanmeldeinformationen** Dies ist die Legacy-Option, bei der es möglich ist, einige **Zugriffe** (wie ein Github-Token oder eine App) zu konfigurieren, die **über Codebuild-Projekte hinweg geteilt werden**, sodass alle Projekte dieses konfigurierte Set von Anmeldeinformationen verwenden können. Die gespeicherten Anmeldeinformationen (Tokens, Passwörter...) werden **von Codebuild verwaltet** und es gibt keinen öffentlichen Weg, sie über AWS-APIs abzurufen. #### Benutzerdefinierte Quellanmeldeinformationen Je nach Repository-Plattform (Github, Gitlab und Bitbucket) werden unterschiedliche Optionen bereitgestellt. Aber im Allgemeinen wird jede Option, die **ein Token oder ein Passwort speichern muss, als Geheimnis im Secrets Manager gespeichert**. Dies ermöglicht es, dass **verschiedene Codebuild-Projekte unterschiedliche konfigurierte Zugriffe** auf die Anbieter verwenden, anstatt nur den konfigurierten Standardzugang zu nutzen. ### Enumeration ```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 # Check for creds in env vars # Builds aws codebuild list-builds aws codebuild list-builds-for-project --project-name aws codebuild list-build-batches aws codebuild list-build-batches-for-project --project-name # Reports aws codebuild list-reports aws codebuild describe-test-cases --report-arn ``` ### Privesc Auf der folgenden Seite können Sie überprüfen, wie Sie **Codebuild-Berechtigungen missbrauchen, um Privilegien zu eskalieren**: {{#ref}} ../aws-privilege-escalation/aws-codebuild-privesc.md {{#endref}} ### Post Exploitation {{#ref}} ../aws-post-exploitation/aws-codebuild-post-exploitation/ {{#endref}} ### Unauthenticated Access {{#ref}} ../aws-unauthenticated-enum-access/aws-codebuild-unauthenticated-access.md {{#endref}} ## References - [https://docs.aws.amazon.com/managedservices/latest/userguide/code-build.html](https://docs.aws.amazon.com/managedservices/latest/userguide/code-build.html) {{#include ../../../banners/hacktricks-training.md}}