Windows NT craqué à partir de Windows CE
Un développeur d’applications a découvert, par hasard, que les PC de poche connectés à Windows NT conservent avec eux le mot de passe de connection au réseau NT.
Cela paraît tout simplement incroyable. Une simple balade dans une base de registres, une petite opération mathématique de cinq minutes, et hop, on découvre le mot de passe de connexion au réseau NT.
C’est un développeur d’applications sous Windows CE, Jeff Zamora, qui a levé le lièvre dans les colonnes du site CEGadgets.com. Plaisant gadget, en vérité… Cela se passe quand un PC de poche tournant sous l’OS allégé de Microsoft, Windows CE, se connecte à une machine NT via ActiveSync 2.x. Au démarrage du CE, NT demande, comme à chaque fois, un nom d’utilisateur, un mot de passe, et un domaine. Or, comme ce programmeur d’outils Microsoft était amené à redémarrer très souvent, il avait coché la case « Se rappeler du mot de passe », pour aller plus vite, de sorte que le mot de passe soit conservé dans les entrailles du PC de poche : la base de registre.
Comme tout bon développeur, il est allé voir dans la base des registres la clé concernée (à savoir : HKEY_CURRENT_USERComm RasBook’Serial@xxxK). Première étrangeté : la longueur de la clé, exprimée en bit est égale à celle du mot de passe. En changeant son mot de passe plusieurs fois, il a constaté que la longueur était à chaque fois la même. Quel flair… Il ne mit pas longtemps non plus à remarquer que la valeur de chaque lettre en clair et à la même position correspondait toujours à la même valeur et même position, dans la chaîne cryptée.
Il n’en fallait pas plus pour lui faire suspecter l’usage de la bonne vieille méthode de cryptage XOR. Utilisée depuis les premiers âges du MS-Dos par Microsoft (et les autres éditeurs…), sa simplicité a fourni à bon nombre de hackers les clés de plus d’un système. XOR est une fonction de logique mathématique qui correspond au « Ou exclusif », et qui permet d’échanger dans une chaîne de bits les 0 en 1 ( voir le tableau du Jargon français). En matière de cryptographie, on compare les bits de chaque lettre en clair aux bits de chaque lettre d’une clé, pour obtenir des bits cryptés. Mais surtout, cette fonction présente l’immense intérêt d’être réversible : il suffit d’appliquer aux bits cryptés la même opération pour retrouver le bit en clair.
Jeff Zamora a donc inventé un mot de passe assez long, puis a repéré à partir d’où la séquence était répétée, pour en déduire la clé. L’intuition aidant, il a découvert que les bits correspondaient à des codes ASCII, et qu’ils donnaient le mot de passe – clé « susageP », à savoir « Pegasus » à l’envers. Pegasus était le petit nom de Windows CE lors des phases de développement…On aurait tout aussi bien pu conseiller aux auteurs de Windows CE d’utiliser QWERTYUIOP…
Une telle négligence de la part de Microsoft, qui clame partout son attachement à la sécurité laisse pensif. Les mots de passe des techniciens réseaux stockés quasiment en clair dans une petite machine que n’importe qui peut subtiliser… Un programme de fonction XOR s’écrit en quelque ligne de Basic. S’il est un conseil à donner aux administrateurs friands de gadgets, c’est bien de surveiller leur PC de poche.
Pour en savoir plus :