TravisCI Security

Aprende hacking de AWS de cero a héroe con htARTE (Experto en Red Team de AWS de HackTricks)!

Otras formas de apoyar a HackTricks:

¿Qué es TravisCI

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

pageBasic TravisCI Information

Ataques

Disparadores

Para lanzar un ataque primero necesitas saber cómo activar una compilación. Por defecto, TravisCI activará una compilación en empujes y solicitudes de extracción:

Trabajos Cron

Si tienes acceso a la aplicación web puedes programar trabajos cron para ejecutar la compilación, esto podría ser útil para persistencia o para activar una compilación:

Parece que no es posible programar trabajos cron dentro del archivo .travis.yml según esto.

PR de Terceros

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

Extracción de Secretos

Como se explica en la página de información básica, hay 2 tipos de secretos. Los secretos de Variables de Entorno (que se enumeran en la página web) y secretos encriptados personalizados, que se almacenan dentro del archivo .travis.yml como base64 (nota que ambos, 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 verifica la lista. Sin embargo, ten en cuenta que todas las variables de entorno del proyecto configuradas aquí aparecerán al activar una compilación.

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

  • Para enumerar archivos encriptados puedes buscar archivos .enc en el repositorio, 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 iv y claves encriptadas en las Variables de Entorno como:

POR HACER:

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

  • Ejemplo de compilación filtrando el env en base64 codificado en los registros

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 compilaciones 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?

Referencias

Aprende hacking de AWS de cero a héroe con htARTE (Experto en Red Team de AWS de HackTricks)!

Otras formas de apoyar a HackTricks:

Última actualización