TravisCI Security

Reading time: 4 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Šta je TravisCI

Travis CI je hostovana ili na mestu kontinuirana integracija usluga koja se koristi za izgradnju i testiranje softverskih projekata hostovanih na nekoliko različitih git platformi.

Basic TravisCI Information

Napadi

Okidači

Da biste pokrenuli napad, prvo morate znati kako da pokrenete izgradnju. Po defaultu, TravisCI će pokrenuti izgradnju na push-evima i pull zahtevima:

Cron poslovi

Ako imate pristup web aplikaciji, možete postaviti cron poslove za pokretanje izgradnje, što može biti korisno za postizanje postojanosti ili za pokretanje izgradnje:

note

Izgleda da nije moguće postaviti cron poslove unutar .travis.yml prema ovome.

PR treće strane

TravisCI po defaultu onemogućava deljenje env varijabli sa PR-ovima koji dolaze od trećih strana, ali neko bi to mogao omogućiti i tada biste mogli kreirati PR-ove za repozitorij i eksfiltrirati tajne:

Ispumpavanje tajni

Kao što je objašnjeno na stranici osnovne informacije, postoje 2 tipa tajni. Tajne varijable okruženja (koje su navedene na web stranici) i prilagođene enkriptovane tajne, koje se čuvaju unutar .travis.yml datoteke kao base64 (napomena da će obe, kada su sačuvane enkriptovane, završiti kao varijable okruženja na konačnim mašinama).

  • Da biste enumerisali tajne konfigurirane kao varijable okruženja, idite na podešavanja projekta i proverite listu. Međutim, imajte na umu da će sve varijable okruženja projekta postavljene ovde biti prikazane prilikom pokretanja izgradnje.
  • Da biste enumerisali prilagođene enkriptovane tajne, najbolje što možete učiniti je da proverite .travis.yml datoteku.
  • Da biste enumerisali enkriptovane datoteke, možete proveriti za .enc datoteke u repozitorijumu, za linije slične openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d u konfiguracionoj datoteci, ili za enkriptovane iv i ključeve u varijablama okruženja kao što su:

TODO:

  • Primer izgradnje sa reverznim shell-om koji radi na Windows/Mac/Linux
  • Primer izgradnje koja otkriva env base64 kodirane u logovima

TravisCI Enterprise

Ako napadač završi u okruženju koje koristi TravisCI enterprise (više informacija o tome šta je to u osnovnim informacijama), moći će da pokrene izgradnje u Worker-u. To znači da će napadač moći da se lateralno kreće do tog servera sa kojeg bi mogao da:

  • pobegne na host?
  • kompromituje kubernetes?
  • kompromituje druge mašine koje rade u istoj mreži?
  • kompromituje nove cloud kredencijale?

Reference

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks