TravisCI Security

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Was ist TravisCI

Travis CI ist ein gehosteter oder lokaler Continuous Integration-Dienst, der verwendet wird, um Softwareprojekte zu erstellen und zu testen, die auf verschiedenen Git-Plattformen gehostet sind.

pageBasic TravisCI Information

Angriffe

Auslöser

Um einen Angriff zu starten, müssen Sie zunächst wissen, wie Sie einen Build auslösen können. 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 sein für Persistenz oder um einen Build auszulösen:

Es scheint nicht möglich zu sein, Cron-Jobs innerhalb der .travis.yml gemäß diesem einzurichten.

Drittanbieter-PR

TravisCI deaktiviert standardmäßig das Teilen von Umgebungsvariablen mit PRs von Drittanbietern, aber jemand könnte es aktivieren und dann könnten Sie PRs an das Repository erstellen und die Geheimnisse exfiltrieren:

Geheimnisse auslesen

Wie auf der Grundinformationen Seite 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üsselte Umgebungsvariablen auf den Endgeräten enden).

  • Um konfigurierte Geheimnisse als Umgebungsvariablen aufzulisten, gehen Sie zu den Einstellungen des Projekts und überprüfen Sie die Liste. Beachten Sie jedoch, dass alle hier festgelegten Projektumgebungsvariablen beim Auslösen eines Builds angezeigt werden.

  • Um die benutzerdefinierten verschlüsselten Geheimnisse aufzulisten, ist es am besten, die .travis.yml-Datei zu überprüfen.

  • Um verschlüsselte Dateien aufzulisten, können Sie nach .enc-Dateien im Repository suchen, nach Zeilen ähnlich 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 IVs und Schlüsseln in den Umgebungsvariablen suchen, wie:

TODO:

  • Beispiel-Build mit Reverse-Shell, die auf Windows/Mac/Linux ausgeführt wird

  • Beispiel-Build, der die Umgebungsvariablen base64-kodiert in den Logs preisgibt

TravisCI Enterprise

Wenn ein Angreifer in einer Umgebung landet, die TravisCI Enterprise verwendet (mehr Informationen dazu finden Sie in den Grundinformationen), wird er in der Lage sein, Builds im Worker auszulösen. Dies bedeutet, dass ein Angreifer seitlich zu diesem Server wechseln kann, von dem aus er möglicherweise:

  • zum Host entkommen kann?

  • Kubernetes kompromittieren kann?

  • andere Maschinen im selben Netzwerk kompromittieren kann?

  • neue Cloud-Anmeldeinformationen kompromittieren kann?

Referenzen

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated