TravisCI Security
Cos'è TravisCI
Travis CI è un servizio di integrazione continua ospitato o on premises utilizzato per costruire e testare progetti software ospitati su diverse piattaforme git.
Basic TravisCI InformationAttacchi
Trigger
Per lanciare un attacco devi prima sapere come attivare una build. Per impostazione predefinita, TravisCI attiverà una build su push e pull request:
Cron Jobs
Se hai accesso all'applicazione web puoi impostare crons per eseguire la build, questo potrebbe essere utile per la persistenza o per attivare una build:
Sembra che non sia possibile impostare crons all'interno del .travis.yml
secondo questo.
Third Party PR
TravisCI per impostazione predefinita disabilita la condivisione delle variabili d'ambiente con PR provenienti da terze parti, ma qualcuno potrebbe abilitarlo e quindi potresti creare PR nel repo ed esfiltrare i segreti:
Dumping Secrets
Come spiegato nella pagina delle informazioni di base, ci sono 2 tipi di segreti. Segreti delle variabili d'ambiente (che sono elencati nella pagina web) e segreti personalizzati crittografati, che sono memorizzati all'interno del file .travis.yml
come base64 (nota che entrambi, essendo memorizzati crittografati, finiranno come variabili d'ambiente nelle macchine finali).
Per enumerare i segreti configurati come variabili d'ambiente vai alle impostazioni del progetto e controlla l'elenco. Tuttavia, nota che tutte le variabili d'ambiente del progetto impostate qui appariranno quando si attiva una build.
Per enumerare i segreti personalizzati crittografati il meglio che puoi fare è controllare il file
.travis.yml
.Per enumerare i file crittografati puoi cercare file
.enc
nel repo, per righe simili aopenssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d
nel file di configurazione, o per iv e chiavi crittografate nelle variabili d'ambiente come:
TODO:
Esempio di build con reverse shell in esecuzione su Windows/Mac/Linux
Esempio di build che trapela la variabile d'ambiente codificata in base64 nei log
TravisCI Enterprise
Se un attaccante finisce in un ambiente che utilizza TravisCI enterprise (maggiori informazioni su cosa sia questo nelle informazioni di base), sarà in grado di attivare build nel Worker. Questo significa che un attaccante sarà in grado di muoversi lateralmente su quel server da cui potrebbe essere in grado di:
scappare all'host?
compromettere kubernetes?
compromettere altre macchine che eseguono nella stessa rete?
compromettere nuove credenziali cloud?
Riferimenti
Last updated