TravisCI Security

Support HackTricks

What is TravisCI

Travis CI es un servicio de integración continua alojado o en local utilizado para construir y probar proyectos de software alojados en varias plataformas git diferentes.

Basic TravisCI Information

Attacks

Triggers

Para lanzar un ataque primero necesitas saber cómo activar una construcción. Por defecto, TravisCI activará una construcción en los pushes y pull requests:

Cron Jobs

Si tienes acceso a la aplicación web, puedes configurar crons para ejecutar la construcción, esto podría ser útil para persistencia o para activar una construcción:

Parece que no es posible configurar crons dentro del .travis.yml según esto.

Third Party PR

TravisCI, por defecto, desactiva el compartir variables de entorno con PRs provenientes de terceros, pero alguien podría habilitarlo y luego podrías crear PRs al repositorio y exfiltrar los secretos:

Dumping Secrets

Como se explica en la página de información básica, hay 2 tipos de secretos. Secretos de Variables de Entorno (que están listados en la página web) y secretos encriptados personalizados, que se almacenan dentro del archivo .travis.yml como base64 (ten en cuenta que ambos, al ser almacenados encriptados, terminarán como variables de entorno en las máquinas finales).

  • Para enumerar secretos configurados como Variables de Entorno, ve a la configuración del proyecto y revisa la lista. Sin embargo, ten en cuenta que todas las variables de entorno del proyecto configuradas aquí aparecerán al activar una construcción.

  • Para enumerar los secretos encriptados personalizados, lo mejor que puedes hacer es revisar el archivo .travis.yml.

  • Para enumerar archivos encriptados, puedes buscar archivos .enc en el repositorio, por líneas similares a openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d en el archivo de configuración, o por iv y claves encriptadas en las Variables de Entorno como:

TODO:

  • Ejemplo de construcción con shell inverso ejecutándose en Windows/Mac/Linux

  • Ejemplo de construcción filtrando la variable de entorno codificada en base64 en los logs

TravisCI Enterprise

Si un atacante termina en un entorno que utiliza TravisCI enterprise (más información sobre qué es esto en la información básica), podrá activar construcciones en el Worker. Esto significa que un atacante podrá moverse lateralmente a ese servidor desde el cual podría ser capaz de:

  • ¿escapar al host?

  • ¿comprometer kubernetes?

  • ¿comprometer otras máquinas que se ejecutan en la misma red?

  • ¿comprometer nuevas credenciales en la nube?

References

Support HackTricks

Last updated