Au-delà de ses faiblesses de protocole, le code du serveur Telnet lui-même a un long historique de bugs de corruption mémoire, et parce que telnetd s'exécute souvent en tant que root et est antérieur aux protections modernes contre l'exploitation (en particulier sur les builds Unix hérités et embarqués), ceux-ci donnent une exécution de code à distance avec un privilège élevé. Les classes classiques sont les débordements de buffer sur la pile dans la gestion des options et de l'environnement (les chemins de code telrcv/option de chiffrement) et les failles de chaîne de format, plusieurs atteignables avant authentification. Un ancien telnetd exposé n'est donc pas seulement un login faible mais une cible de RCE directe une fois son empreinte prise.
# fingerprint the telnetd implementation/version (banner, option negotiation)
nc <target> 23; nmap -p23 -sV <target>
# match the build to the applicable advisory: stack overflow vs format string
Sous-thèmes#
- Stack overflow : débordements de buffer dans la gestion des options/de l'environnement.
- Format string : failles de chaîne de format dans telnetd.