TravisCI Sécurité
Reading time: 4 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
Qu'est-ce que TravisCI
Travis CI est un service de intégration continue hébergé ou sur site utilisé pour construire et tester des projets logiciels hébergés sur plusieurs différentes plateformes git.
Attaques
Déclencheurs
Pour lancer une attaque, vous devez d'abord savoir comment déclencher une construction. Par défaut, TravisCI déclenchera une construction lors des envois et des 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 :
note
Il semble qu'il ne soit pas possible de définir des tâches cron à l'intérieur du .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 au dépôt et exfiltrer les secrets :
Dumping Secrets
Comme expliqué dans la page informations de base, il existe 2 types de secrets. Les secrets de variables d'environnement (qui sont listés sur la page web) et les secrets chiffrés personnalisés, qui sont stockés dans le fichier .travis.yml
sous forme de base64 (notez que les deux, une fois stockés chiffrés, finiront par être des variables d'environnement dans les machines finales).
- Pour énumérer les secrets configurés comme 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, pour des 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 pour des iv et clés chiffrés dans les Variables d'Environnement telles que :
À FAIRE :
- Exemple de construction avec un shell inversé fonctionnant sur Windows/Mac/Linux
- Exemple de construction fuyant l'encodage base64 des env dans les logs
TravisCI Enterprise
Si un attaquant se retrouve dans un environnement utilisant TravisCI enterprise (plus d'infos sur ce que c'est dans les informations 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 capable de :
- échapper à l'hôte ?
- compromettre kubernetes ?
- compromettre d'autres machines fonctionnant sur le même réseau ?
- compromettre de nouveaux identifiants cloud ?
Références
- https://docs.travis-ci.com/user/encrypting-files/
- https://docs.travis-ci.com/user/best-practices-security
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.