TravisCI Sicherheit
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
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Was ist TravisCI
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.
Angriffe
Auslöser
Um einen Angriff zu starten, müssen Sie zuerst wissen, wie Sie einen Build auslösen. Standardmäßig wird TravisCI einen Build bei Pushes und Pull-Requests auslösen:
Cron-Jobs
Wenn Sie Zugriff auf die Webanwendung haben, können Sie Cron-Jobs einrichten, um den Build auszuführen, dies könnte nützlich für Persistenz oder um einen Build auszulösen sein:
note
Es scheint, dass es nicht möglich ist, Cron-Jobs innerhalb der .travis.yml
gemäß diesem einzurichten.
Dritte Partei PR
TravisCI deaktiviert standardmäßig das Teilen von Umgebungsvariablen mit PRs von Dritten, aber jemand könnte es aktivieren und dann könnten Sie PRs zum Repo erstellen und die Geheimnisse exfiltrieren:
Geheimnisse dumpen
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 (beachten Sie, dass beide als verschlüsselt gespeichert in den endgültigen Maschinen als Umgebungsvariablen enden).
- Um Geheimnisse zu enumerieren, die als Umgebungsvariablen konfiguriert sind, gehen Sie zu den Einstellungen des Projekts und überprüfen Sie die Liste. Beachten Sie 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 Sie tun können, die
.travis.yml
-Datei zu überprüfen. - Um verschlüsselte Dateien zu enumerieren, können Sie nach
.enc
-Dateien im Repo suchen, nach Zeilen, die ähnlich sind wieopenssl 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:
TODO:
- Beispiel-Build mit Reverse-Shell, die auf Windows/Mac/Linux läuft
- Beispiel-Build, der die Umgebungsvariablen base64-kodiert in den Protokollen ausgibt
TravisCI Enterprise
Wenn ein Angreifer in einer Umgebung landet, die TravisCI Enterprise verwendet (weitere Informationen dazu finden Sie 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:
- zum Host zu entkommen?
- Kubernetes zu kompromittieren?
- andere Maschinen im selben Netzwerk zu kompromittieren?
- neue Cloud-Anmeldeinformationen zu kompromittieren?
Referenzen
- https://docs.travis-ci.com/user/encrypting-files/
- https://docs.travis-ci.com/user/best-practices-security
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
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.