TravisCI Security

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Co to jest TravisCI

Travis CI to usługa ciągłej integracji hostowana lub lokalna, używana do budowania i testowania projektów oprogramowania hostowanych na różnych platformach git.

pageBasic TravisCI Information

Ataki

Wyzwalacze

Aby przeprowadzić atak, najpierw musisz wiedzieć, jak wywołać proces budowania. Domyślnie TravisCI będzie wywoływać proces budowania przy naciskach i żądaniach ściągnięcia (pull requests):

Zadania Cron

Jeśli masz dostęp do aplikacji internetowej, możesz ustawić zadania cron do uruchamiania procesu budowania, co może być przydatne dla trwałości lub wywołania procesu budowania:

Wygląda na to, że nie można ustawiać zadań cron wewnątrz pliku .travis.yml zgodnie z tym.

PR od osób trzecich

TravisCI domyślnie wyłącza udostępnianie zmiennych środowiskowych z PR-ów pochodzących od osób trzecich, ale ktoś może to włączyć, a następnie można tworzyć PR-y do repozytorium i wyciekać tajemnice:

Wyciekanie Tajemnic

Jak wyjaśniono na stronie podstawowe informacje, istnieją 2 rodzaje tajemnic. Tajemnice zmiennych środowiskowych (które są wymienione na stronie internetowej) i tajemnice zaszyfrowane niestandardowe, które są przechowywane w pliku .travis.yml jako base64 (zauważ, że oba, przechowywane zaszyfrowane, zakończą się jako zmienne środowiskowe na końcowych maszynach).

  • Aby wyliczyć tajemnice skonfigurowane jako Zmienne środowiskowe, przejdź do ustawień projektu i sprawdź listę. Należy jednak zauważyć, że wszystkie zmienne środowiskowe projektu ustawione tutaj pojawią się podczas wywoływania procesu budowania.

  • Aby wyliczyć zaszyfrowane niestandardowe tajemnice, najlepiej jest sprawdzić plik .travis.yml.

  • Aby wyliczyć zaszyfrowane pliki, można sprawdzić pliki .enc w repozytorium, linie podobne do openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d w pliku konfiguracyjnym, lub zaszyfrowane iv i klucze w Zmiennych środowiskowych, takie jak:

TODO:

  • Przykładowy proces budowania z odwróconym powłoką uruchamianym na Windows/Mac/Linux

  • Przykładowy proces budowania wyciekający zaszyfrowane dane base64 w logach

TravisCI Enterprise

Jeśli atakujący znajdzie się w środowisku korzystającym z TravisCI Enterprise (więcej informacji na temat tego, czym jest to w podstawowych informacjach), będzie mógł wywoływać procesy budowania w Workerze. Oznacza to, że atakujący będzie mógł poruszać się poziomo 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 poświadczenia chmurowe?

Odnośniki

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated