Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
CVE-2018-10933 — Challenge CTF exploitant CVE-2018-10933 contournement d'authentification libSSH. Comprend configuration Docker, script d'exploitation et guide pas à pas pour découvrir des flags cachés via des liens symboliques. | Kitploit
Outils/GitHubGitHub/silasspringer/cve-2018-10933
Analyse des VulnérabilitésExploitationCTFApprentissage et ÉducationExploitation de BinairesLabs et Pratique
GitHubsilasspringer/cve-2018-10933

CVE-2018-10933

Challenge CTF exploitant CVE-2018-10933 contournement d'authentification libSSH. Comprend configuration Docker, script d'exploitation et guide pas à pas pour découvrir des flags cachés via des liens symboliques.

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
Voir le dépôt
il y a 3 ansPas encore vérifié

Défi CTF Preuve de Concept

Par Silas Springer

Basé sur CVE-2018-10933

Contexte

CVE-2018-10933 est une vulnérabilité découverte dans certaines versions de libSSH, qui peut permettre un accès potentiellement illimité à la machine. La vulnérabilité provient d'une gestion incorrecte des en-têtes de paquets pendant le processus d'authentification, où l'envoi d'un paquet contrefait avec l'octet MSG_USERAUTH_SUCCESS peut permettre à quiconque de contourner l'authentification. Ils ont alors un accès complet à la machine.

La base de ce défi est donc d'obliger les concurrents à fouiner dans l'image docker fournie, découvrir cette vulnérabilité, l'exploiter pour obtenir un accès, puis trouver la clé cachée dans un lien symbolique sur la machine.

Exemple de description de défi CTF

root@kitploit:~
Someone got into my machine via port 22...
It looks like they didnt even know my credentials.

Anyways, they made a file with an odd name, but it's gone now, 
I wonder if there's still some trace of the filename - 
it might be something symbolic of the attacker...

Can you figure out how they got in and help me find the filename?

Solution

Ce qui suit est une procédure détaillée de la solution prévue :

Remarquez, d'après la description du défi, que l'attaquant a obtenu un accès via le port 22, un port généralement réservé à SSH. Remarquez également que l'attaquant n'a pas utilisé d'identifiants pour obtenir l'accès.

À partir de là, si vous recherchez les bugs passés permettant d'accéder à une machine via SSH sans identifiants, le problème avec l'octet MSG_USERAUTH_SUCCESS est très probable. Alternativement, en initiant une connexion au port 22, on peut déterminer la version de libSSH qui est exécutée, puis chercher les exploits courants pour cette version.

On peut également voir dans la description que le nom de fichier qu'ils cherchent à trouver (le flag) n'existe que comme cible d'un lien symbolique.

Sachant maintenant que l'accès peut être obtenu en exploitant cette vulnérabilité, on peut écrire son propre script ou copier un exemple de script qui exécute cet exploit, et lancer une commande sur la machine cible. J'ai adapté un script d'exploitation pour cette solution, et je l'ai appelé libsshauthbypass.py.

Pour exécuter ce script et obtenir le flag de la machine, dans le cas de l'image de démonstration, on peut lancer une commande similaire à la suivante :

root@kitploit:~
./libsshauthbypass.py --host localhost -p 1337 -c 'find / -type l -exec stat {} + | grep "File:" | sed -E "s/.*\-> (.*)$/\1/g" | grep "definitelyarealCTF"'
-- Notez que cela suppose que l'image est exécutée localement, ou qu'un tunnel vers le conteneur en cours d'exécution a été établi via localhost:1337

ce qui donne alors une sortie similaire à

root@kitploit:~
sspringer-fedora-CVE: ./libsshauthbypass.py --host localhost -p 1337 -c 'find / -type l -exec stat {} + | grep "File:" | sed -E "s/.*\-> (.*)$/\1/g" | grep "definitelyarealCTF"'
INFO:paramiko.transport:Connected (version 2.0, client libssh_0.8.1)
definitelyarealCTF{totally_a_REAL_flag}

Réutilisation

Pour utiliser une version de ce défi pour votre propre CTF, il est fortement recommandé de modifier le Dockerfile pour utiliser un chemin différent de celui fourni par défaut, de changer le flag dans flag.txt (bien qu'il doive toujours être sur une seule ligne), puis de reconstruire l'image. Notez qu'il peut être nécessaire d'héberger un nouveau conteneur pour chaque tentative de connexion afin d'empêcher quelqu'un d'exécuter une commande destructive et d'affecter tous les concurrents.

Pour reconstruire l'image docker avec un nouveau flag (et le tester)

  • Mettez à jour flag.txt avec le nouveau flag
  • Exécutez ./build_run <nom de l'image>[:<numéro de version] <numéro de port>
  • Utilisez ./libsshauthbypass.py ou votre propre script pour contacter le conteneur avec la charge utile correcte et une commande que vous souhaitez exécuter
  • En quittant (exit) le shell fourni par le script build_run, le conteneur sera arrêté et supprimé, mais l'image restera et sera étiquetée comme <nom de l'image>

Vidéos

Preuve de Concept : https://youtu.be/ELrOBm02ANg

Procédure du défi : https://youtu.be/Ii121piSZR0

Télécharger l’outil