Telnet n'authentifie qu'au login ; ensuite la session n'est qu'un flux TCP non chiffré sans authentification par paquet. Un attaquant on-path la détourne donc : en injectant des segments TCP forgés avec les bons numéros de séquence (observables parce que le trafic est en clair), il insère des commandes dans le flux que le serveur exécute en tant qu'utilisateur déjà authentifié, ou désynchronise et prend entièrement le contrôle de la session. Cela contourne complètement le login, l'attaquant n'a jamais besoin du mot de passe, il chevauche une session que quelqu'un d'autre a authentifiée, et s'exécute avec les privilèges de cet utilisateur.
# on-path position to the Telnet session (ARP/route)
# observe the stream to learn the TCP sequence/ack state (cleartext makes this easy)
# inject a command segment with the right seq/ack so the server executes it as the user
# classic tooling automated TCP session hijacking against telnet/rlogin:
# (e.g. the historic Hunt/Juggernaut tools; modern equivalents craft segments directly)
Notes d'exploitation#
- Le détournement chevauche une session authentifiée, il n'a donc besoin d'aucun identifiant, seulement d'une position on-path et du flux en clair pour lire l'état séquence/ack destiné à l'injection.
- Injecter une seule commande (ajouter un utilisateur, écrire une clé, démarrer un reverse shell) suffit souvent et est moins perturbateur qu'une prise de contrôle complète, qui peut désynchroniser et alerter l'utilisateur.
- La commande injectée s'exécute avec les privilèges de la victime, fréquemment administratifs sur l'appareil, de sorte qu'une seule commande injectée peut être une compromission totale.
- C'est le versant actif de l'interception Telnet ; les équivalents passifs sont le sniffing de mot de passe et l'interception de commandes, et la même faiblesse en clair rend les trois possibles.