TravisCI Security
Cos'è TravisCI
Travis CI è un servizio di integrazione continua ospitato o in locale utilizzato per compilare e testare progetti software ospitati su diverse piattaforme git diverse.
pageBasic TravisCI InformationAttacchi
Trigger
Per lanciare un attacco è necessario prima sapere come attivare una build. Per impostazione predefinita, TravisCI attiverà una build su push e pull request:
Cron Jobs
Se si ha accesso all'applicazione web è possibile impostare crontab per eseguire la build, questo potrebbe essere utile per la persistenza o per attivare una build:
Sembra che non sia possibile impostare crontab all'interno del file .travis.yml
secondo questo.
PR di terze parti
TravisCI di default disabilita la condivisione delle variabili d'ambiente con le PR provenienti da terze parti, ma qualcuno potrebbe abilitarlo e quindi potresti creare PR nel repository ed estrarre i segreti:
Estrarre Segreti
Come spiegato nella pagina delle informazioni di base, ci sono 2 tipi di segreti. I segnreti delle variabili d'ambiente (che sono elencati nella pagina web) e i segnreti personalizzati criptati, che sono memorizzati all'interno del file .travis.yml
come base64 (nota che entrambi, memorizzati criptati, 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 segnreti personalizzati criptati la cosa migliore che puoi fare è controllare il file
.travis.yml
.Per enumerare i file criptati puoi controllare i file
.enc
nel repository, 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 criptate nelle Variabili d'ambiente come:
DA FARE:
Esempio di build con reverse shell in esecuzione su Windows/Mac/Linux
Esempio di build che lascia trapelare l'ambiente codificato in base64 nei log
TravisCI Enterprise
Se un attaccante finisce in un ambiente che utilizza TravisCI enterprise (ulteriori informazioni su cosa sia in informazioni di base), sarà in grado di attivare le build nel Worker. Ciò significa che un attaccante sarà in grado di muoversi lateralmente verso quel server da cui potrebbe essere in grado di:
scappare all'host?
compromettere kubernetes?
compromettere altre macchine in esecuzione nella stessa rete?
compromettere nuove credenziali cloud?
Riferimenti
Last updated