TravisCI Security
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Travis CI ist ein gehosteter oder vor Ort kontinuierlicher Integrationsdienst, der verwendet wird, um Softwareprojekte zu erstellen und zu testen, die auf mehreren verschiedenen Git-Plattformen gehostet werden.
Basic TravisCI InformationUm einen Angriff zu starten, musst du zuerst wissen, wie man einen Build auslöst. Standardmäßig wird TravisCI einen Build bei Pushes und Pull-Requests auslösen:
Wenn du Zugriff auf die Webanwendung hast, kannst du Cron-Jobs einrichten, um den Build auszuführen, dies könnte nützlich für Persistenz oder um einen Build auszulösen sein:
Es scheint, dass es nicht möglich ist, Cron-Jobs innerhalb der .travis.yml
gemäß diesem zu setzen.
TravisCI deaktiviert standardmäßig das Teilen von Umgebungsvariablen mit PRs von Dritten, aber jemand könnte es aktivieren und dann könntest du PRs zum Repo erstellen und die Geheimnisse exfiltrieren:
Wie auf der Seite grundlegende Informationen erklärt, gibt es 2 Arten von Geheimnissen. Umgebungsvariablen-Geheimnisse (die auf der Webseite aufgelistet sind) und benutzerdefinierte verschlüsselte Geheimnisse, die in der .travis.yml
-Datei als base64 gespeichert sind (beachte, dass beide als verschlüsselt gespeichert in den endgültigen Maschinen als Umgebungsvariablen enden).
Um Geheimnisse zu enumerieren, die als Umgebungsvariablen konfiguriert sind, gehe zu den Einstellungen des Projekts und überprüfe die Liste. Beachte jedoch, dass alle hier festgelegten Projekt-Umgebungsvariablen erscheinen, wenn ein Build ausgelöst wird.
Um die benutzerdefinierten verschlüsselten Geheimnisse zu enumerieren, ist das Beste, was du tun kannst, die .travis.yml
-Datei zu überprüfen.
Um verschlüsselte Dateien zu enumerieren, kannst du nach .enc
-Dateien im Repo suchen, nach Zeilen, die ähnlich sind wie openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d
in der Konfigurationsdatei, oder nach verschlüsselten iv und Schlüsseln in den Umgebungsvariablen wie:
Beispiel-Build mit Reverse-Shell, die auf Windows/Mac/Linux läuft
Beispiel-Build, der die Umgebungsvariablen base64-kodiert in den Logs ausgibt
Wenn ein Angreifer in einer Umgebung landet, die TravisCI Enterprise verwendet (mehr Informationen dazu in den grundlegenden Informationen), wird er in der Lage sein, Builds im Worker auszulösen. Das bedeutet, dass ein Angreifer in der Lage sein wird, lateral zu diesem Server zu wechseln, von dem aus er in der Lage sein könnte zu:
zum Host entkommen?
Kubernetes kompromittieren?
andere Maschinen im selben Netzwerk kompromittieren?
neue Cloud-Anmeldeinformationen kompromittieren?
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)