TravisCI Security
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
Czym jest TravisCI
Travis CI to hostowana lub na miejscu usługa ciągłej integracji, używana do budowania i testowania projektów oprogramowania hostowanych na kilku różnych platformach git.
Ataki
Wyzwalacze
Aby przeprowadzić atak, najpierw musisz wiedzieć, jak wyzwolić budowę. Domyślnie TravisCI wyzwala budowę przy pushach i pull requestach:
.png)
Zadania Cron
Jeśli masz dostęp do aplikacji webowej, możesz ustawić zadania cron do uruchamiania budowy, co może być przydatne do utrzymania lub wyzwolenia budowy:
.png)
Note
Wygląda na to, że nie można ustawić zadań cron w pliku
.travis.ymlzgodnie z tym.
PR zewnętrznych
TravisCI domyślnie wyłącza udostępnianie zmiennych środowiskowych z PR pochodzących od osób trzecich, ale ktoś może to włączyć, a wtedy możesz stworzyć PR do repozytorium i wyeksportować sekrety:
.png)
Zrzucanie sekretów
Jak wyjaśniono na stronie podstawowe informacje, istnieją 2 typy sekretów. Sekrety zmiennych środowiskowych (które są wymienione na stronie internetowej) oraz niestandardowe zaszyfrowane sekrety, które są przechowywane w pliku .travis.yml jako base64 (zauważ, że oba, jako przechowywane zaszyfrowane, będą kończyć jako zmienne środowiskowe na finalnych maszynach).
- Aby wyliczyć sekrety skonfigurowane jako zmienne środowiskowe, przejdź do ustawień projektu i sprawdź listę. Zauważ jednak, że wszystkie zmienne środowiskowe projektu ustawione tutaj pojawią się przy wyzwalaniu budowy.
- Aby wyliczyć niestandardowe zaszyfrowane sekrety, najlepiej jest sprawdzić plik
.travis.yml. - Aby wyliczyć zaszyfrowane pliki, możesz sprawdzić pliki
.encw repozytorium, linie podobne doopenssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -dw pliku konfiguracyjnym, lub zaszyfrowane iv i klucze w zmiennych środowiskowych, takich jak:
.png)
TODO:
- Przykład budowy z działającym reverse shellem na Windows/Mac/Linux
- Przykład budowy wyciekającej zmienne środowiskowe zakodowane w base64 w logach
TravisCI Enterprise
Jeśli atakujący znajdzie się w środowisku, które używa TravisCI enterprise (więcej informacji na ten temat w podstawowych informacjach), będzie mógł wyzwalać budowy w Workerze. Oznacza to, że atakujący będzie mógł poruszać się lateralnie do tego serwera, z którego mógłby:
- uciec do hosta?
- skompromitować kubernetes?
- skompromitować inne maszyny działające w tej samej sieci?
- skompromitować nowe dane uwierzytelniające w chmurze?
Referencje
- https://docs.travis-ci.com/user/encrypting-files/
- https://docs.travis-ci.com/user/best-practices-security
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

