14 enero 2014

Ahora también puedes robarle la wifi de Vodafone a tu vecino

Vuelve a ocurrir una vez más, las operadoras y fabricantes dejan al descubierto a sus usuarios y clientes. Esta vez es el turno de Vodafone y sus routers Arcadyan. Así que no tardéis en cambiar vuestra contraseña si aún no lo habéis hecho y por supuesto, recordad que birlar fluido eléctrico es delito.

Stefan Viehböck de la compañía SEC Consult Vulnerability Lab, ha encontrado el algoritmo de generación de claves (WPA2) de los conocidos EasyBox distribuidos en Europa por Vodafone.

Para llevar a cabo esta investigación Stefan revisó las patentes de Arcadyan hasta dar con una de ellas  (en perfecto alemán) donde explicaban detalladamente el método de generación:

Daraus ergibt sich, dass K1 das letzte Byte des erzeugten Wertes ist, nachdem die Logikoperation auf S7, S8, M11 und M12 durch den OR Operator ausgeführt wurde und K2 ist das letzte Byte des Wertes, der erzeugt wurde, nachdem die Logikoperation auf M9, M10, S9 und S10 durch den OR Operator durchgeführt wurde. Nachdem die Schlüsselsätze K1 und K2 erlangt wurden, kann der Erkennungscode berechnet werden. Hierbei kann der Erkennungscode dargestellt werden als „X1 Y1 Z1 X2 Y2 Z2 X3 Y3 Z3" und weist die folgenden Zusammenhänge auf: X1 = K1 XOR S10; X2 = K1 XOR S9; X3 = K1 XOR S8; Y1 = K2 XOR M10; Y2 = K2 XOR M11; Y3 = K2 XOR M12; Z1 = M11 XOR S10; Z2 = M12 XOR S9; und Z3 = K1 XOR K2.

Blah... Blah.. Básicamente, dada la dirección MAC (BSSID), que es un dato público en una red wireless, se deriva al nombre del punto de acceso y su clave. Por ejemplo, partiendo de la MAC 00:12:BF:91:0B:EC:

1.- Se substraen los 2 últimos carácteres hexadecimales (0B:EC) y se pasan a decimal: 3052.
2.- Se rellena con 0 a la izquierda, hasta llegar a las 5 cifras si el número es inferior de este tamaño: 03052
3.- Se descompone el número y se asigna a variables: S6=0, S7=3, S8=0, S9=5, S10=2.
4.- Lo mismo con los 6 últimos cuartetos de la MAC: M7=9, M8=1, M9=0, M10=B, M11=E, M12=C
5.- Se calcula K1, mediante el último nibble (medio byte) de esta suma: (S7 + S8 + M11 + M12), como el resultado es 1D, se obtiene D
6.- Lo mismo para K2: (M9 + M10 + S9 + S10) = 12 = 2
7.- Se calculan XOR de las variables de la siguiente forma:
  • X1 = K1 XOR S10 = F
  • X2 = K1 XOR S9 = 8
  • X3 = K1 XOR S8 = D
  • Y1 = K2 XOR M10 = 9
  • Y2 = K2 XOR M11 = C
  • Y3 = K2 XOR M12 = E
  • Z1 = M11 XOR S10 = C
  • Z2 = M12 XOR S9 = 9
  • Z3 = K1 XOR K2 = F

8.- Se monta el resultado con la clave final: X1 Y1 Z1 X2 Y2 Z2 X3 Y3 Z3 = F9C8C9DEF
Ya hay páginas (y seguro que pronto dominios exclusivos) que implementan este cálculo. El investigador también ha publicado código en distintos lenguajes.

Los routers afectados son los siguientes modelos:
  • EasyBox A 300
  • EasyBox A 400
  • EasyBox A 401
  • EasyBox A 600
  • EasyBox A 601
  • EasyBox A 800
  • EasyBox A 801
  • EasyBox 402
  • EasyBox 602
  • EasyBox 802
  • EasyBox 803 (no todos las versiones)
Que corresponden a las siguientes direcciones MAC:
  • 74:31:70
  • 84:9C:A6
  • 88:03:55
  • 1C:C6:3C
  • 50:7E:5D
Lo más curioso, es que este no es su único descubrimiento, ya que el pasado Agosto también publicó como se generan los pines WPS de dos de estos routers, en concreto, para los modelos 802 y 803.

Seguro que muy pronto nuestro amigo Luis Delgado, actualizará Wifi Auditor, para dar soporte a esta herramienta.

Actualización;
Gracias a un comentario nos enteramos que en SeguridadWireless.es, ya había detectado este mismo fallo para otros routers del mismo fabricante pero esta vez usados por Ya.com.

Referencias: 

28 comments :

Perico dijo...

Sigue siendo el mismo fabricante y el mismo algoritmo, ninguna novedad:

http://foro.seguridadwireless.net/desarrollo-112/wlan4xx-algoritmo-routers-yacom/

Saludos

suai dijo...

Al final caen todos!
Gracias por ponernos un poco más fácil lo de tener una wifi de "respaldo" ;)

Alejandro Ramos dijo...

Tienes Razón Perico, aunque en esa entrada no hablan de Vodafone ni de EasyBox. Tiene pinta de que Stefan ha llegado al mismo punto que dudux años después y por otra vía.

JSFM dijo...

Pues yo soy uno de los afectados por esta vulnerabilidad, es
más, este fin de semana detecte una intrusión en mi wifi y no daba crédito a lo
sucedido, ahora con este articulo ya veo cual ha sido el problema.

Yo por mi parte he activado WPA2 (por defecto viene WPA), cifrado
AES y también el filtrado por MAC.

Además he creado un script con nmap para que me detecte si
se añade algún dispositivo nuevo a mi red.

Miguel dijo...

Yo diria que Vodafone España usa el Arcadyan ARV7510 que no es EasyBox y por defecto viene con WPA no WPA2 (sí, es más inseguro pero en principio no estaría afectado por lo que se indica en el artículo). JSFM ¿puedes confirmar el modelo exacto de tu router y de que compañía es?

t0n1n0t dijo...

Buenas acerca del script que te has hecho ¿se obtendría el mismo efecto haciendo peticiones GET a la página de administracion del router y parsear los logs de DHCP? o algun servicio del router para cuando no estes en casa que te envíe un mail si se conecto un dispositivo con nueva MAC?

Luis Delgado dijo...

Por falta de tiempo aún no he lanzado la nueva versión de WIFIAuditor pero tendrá éste y bastantes otros (nuevos) algoritmos :) /espero que para finales de enero/

Con respecto a este caso, por si os es de utilidad, la comprobación de redes vulnerables la hago (lo tenía implementado ya en una versión privada) con los siguientes datos:
- Redes: (Arcor|EasyBox|Vodafone|WLAN)(-| )[0-9a-fA-F]{6}
- Comprobar que es WPA2
- MACs: 00:12:BF, 00:1A:2A, 00:1D:19, 00:23:08, 00:26:4D, 50:7E:5D, 1C:C6:3C, 74:31:70, 7C:4F:B5, 88:25:2C.

masticover dijo...

Habrá que probarlo ;) Gracias.

Un pequeño inciso, en el paso 1. creo que debería decir "Se substraen los dos últimos BYTES" en lugar de "bits"



Saludos.

Alejandro Ramos dijo...

Correcto! lo cambio. Thx!

♛ Felipe ♛ dijo...

Hola JSFM,

¿Y no te sería más fácil que hacer un script de nmap cambiar la contraseña por defecto del router? El algoritmo descubierto expone las contraseñas de fábrica.

Saludos.

JSFM dijo...

Efectivamente lo primero que hice fue cambiar la contraseña.

Lo del script de con nmap era simplemente para que me
notifique automáticamente cada vez que se añade un dispositivo a mi red.

Yo por ejemplo no me había dado cuenta de la intrusión hasta
que por casualidad vi una carpeta compartida del ordenador intruso.

JSFM dijo...

Yo en el router no he encontrado ninguna forma de que te
notifique automáticamente si se añade un nuevo dispositivo a la red.

Respecto a lo de parsear los logs de DHCP supongo que también
valdría, a mí personalmente me resultaba más fácil lo del script con nmap.

lorth dijo...

Podrias publicar el script?

psk dijo...

yo diría los 4 últimos caracteres hexadecimales o los 16 últimos bytes. aunque con lo que hay se entiende bien, es solo por ser precisos :P

Gabi dijo...

En el punto 4 habla de los 6 ultimos bits, y en realidad son los 6 ultimos cuartetos (medio octeto=medio byte) o bien, los 6 ultimos nibbles (1 nibble = 4 bits = medio byte) o también se podria decir los 3 ultimos bytes, pero NUNCA bits. ;)

Ahiezer Alvarez dijo...

Un error mas a la lista de descuidos humanos

1k31nma1Lñ´`.- dijo...

Por DHCP el problema que tiene es que no ve IP fijas. Asi que no sería recomendable. Respecto a nmap, si compilas cruzado para tu router y lo metes ahi con algun cron task, puede valer. un simple fping creo que seria mas rapido.......

xxuxin dijo...

Me encanto el post!. ¿El post alemán es de marzo de 2012?

dudu dijo...

Aqui he colgado el código en python por si alguien está interesado:
http://ednolo.alumnos.upv.es/?p=1760

ednolo dijo...

Codigo en python :
http://ednolo.alumnos.upv.es/?p=1760

saturnin dijo...

@ dudu
WoW
Que bien.... XD
Robar y atribuirse méritos de otros. XD
De todo modo leyendo tu blog parece que es lo unico que sabes hacer, you are really full of shit. ( también podemos hablar en ingles )
Vergüenza ( pero imagino que sois unos sin vergüenza ) os debería dar aquí también por no citar donde leísteis y aprendisteis esta información
ESTO FUE DESVELADO EN LAMPIWEB, LAS CORRECCIONES SOBRE EL ALGORITMO PUBLICADAS HOY POR DUDU SIN CITAR FUENTES NI DAR CREDITOS FUERON DESVELADAS EL 12 DE DICIEMBRE EN LAMPIWEB Y AUDITORIAS WIRELESS

http://lampiweb.com/foro/index.php/topic,11902.0.html

GRACIAS A COEMAN76 Y NO A DUDU

Una verdadera verguenza ( pero de esto tenéis aqui? )

Alejandro Ramos dijo...

Lo mismo estás cuatro o cinco tonitos más cabreado de lo que deberías. y pese a que he aprobado tu comentaro. Si mantienes esa dinámica, tal vez sea el último.

Si te fijas, el link de seguridad wireless es del año 2011, habla de otros routers pero el algoritmo es el mismo.



La nota de seguridad también es más vieja que ese post de lampiweb.


Entonces, ya tengo dudas de que realmente lampiweb sea el origen de nada. Lo que por otra parte, me da bastante igual, si acaso, vete a quejar a la web los autores de la nota de seguridad.


Gracias por tu comentario.

wlan4xxIScool dijo...

Para android chicos! :) wlan4xx.blogspot.com

Jose dijo...

Ami la suma de k2 no me da 12. Si no 18. 0+11+5+2=18 no??

eloelhippie dijo...

jajajjaj muy guay

Jorge David Jiménez Argollo dijo...

Oye alguien m puede ayudar a decisfrar este clave porfa de vodafone? Dirección mac: 62:a8:e4:c9:e6:f8

Jorge David Jiménez Argollo dijo...

Hola cualquier respues para la pregunta de Jorge David Jiménez Argollo porfa enviarmelo al correo jdavid2013zx@gmail.com pliss q sea pronto

JUAN dijo...

cual seria el resultado de esto porque me ago un lio 64:16:F0:DE:BB:5D