Files
hacktricks-cloud/src/pentesting-ci-cd/travisci-security/README.md

3.3 KiB

TravisCI Security

{{#include ../../banners/hacktricks-training.md}}

What is TravisCI

Travis CI è un servizio di integrazione continua hosted o on premises utilizzato per costruire e testare progetti software ospitati su diverse differenti piattaforme git.

{{#ref}} basic-travisci-information.md {{#endref}}

Attacks

Triggers

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 hai accesso all'applicazione web, puoi impostare cron per eseguire la build, questo potrebbe essere utile per la persistenza o per attivare una build:

Note

Sembra che non sia possibile impostare cron all'interno del .travis.yml secondo questo.

Third Party PR

TravisCI per impostazione predefinita disabilita la condivisione delle variabili di ambiente con le PR provenienti da terze parti, ma qualcuno potrebbe abilitarlo e poi potresti creare PR per il repo ed esfiltrare i segreti:

Dumping Secrets

Come spiegato nella pagina informazioni di base, ci sono 2 tipi di segreti. Segreti delle variabili di ambiente (che sono elencati nella pagina web) e segreti crittografati personalizzati, che sono memorizzati all'interno del file .travis.yml come base64 (nota che entrambi, essendo memorizzati in modo crittografato, finiranno come variabili di ambiente nelle macchine finali).

  • Per enumerare i segreti configurati come Variabili di Ambiente, vai alle impostazioni del progetto e controlla l'elenco. Tuttavia, nota che tutte le variabili di ambiente del progetto impostate qui appariranno quando attivi una build.
  • Per enumerare i segreti crittografati personalizzati, il miglior modo è controllare il file .travis.yml.
  • Per enumerare i file crittografati, puoi controllare i file .enc nel repo, per righe simili a openssl 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 crittografati nelle Variabili di Ambiente come:

TODO:

  • Esempio di build con reverse shell in esecuzione su Windows/Mac/Linux
  • Esempio di build che esfiltra l'ambiente codificato in base64 nei log

TravisCI Enterprise

Se un attaccante si trova in un ambiente che utilizza TravisCI enterprise (maggiori informazioni su cosa sia nella informazioni di base), sarà in grado di attivare build nel Worker. Questo significa che un attaccante sarà in grado di muoversi lateralmente verso quel server da cui potrebbe essere in grado di:

  • scappare verso l'host?
  • compromettere kubernetes?
  • compromettere altre macchine in esecuzione nella stessa rete?
  • compromettere nuove credenziali cloud?

References

{{#include ../../banners/hacktricks-training.md}}