Wi-Fi: Default key algorithms
                               (acte II)
Auteur : Gorn
Zine: Rafale #16



1) Introduction

Quelques années se sont écoulées après la publication de la première partie dans
l'e-zine Rafale #12 en décembre 2008 (#1) et de nouveaux algorithmes ont été
découverts concernant nos MachinTrucBox.

Cette deuxième édition va vous permettre de refaire un petit tour d'horizon de
ces FAI et constructeurs, et des fameux algorithmes de génération de clé par
défaut. Et vous allez voir que certaines choses n'ont vraiment pas changées.


2) Tecom AH4021/AH4222, AliceBox Hitachi et Club Internet Box


  2.1) Introduction

Ces modems et la technique pour trouver la clé WEP sur des Club Internet Box ont
déjà été traités dans le premier article. Cependant, pour le plaisir, nous allons
voir quelques autres techniques sur les ESSID personnalisés mais masqués, et nous
allons nous pencher sur la clé WEP des modems AliceBox Hitachi.


  2.2) ESSID personnalisé mais masqué

Nous avons déjà vu la technique pour trouver un ESSID par défaut mais masqué (#1).
Pour rappel, en prenant l'adresse mac 00:16:38:12:34:61, nous récupérons
les 3 derniers octets, soit 123461, puis on applique la soustraction suivante
0x123461 - 0x00000B = 0x123456. Ainsi, en fonction de la taille de l'ESSID masqué,
on obtient l'ESSID ALICE-123456 (12) ou l'ESSID TECOM-AH4222-123456 (19).

Voici une liste décrivant le périmètre de cette technique, dans cette liste
yyyyyy est le résultat de la soustraction xxxxxx - 0x00000B.


         MAC (BSSID)       | ESSID par défaut
        -------------------|--------------------------------------
         00:03:C9:0x:xx:xx | ALICE-0yyyyy
         00:03:C9:1x:xx:xx | ALICE-1yyyyy
         00:16:38:xx:xx:xx | ALICE-yyyyyy ou TECOM-AH4222-yyyyyy
         00:19:15:xx:xx:xx | TECOM-AH4222-yyyyyy
 

Si vous possédez ce modem et vous souhaitez personnaliser votre ESSID en "BOB"
par exemple, alors vous allez être confronté à un problème contraignant dans
l'interface d'administration.


        Interface d'administration

           Image n°1 - Administration pour une AliceBox Hitachi


En effet, la fin de l'ESSID ne peut pas être modifiable et donc il peut être 
devinable facilement avec la technique décrite ci-dessus.

Si nous avons un ESSID personnalisé, masqué de taille 9 et une adresse mac
correspondant à 00:16:38:12:34:61, nous sommes capable de prédire que la fin
de l'ESSID masqué correspond à -123456. Ainsi, il nous reste plus qu'à
utiliser une technique de brute force (avec le logiciel mdk3 par exemple) pour
tester toutes les combinaisons possibles ???-123456.

                            AAA-123456
                            AAB-123456
                            AAC-123456
                            [...]
                            BOA-123456
                            BOB-123456 => Trouvé

Après avoir trouvé l'ESSID BOB-123456, vous pouvez tenter votre chance
pour trouver la clé WEP par défaut avec la méthode décrite dans la première
partie (#1) qui utilise les 26 premiers caractères du hash SHA-1 de l'ESSID
TECOM-AH4222-123456. Si cela ne fonctionne pas, soit la clé WEP a été
modifiée ou soit le modem est une AliceBox et non une Club Internet Box.


  2.3) AliceBox Hitachi, génération de la clé WEP

En cherchant des informations, nous avons souvent de fausses explications qui
affirment un lien sur la génération de clé WEP entre AliceBox et CI Box.

Cependant, l'algorithme par défaut n'est pas similaire. Cette découverte a été
faite par guifort sur le forum crack-wifi.com. (#2)

En effet, en démarrant le routeur avec un câble série, il a pu constater dans
la séquence de démarrage du modem quelques informations intéressantes.


            Boot
        
             Image n°2 - Séquence de boot de l'AliceBox Hitachi


Nous pouvons y visualiser deux valeurs intéressantes l'Unique ID et le Key Ouput
qui semblerait être liées. Nous trouvons ces valeurs également dans notre interface
d'administration où l'Unique ID correspond à l'identifiant et la clé WEP
correspond aux 26 premiers caractères du Key Output.


              Identifiant
            
                     Image n°3 - Identifiant de l'AliceBox


          Wep Key
            
                      Image n°4 - Clé WEP de l'AliceBox            


Après quelques recherches, guifort a pu trouver l'algorithme qui générée la clé
WEP en fonction de l'Unique ID.

On prend l'Unique ID suivant 6A374C427632617671586B45456C796867583358
Puis, on le convertit en chaîne de caractère (voir correspondance ASCII), ce qui
nous donne la chaîne suivante j7LBv2avqXkEElyhgX3X
Enfin, nous hachons cette chaîne avec la fonction de hachage cryptographique SHA-1
On obtient : 6b81ee16942a0b1faa9f1c8ad9b46f2d64af5e51
La clé WEP correspond aux 26 premiers caractères (en noir).

Malgré la connaissance de cet algorithme, nous n'avons aucune information sur ce
fameux Unique ID. Après des modifications dans le modem sur le numéro de série
ou sur l'adresse mac, guifort a pu conclure que l'Unique ID restait identique et
n'était pas généré dans l'AliceBox Hitachi.

Est ce que cette valeur est aléatoire ? Est ce qu'elle est issue d'un algorithme ?
Est ce qu'elle correspond à un hash ?

Alice a encore beaucoup de chose à dévoiler ...

                            Vanessa Hessler

                Image n°5 - Vanessa Hessler incarne 'Alice'



3) Bbox Thomson (Bouygues Telecom)

Le 14 avril 2008, Kevin Devine révélait l'algorithme des clés WEP/WPA des
Alcatel/Thomson SpeedTouch (#3). Hors les Bbox de Bouygues Telecom sont produit
également par Alcatel/Thomson.

C'est en partant de ce constat et de la similitude entre la taille du passphrase
que M1ck3y (administrateur du forum Crack-wifi.com) a découvert en septembre 2009
que la génération des clés WEP/WPA était la même (#4).


                  Bbox

                     Image n°6 - Bouygues Telecom Bbox


Pour ceux qui ne se souviennent plus, voici la méthode pour calculer la clé ...

Utilisons, en exemple, le numéro de série suivant : CP0815JT109 (53)

Le numéro de ces routeurs est sous la forme CPAABBCCDDD (EE)
Supprimons les valeurs "CC" et "EE", on obtient : CP0815109
Convertissons les caractères ASCII "DDD" par leurs valeurs hexadécimales
(1=>0x31, 0=>0x30, 9=>0x39). Ce qui donne : CP0815313039
Nous cryptons avec SHA-1: 89bdbbaee346e19b9f99294e883698faa2c37f89

Pour les modems Bbox, les trois derniers octets (c37f89) sont ajoutés à
la chaîne "Bbox-" pour devenir l'ESSID par défaut : Bbox-C37F89

Enfin, la clé de cryptage WEP/WPA par défaut correspond aux 5 premiers
octets du hash SHA-1, soit : 89bdbbaee3


Même si un attaquant peut avoir difficilement le numéro de série du routeur,
il peut prédire, à partir d'une liste de numéros de séries possibles,
qu'elles sont les clés de cryptages en fonction de la fin de l'ESSID.

Pour les Bbox, M1ck3y a adapté le logiciel "STKeys" de Kevin Devine en le
rebaptisant "BBKeys", car ce dernier gérait uniquement les numéros de série
CP05... à CP06... (année 2005 à 2006). En effet, dans le numéro de série sous
forme de CPAABBCCDDD (EE), la valeur AA du numéro de série correspond à
l'année de fabrication tandis que la valeur BB correspond au numéro de semaine
de fabrication.

En utilisant notre exemple et le logiciel "BBKeys", nous pouvons savoir, en moins
de 10 secondes, que deux clés seulement correspondent à l'ESSID Bbox-C37F89.

    BBKeys

               Image n°7 - Exemple d'utilisation de BBKeys


Suite à cette découverte, Bouygues Telecom a informé ses abonnés des mesures à
prendre en mettant en ligne des procédures pour changer leur clé de cryptage WPA.

Pour conclure, cette méthode déjà présentée dans le précédent article s'applique
également à d'autres pays, voici une liste des ESSID impactés par cet algorithme.

                  ESSID             | Pays
                 -------------------|----------------------------
                  Thomson??????     |
                  SpeedTouch??????  |
                  O2Wireless??????  | Angleterre
                  Orange-??????     |
                  INFINITUM??????   | Mexique (Telmex)
                  BigPond??????     | Australie
                  Otenet??????      | Grèce
                  Bbox-??????       | France (Bouygues Telecom)
                  DMAX??????        |
                  privat??????      |
                  BTHomeHub-????    | Angleterre
                  TN_private_?????? | Suède
                  CYTA??????        | Chypre 
 

4) Italie: Fastweb et Alice sous la coupe de la White Hats Crew


  4.1) Introduction

S'il n'y a pas eu de découverte en France en 2010, il faut se tourner chez nos
voisins les italiens de la White Hats Crew pour voir de nouvelles avancées.
En partageant leurs recherches/découvertes sur leur blog (#5), cette équipe a
permis de mettre à mal deux grands fournisseurs d'accès internet de ce pays,
Fastweb et Alice.


  4.2) Fastweb Pirelli

Tout commence le 25 mars 2010, l'équipe White Hats Crew publie sur leur site
l'algorithme de génération de la clé WPA des modems Pirelli du fournisseur
Fastweb (#6).

                       Fastweb Pirelli
                      Image n°8 - Fastweb Pirelli


Ces modems ont un ESSID de la forme FASTWEB-x-yyyyyyyyyyyy, dont x
peut prendre la valeur 1 ou 2 et y correspond au BSSID (adresse mac).
Par exemple, si nous avons le BSSID suivant 00:19:3E:A1:B2:C3
Alors l'ESSID sera : FASTWEB-1-00193EA1B2C3 ou FASTWEB-2-00193EA1B2C3
Par ce constat, il est facile de découvrir un ESSID masqué et non modifié.

Pour trouver la clé WPA, la technique est plus compliquée. Pour éviter des 
explications trop longues (que vous pouvez trouver en italien sur le site),
nous allons prendre l'exemple FASTWEB-1-00193EA1B2C3 pour résumer la technique.

Donc, on récupère les 6 derniers octects soit, 00193EA1B2C3
Puis on ajoute la clé magique suivante : 223311340281FA22114168111201052271421066
de façon à avoir 00193EA1B2C3223311340281FA22114168111201052271421066
On converti en chaîne de caractère (voir correspondance ASCII) puis on calcule
le hash MD5, donnant a37d4267f1d177f44d352978d95558a9
On récupère les 4 premiers octects a37d4267 que l'on transforme en binaire
10100011 01111101 01000010 01100111
Ensuite, on découpe ce binaire en 5 séquence de 5 bits, ce qui donne :
10100 01101 11110 10100 00100 11001 11
Puis on transforme en hexadécimal, 0x14 0x0D 0x1E 0x14 0x04. 
Enfin, on ajoute 0x57 à toutes les valeurs supérieurs ou égales à 0x0A, ce
qui nous donne 0x6B 0x64 0x75 0x6B 0x04.

La clé WPA est la suivante 6b64756b04


  4.3) Alice Pirelli AGPF

Après s'être attaqué au modem de Fastweb, l'équipe White Hats Crew a publié (#7)
le 2 juin 2010, la méthode de génération de la clé WPA sur le Pirelli Alice Gate
VoIP 2 Plus Wi-Fi (firmware AGPF).

                  Alice AGPF
                       Image n°9 - Alice Pirelli AGPF


Cette divulgation a été plutôt sensible car Alice fournit 70% des accès ADSL en
italie et il n'était pas possible de modifier la clé WPA par défaut sur ces
routeurs. Pour corriger ce problème, les ingérieurs Telecom ont dû développer un
nouveau firmware, l'AGPF 4.5.0sx, juste avant la publication de la méthode.

Afin de vous expliquer cette méthode, nous allons utiliser en exemple
l'adresse mac 00:23:8E:01:02:03 et l'ESSID Alice-96154825


Tout d'abord, la première étape consiste à récupérer le numéro de série (SN)
grâce à une suite de numéros (nommée Numéros Magiques) et l'ESSID qui est sous
la forme Alice-xxxxxxxx.

Pour cela, le numéro de série se compose de cette manière aaaaaXbbbbbbb,
dont aaaaa correspond à 5 chiffres définissant la gamme du routeur (6790 à 6910),
X est un symbole constant et yyyyyyy correspond à 7 chiffres variables.

En regardant, le tableau contenant les numéros magiques (k et Q), ci-dessous,

        Alice-96xxxxxx   Serie: 69102X*******   k= 13   Q= 96017051 
        Alice-93xxxxxx   Serie: 69101X*******   k= 13   Q= 92398366 
        Alice-56xxxxxx   Serie: 67902X*******   k= 13   Q= 54808800 
        Alice-55xxxxxx   Serie: 67904X*******   k=  8   Q= 55164449 
        Alice-54xxxxxx   Serie: 67903X*******   k=  8   Q= 52420689
        Alice-48xxxxxx   Serie: 67903X*******   k=  8   Q= 47896103 
        Alice-46xxxxxx   Serie: 67902X*******   k= 13   Q=   390151  

Nous savons que le numéro de série de notre ESSID Alice-96154825 correspond à
un routeur dont le numéro de série commence par 69102Xyyyyyy
Pour trouver les valeurs yyyyyyy, nous prenons la valeur du ESSID 96154825
On applique l'opération (SSID - Q) / k, soit (96154825 - 96017051) / 13
Ce qui nous donne 10598 et donc le numéro de série 69102X0010598 


Grâce à ce numéro de série, nous allons pouvoir appliquer la deuxième étape qui
consiste à générer la clé WPA à partir de l'adresse mac, du numéro de série et de
la chaine suivante 64C6DDE3E579B6D986968D3445D23B15CAAF128402AC560005CE2075913FDCE8

Pour cela, on calcule le hash SHA256 de la convertion hexa en string de la chaine
64C6DDE3E579B6D986968D3445D23B15CAAF128402AC560005CE2075913FDCE8, du numero
de série et de la convertion hexa en string de l'adresse mac. De façon à avoir,
la formule SHA256(hex2str(MagicN) + SN + hex2str(MAC)) qui donnera, dans notre
exemple, le hash df7447786311ca81a0f83ddcd508f19668543b1a00145c18b74a79baabb4fbec

Ensuite, on initialise le tableau suivant

unsigned char charset[] = {
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f',
'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b',
'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r',
's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3',
'4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f',
'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b',
'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r',
's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3'
};

On utilise chaque octet de notre hash obtenu à partir de l'algorithme et on le
converti en décimal. Ce nombre est ensuite utilisé comme un index dans le
tableau pour obtenir enfin toutes les lettres ou chiffres qui composent la clé.

Dans notre exemple, nous obtenons le résultat suivant

                   0xDF => 223 => charset [223] => '7'
                   0x74 => 116 => charset [116] => '8'
                   0x47 =>  71 => charset [71]  => 'z'
                   0x78 => 120 => charset [120] => 'c'
                   0x63 =>  99 => charset [99]  => 'r'
                   ...

Finalement, la clé WPA correspond à 78zcrhmlgwp4x8p6wcnq0kko


  4.4) Conclusion

Après ces deux publications, la White Hat Crews a également publié, le 9 septembre
2010, les mécanismes du Tesley Fastweb. L'algorithme se base sur une fonction de
hachage nommée hashword mis en oeuvre par le Dr Bob Jenkins. (#8)

Pour ceux qui veulent expérimenter ces techniques, vous pouvez trouver tous ces
algorithmes dans plusieurs applications, mobiles ou non. Notamment, vous pouvez
utiliser le logiciel AGPF Tool Calculator de la Team Shark wifi (#9) ou le
logiciel WPA Tester de Fr3nsis (#10) qui regroupe toutes ces méthodes.

             WPA Tester
                    Image n°10 - WPA Tester by Fr3nsis



5) Conclusion

En analysant les bornes Wi-Fi dans une ville française en décembre 2010, nous
avons pu déceler sur 1000 bornes non masqué : 42 Bbox, 3 SpeedTouch, 2 Tecom
AH4222 (CI Box) et aucune AliceBox Hitachi. Cependant, nous pouvons nous demander
combien de ces routeurs ont leur clé par défaut ?

Devant ce constat et les démonstrations sur les faiblesses des algorithmes, nous
pouvons conclure par la même recommandation que l'article précédent, à savoir,
même si votre routeur n'est pas lister dans cet article, modifier le mot de
passe et l'ESSID de votre routeur ! Et n'oubliez pas, un reset a pour effet de
revenir à la configuration par défaut.

Enfin, en septembre 2010, Peugeot annonçait un accord avec Tesley et Fastweb pour
transformé la 3008 italienne en hot-spot wifi mobile avec l'option "WEBtoGO
Compact". (#9)

Devant cette annonce et la publication du White Hat Crew sur le Tesley Fastweb
(parues le même mois), nous pouvons voir que la sécurité du wifi va beaucoup
plus loin que l'accès à un simple espace virtuel et qu'elle pourrait jouer à
l'avenir sur une sécurité bien réel, comme le contrôle d'une voiture ...


6) Références

 1. Wi-Fi: Default key algorithms (Rafale #12)
 2. Alicebox : Petites Recherche
 3. GNUCitizen : Default key algorithm in Thomson and BT Home Hub routers
 4. Faille Bbox WPA (Bouygues Telecom): générateur Bbkeys (exclu: 0day)
 5. White Hats Crew
 6. [White Hats Crew] Pirelli Fastweb – Free Access!
 7. [White Hats Crew] Alice AGPF: l’algoritmo!
 8. [White Hats Crew] Telsey FASTWEB: Full Disclosure
 9. AGPF Tool Calculator
10. Blog de Francesco Pompili
11. La Peugeot 3008 italienne WiFisée grâce à Telsey et Fastweb