TravisCI Security
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Travis CI es un servicio de integración continua hosteado o en local utilizado para construir y probar proyectos de software alojados en varias plataformas git diferentes.
Basic TravisCI InformationPara 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:
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.
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:
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 personalizados cifrados, que se almacenan dentro del archivo .travis.yml
como base64 (ten en cuenta que ambos, al ser almacenados cifrados, 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 personalizados cifrados, lo mejor que puedes hacer es revisar el archivo .travis.yml
.
Para enumerar archivos cifrados, 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 cifradas en las Variables de Entorno como:
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
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?
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)