Savoir quels noms d'utilisateur existent focalise les attaques d'identifiants et évite les tentatives gaspillées et bruyantes contre des comptes absents. SSH divulgue cela de deux façons. D'abord, les méthodes d'authentification que le serveur propose peuvent différer par utilisateur, un utilisateur configuré pour les clés uniquement contre un autorisant les mots de passe, ou un compte existant contre un inexistant, ce qu'une sonde des méthodes acceptées distingue. Ensuite, certaines versions d'OpenSSH présentaient une vulnérabilité temporelle : le serveur effectuait un vrai hachage (lent) de mot de passe pour les utilisateurs valides mais abandonnait tôt pour les invalides, donc le timing de la réponse révélait l'existence du compte.
# method-difference probe: compare accepted auth methods across candidate users
for u in root admin deploy svc backup; do
echo -n "$u: "; ssh -o PreferredAuthentications=none -o StrictHostKeyChecking=no "$u@<target>" 2>&1 \
| grep -i 'authentications that can continue'; done
# timing-based enumeration on vulnerable OpenSSH versions
nmap -p22 --script ssh-brute --script-args userdb=users.txt <target> # (careful: attempts auth)
# dedicated tools implement the timing/version-specific checks
Notes d'exploitation#
- Le signal de différence de méthode est indépendant de la version et peu bruyant là où il existe : un utilisateur à qui est proposé
publickeyuniquement contre un autre à qui est proposépublickey,passworddistingue la configuration du compte et parfois son existence. - Le canal auxiliaire temporel ne s'applique qu'à certaines versions d'OpenSSH ; faites correspondre la version de la bannière avant de vous y fier, et tenez compte de la gigue réseau en échantillonnant à plusieurs reprises.
- Amorcez les candidats à partir d'autres sources (RID cycling SMB, noms d'utilisateur d'applications web, email/OSINT, conventions de comptes de service) et validez-les ici avant la force brute de mot de passe.
- L'énumération qui tente réellement une authentification est journalisée ; préférez la sonde de méthodes non authentifiante lorsque l'objectif est de rester discret.