TravisCI Security

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks :

Qu'est-ce que TravisCI

Travis CI est un service d'intégration continue hébergé ou sur site utilisé pour construire et tester des projets logiciels hébergés sur plusieurs plateformes git différentes.

pageBasic TravisCI Information

Attaques

Déclencheurs

Pour lancer une attaque, vous devez d'abord savoir comment déclencher une construction. Par défaut, TravisCI va déclencher une construction sur les poussées et les demandes de tirage :

Tâches Cron

Si vous avez accès à l'application web, vous pouvez définir des tâches cron pour exécuter la construction, cela pourrait être utile pour la persistance ou pour déclencher une construction :

Il semble qu'il ne soit pas possible de définir des tâches cron à l'intérieur du fichier .travis.yml selon ceci.

PR de tiers

TravisCI désactive par défaut le partage des variables d'environnement avec les PR provenant de tiers, mais quelqu'un pourrait l'activer et vous pourriez alors créer des PR pour le dépôt et exfiltrer les secrets :

Extraction de secrets

Comme expliqué dans la page d'informations de base, il existe 2 types de secrets. Les secrets des variables d'environnement (qui sont répertoriés sur la page web) et les secrets personnalisés chiffrés, qui sont stockés à l'intérieur du fichier .travis.yml en base64 (notez que les deux, une fois chiffrés, se retrouveront en tant que variables d'environnement sur les machines finales).

  • Pour énumérer les secrets configurés en tant que variables d'environnement, allez dans les paramètres du projet et vérifiez la liste. Cependant, notez que toutes les variables d'environnement du projet définies ici apparaîtront lors du déclenchement d'une construction.

  • Pour énumérer les secrets chiffrés personnalisés, le mieux que vous puissiez faire est de vérifier le fichier .travis.yml.

  • Pour énumérer les fichiers chiffrés, vous pouvez vérifier les fichiers .enc dans le dépôt, les lignes similaires à openssl aes-256-cbc -K $encrypted_355e94ba1091_key -iv $encrypted_355e94ba1091_iv -in super_secret.txt.enc -out super_secret.txt -d dans le fichier de configuration, ou les clés iv et chiffrées dans les variables d'environnement telles que :

À faire :

  • Exemple de construction avec un shell inversé s'exécutant sur Windows/Mac/Linux

  • Exemple de construction divulguant l'environnement encodé en base64 dans les journaux

TravisCI Enterprise

Si un attaquant se retrouve dans un environnement qui utilise TravisCI Enterprise (plus d'informations sur ce que c'est dans la information de base), il pourra déclencher des constructions dans le Worker. Cela signifie qu'un attaquant pourra se déplacer latéralement vers ce serveur à partir duquel il pourrait être en mesure de :

  • s'échapper vers l'hôte ?

  • compromettre Kubernetes ?

  • compromettre d'autres machines s'exécutant dans le même réseau ?

  • compromettre de nouvelles informations d'identification cloud ?

Références

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks :

Dernière mise à jour