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
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Š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.
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čneopenssl 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
- https://docs.travis-ci.com/user/encrypting-files/
- https://docs.travis-ci.com/user/best-practices-security
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
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.