
Ce script vérifie la vulnérabilité d'énumération de noms d'utilisateur d'OpenSSH 7.7 (et versions antérieures) (CVE-2018-15473). Il envoie un paquet d'authentification malformé et interprète la réponse du serveur SSH pour identifier les noms d'utilisateur valides.
Ce script vérifie la vulnérabilité d'énumération de noms d'utilisateur OpenSSH 7.7 (et versions antérieures) (CVE-2018-15473). Il envoie un paquet d'authentification malformé et interprète la réponse du serveur SSH pour identifier les noms d'utilisateur valides.
https://www.exploit-db.com/download/45233
Compatibilité Python
Toutes les instructions print ont été converties à la syntaxe Python 3 (print("...")).
map(str.strip, f.readlines()) a été remplacé par une liste en compréhension pour plus de clarté et de compatibilité.
Compatibilité Paramiko 3.x+ Remplacement de :
paramiko.auth_handler.AuthHandler._handler_table[...]
par :
from paramiko.auth_handler import AuthHandler
client_table = AuthHandler._client_handler_table.fget(AuthHandler)
Cela évite TypeError: 'property' object is not subscriptable.
Remplacement du patch direct :
handler_table[MSG_SERVICE_ACCEPT] = malform_packet
par
client_table[paramiko.common.MSG_SERVICE_ACCEPT] = malform_packet
Optimisation de la génération de clés RSA La génération répétée de clés RSA 1024 bits (lente et non sécurisée) a été évitée. Une RSAKey 2048 bits en cache a été introduite pour les tests.
Corrections de la journalisation et de la sortie
La dépendance au caractère obligatoire de args.outputFile a été supprimée.
Un repli sur sys.stdout a été ajouté si --outputFile n'est pas fourni.
Corrections mineures Désactivation de la journalisation interne bruyante de Paramiko. Remplacement des modèles de gestion d'exceptions obsolètes ou redondants. Application d'un espacement et d'une indentation cohérents (conversion de toutes les tabulations en 4 espaces).
Installer les dépendances :
pip3 install -r requirements.txt
python3 open-ssh-ue.py <hostname> --userList wordlist.txt
python3 open-ssh-ue.py hostname \
--userList wordlist.txt \
--threads 10 \
--outputFile results.json \
--outputFormat json
hostname : l'adresse IP ou le domaine du serveur SSH cible.--port : port SSH (par défaut 22)--threads : nombre de threads simultanés (par défaut 5)--userList : chemin vers un fichier de liste de noms d'utilisateur (un nom d'utilisateur par ligne)--username : test d'un nom d'utilisateur unique--outputFile : chemin pour enregistrer les résultats (optionnel ; affiche dans le terminal si omis)--outputFormat : format de sortie : list, json ou csv (par défaut : list)list : résultat en texte brut par nom d'utilisateurjson : liste structurée des noms d'utilisateur valides/invalidescsv : valeurs séparées par des virgulesUtilisez cet outil uniquement sur des systèmes que vous possédez ou pour lesquels vous avez une autorisation explicite de test. Toute utilisation non autorisée est illégale et contraire à l'éthique.