Souvenirs d’école

Wed 05 September 2007 by alex

4 septembre 2007, c'est la rentrée des classes. Cette date signe aussi le retour de l'enfant epleuré rentrant chez lui le soir son lourd cartable débordant de devoirs à faire à la maison. Sors tes crayons de couleur, ton cahier et ton debugger, la maîtresse t'as donné un exercice et nous allons la satisfaire.

Dans Vulgus pecus et chiffrement WEP nous avions découvert l'utilitaire WEPTool ainsi que l'existence d'une corrélation entre la clé WEP et le SSID dans les configurations par défaut proposées par un FAI français. La maîtresse souhaite faire la lumière sur cette relation et nous propose un petit exercice de reverse-engineering appliqué. Ouvre grand tes oreilles et ton cahier, écoute cette magnifique histoire, toute écrite en assembleur.

Introduction liminaire

Pour rappel l'utilitaire WEPTool se présente sous la forme suivante :

  • Un exécutable nommé ConfWiFi.exe
  • Un dossier nommé etc, contenant une DLL (Dynamic Link Library) ainsi que trois images destinées à l'interface graphique de l'utilitaire.

L'exécutable principal a visiblement été développé à l'aide AutoIt v3 comme le laisse penser certaines traces présentes dans le binaire. Nous voyons rapidement que le code sensible se situe dans la DLL, un moyen rapide de s'en convaincre est de regarder ses exports :

exportDLL.png

Nous loadons la DLL dans IDA et nous allons analyser la fonction StringHash. Premièrement nous pouvons identifier les constantes d'initialisation de deux algorithmes de hachage à savoir MD5 et SHA1.

constSHA1.png

There's a time to live and a time to die

Dans le code de la fonction StringHash, nous pouvons voir que l'algorithme utilisé dépend d'un argument de la fonction.

hashSwitch.png

Une investigation plus poussée nous permet de confirmer que pour les box V1 et V2 de notre FAI, l'algorithme utilisé est le SHA1-160.

Pour confirmer tous les renseignements que nous avons rassemblés voici la clé telle qu'elle est donnée par l'utilitaire pour notre box d'étude dont le SSID serait TECOM-AH4222-123456: D3DD67DF9616D5E9E953D8708F

Maintenant calculons le SHA1 160 bits de ce même SSID, nous obtenons : D3DD67DF9616D5E9E953D8708F01BC375A85199B.

Rendons notre copie

Une première conclusion est que pour les box V1 et V2, la clé WEP par défaut n'est autre que le SHA1-160 du SSID tronqué à 128 bits. Nous venons de faire un petit exercice de reverse artisanal sans grande difficulté mais intéressant pour une première approche du domaine. L'algorithme en lui même a finalement peu d'importance, nous avons déjà discuté des problèmes sécurité que pose cet utilitaire et ne reviendrons pas dessus.

Pour ce soir ça sera tout, imaginons seulement le regard fier et rempli de bienveillance que la maîtresse t'adressera demain.