Todo sobre el Pin generico de los D-Link DWR-932 y Quanta 4G-WiFi (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-highpower.es es distribuidor oficial de Alfa Network

#1 03-10-2016 18:02:02

kcdtv
Administrator

Registrado: 14-11-2014
Mensajes: 3,278

Todo sobre el Pin generico de los D-Link DWR-932 y Quanta 4G-WiFi

Full disclosure WPS D-Link DWR-932 y D-Link Quanta LTE QDH Router :
El PIN genérico unico , cómo se genera y aclaraciones sobre "quanta-wps-gen.c"

quanta_wps_8.jpg

  ¡Buenos días [email protected]!
  Para empezar la semana con buen pie vamos a hablar de la parte sobre WPS de dos excelente trabajos de Pierre KIM.
Agradecimientos a Lorek123 por señalar la salida de este aviso:

quanta_wps_1.jpg

  Add new d-link WPS PIN generation algorithm
  Cómo podéis constatar la "issue" esta cerrada.
  No tiene que ver con la cualidad del trabajo de Pierre KIM wink
Si la hemos cerrado es porque el usuario pide que se introduzca en reaver el algoritmo contenido en el código POC  llamado  quanta-wps-gen.c
  No ha entendido el full disclosure: Este código no sirve de nada para el crack WPS. tongue
   Vamos a ver todo esto en detalles ahorita. wink
   Aquí tenéis a este aviso de seguridad que desvela varias brechas muy serias.(Estamos hablando de verdaderas puertas traseras y de un "full disclosure" WPS.) cool
Fuente     

   Complementa el trabajo anterior de Pierre KIM que podéis consultar con el link siguiente:

 

Peligro en la gama de productos WiFi+4G/LTE de D-Link

  Les había hablado del D-Link DWR-932 en el tema "Generoso D-Link DWR-932 que regala los credenciales a cualquiera" acerca de... otra brecha de seguridad big_smile

D-Link_DWR-932_2.png

  Por si no bastaba con su propensión a distribuir los dates personales y las contraseñas, ahora sabemos que existen también puertas traseras de las más robustas.
Por ejemplo basta con mandar la "contraseña" HELODBG y se abre una sesión telnet con privilegios de administrador. 
  Todo esto esto es de lo más chungo, sobre todo para una marca "supuestamente buena".
Volvemos al WPS y el material afectado.
Encontramos exactamente la misma vulnerabilidad en los routers 4G+WiFi(LTE) de la serie Quanta LTE routers:

quanta_wps_7.jpg

    - Quanta 4G WiFi Router QDH
    - Quanta 4G WiFi Router UNE
    - Quanta 4G WiFi Router MOBILY (QDH-Mobily - CPE342X)
    - Quanta 4G WiFi Router Yoomee

El Pin genérico único para los D-Link DWR-932 y "Routers Quanta 4G WiFi": 28296607

  Se trata de un PIN "hardcoded" incrustado en el código fuente del router. .
  Lo que explica porque lo tenemos en todos estos modelos ya que usan un firmware parecido (diseñado para redes de telefonía móvil además del WiFi)
  Esta "incluido" en el programa appmgr instalado en el sistema (en /bin/appmgr )
    Se puede ver en la imagen que sigue la función wifi_get_default_wps_pin con el PIN genérico para el modo "enrollee" (papel de Punto de Acceso)   

quanta_wps_3.jpg

  Todos estos modelos vienen con el PIN 28296607 programado y habilitado y lo más probable es que esta en uso.
   Existe la posibilidad de que el usuario haya usado el opción "generar otro PIN"
    No se puede hacer otra cosa desde la interfaz de configuración par cambiar el PIN 28296607 .
     Es hora de hablar de la segunda parte del full dislosure WPS sobre la "debilidad" del algoritmo empleado para generar automáticamente otro PIN,   

Debilidad del algoritmo para generar otro PIN (quanta-wps-gen.c)

  Desde la interfaz lo que podemos hacer (a parte de deshabilitar el WPS) es generar otro PIN:

quanta_wps_5.jpg

  ¿Cómo se genera este PIN?
  Empleando el tiempo del sistema como "semilla." 
Es un habito muy malo, fuente de varias brechas (ejemplo con el tiempo usado como semilla en el intercambio de laves Diffie Helman WPS: Pixie dust WPS : ¡Realtek ("rtl819x project") cae también!)

Aclaraciones sobre el "generador" quanta-wps-gen.c

  Nunca este código ha sido pensado para estar empleado como "generador de PIN" en un sesión de crack WPS.
Se trata de un código POC que traduce en un condigo simple en lenguaje C la función desensamblada que sigue:

.text:0001B4D4                 EXPORT generate_wlan_wps_enrollee_pin
.text:0001B4D4 generate_wlan_wps_enrollee_pin          ; CODE XREF: wifi_msg_handle+194p
.text:0001B4D4
.text:0001B4D4 var_3C          = -0x3C
.text:0001B4D4 var_38          = -0x38
.text:0001B4D4 s               = -0x34
.text:0001B4D4 var_30          = -0x30
.text:0001B4D4 var_2C          = -0x2C
.text:0001B4D4
.text:0001B4D4                 STMFD           SP!, {R4-R11,LR}
.text:0001B4D8                 SUB             SP, SP, #0x1C
.text:0001B4DC                 STR             R0, [SP,#0x40+s]
.text:0001B4E0                 MOV             R0, #0  ; timer
.text:0001B4E4                 BL              time
.text:0001B4E8                 BL              srand
.text:0001B4EC                 BL              rand
.text:0001B4F0                 LDR             R4, =0x6B5FCA6B
.text:0001B4F4                 MOV             R6, R0,ASR#31
.text:0001B4F8                 SMULL           R1, R4, R0, R4
.text:0001B4FC                 RSB             R10, R6, R4,ASR#22
.text:0001B500                 RSB             R12, R10, R10,LSL#5
.text:0001B504                 RSB             R2, R12, R12,LSL#6
.text:0001B508                 ADD             R11, R10, R2,LSL#3
.text:0001B50C                 LDR             R8, =0xF423F
.text:0001B510                 ADD             R9, R11, R11,LSL#2
.text:0001B514                 SUB             R1, R0, R9,LSL#7
.text:0001B518                 CMP             R1, R8
.text:0001B51C                 ADDLS           R1, R1, #0xF4000
.text:0001B520                 ADDLS           R1, R1, #0x240
.text:0001B524                 ADD             R3, R1, R1,LSL#2
.text:0001B528                 MOV             R3, R3,LSL#1
.text:0001B52C                 LDR             R1, =0xCCCCCCCD
.text:0001B530                 LDR             R5, =0xA7C5AC5
.text:0001B534                 LDR             R6, =0x6B5FCA6B
.text:0001B538                 MOV             R7, R3,LSR#5
.text:0001B53C                 UMULL           R4, R7, R5, R7
.text:0001B540                 UMULL           R9, LR, R1, R3
.text:0001B544                 UMULL           R5, R6, R3, R6
.text:0001B548                 LDR             R12, =0xD1B71759
.text:0001B54C                 MOV             R6, R6,LSR#22
.text:0001B550                 UMULL           R10, R12, R3, R12
.text:0001B554                 MOV             LR, LR,LSR#3
.text:0001B558                 UMULL           R10, R9, R1, R6
.text:0001B55C                 UMULL           R8, R10, R1, LR
.text:0001B560                 LDR             R0, =0x431BDE83
.text:0001B564                 MOV             R12, R12,LSR#13
.text:0001B568                 UMULL           R11, R0, R3, R0
.text:0001B56C                 STR             R10, [SP,#0x40+var_38]
.text:0001B570                 UMULL           R8, R10, R1, R12
.text:0001B574                 LDR             R2, =0x51EB851F
.text:0001B578                 LDR             R4, =0x10624DD3
.text:0001B57C                 UMULL           R5, R2, R3, R2
.text:0001B580                 MOV             R0, R0,LSR#18
.text:0001B584                 STR             R10, [SP,#0x40+var_3C]
.text:0001B588                 UMULL           R8, R4, R3, R4
.text:0001B58C                 UMULL           R8, R10, R1, R0
.text:0001B590                 MOV             R2, R2,LSR#5
.text:0001B594                 MOV             R7, R7,LSR#7
.text:0001B598                 UMULL           R8, R11, R1, R7
.text:0001B59C                 STR             R10, [SP,#0x40+var_30]
.text:0001B5A0                 MOV             R4, R4,LSR#6
.text:0001B5A4                 UMULL           R8, R10, R1, R2
.text:0001B5A8                 UMULL           R8, R5, R1, R4
.text:0001B5AC                 STR             R10, [SP,#0x40+var_2C]
.text:0001B5B0                 MOV             R8, R9,LSR#3
.text:0001B5B4                 MOV             R10, R11,LSR#3
.text:0001B5B8                 ADD             R11, R10, R10,LSL#2
.text:0001B5BC                 ADD             R9, R8, R8,LSL#2
.text:0001B5C0                 MOV             R10, R5,LSR#3
.text:0001B5C4                 LDR             R8, [SP,#0x40+var_38]
.text:0001B5C8                 SUB             R6, R6, R9,LSL#1
.text:0001B5CC                 SUB             R7, R7, R11,LSL#1
.text:0001B5D0                 LDR             R9, [SP,#0x40+var_3C]
.text:0001B5D4                 LDR             R11, [SP,#0x40+var_30]
.text:0001B5D8                 ADD             R5, R10, R10,LSL#2
.text:0001B5DC                 SUB             R5, R4, R5,LSL#1
.text:0001B5E0                 LDR             R4, [SP,#0x40+var_2C]
.text:0001B5E4                 MOV             R10, R8,LSR#3
.text:0001B5E8                 MOV             R8, R9,LSR#3
.text:0001B5EC                 MOV             R9, R11,LSR#3
.text:0001B5F0                 ADD             R7, R7, R6
.text:0001B5F4                 ADD             R10, R10, R10,LSL#2
.text:0001B5F8                 ADD             R9, R9, R9,LSL#2
.text:0001B5FC                 MOV             R11, R4,LSR#3
.text:0001B600                 ADD             R8, R8, R8,LSL#2
.text:0001B604                 ADD             R7, R7, R5
.text:0001B608                 SUB             LR, LR, R10,LSL#1
.text:0001B60C                 SUB             R5, R0, R9,LSL#1
.text:0001B610                 SUB             R8, R12, R8,LSL#1
.text:0001B614                 ADD             R11, R11, R11,LSL#2
.text:0001B618                 ADD             R12, R7, LR
.text:0001B61C                 SUB             R4, R2, R11,LSL#1
.text:0001B620                 ADD             R8, R8, R5
.text:0001B624                 ADD             R5, R8, R4
.text:0001B628                 ADD             R0, R12, R12,LSL#1
.text:0001B62C                 ADD             R4, R5, R0
.text:0001B630                 UMULL           R5, R1, R4, R1
.text:0001B634                 MOV             R2, R1,LSR#3
.text:0001B638                 ADD             LR, R2, R2,LSL#2
.text:0001B63C                 SUB             R8, R4, LR,LSL#1
.text:0001B640                 LDR             R0, =0x66666667
.text:0001B644                 RSB             R2, R8, #0xA
.text:0001B648                 SMULL           R8, R0, R2, R0
.text:0001B64C                 MOV             R12, R2,ASR#31
.text:0001B650                 RSB             R1, R12, R0,ASR#2
.text:0001B654                 ADD             LR, R1, R1,LSL#2
.text:0001B658                 LDR             R12, =(aHostapd_conf_f - 0x1B670)
.text:0001B65C                 SUB             R4, R2, LR,LSL#1
.text:0001B660                 LDR             R2, =(aGet_wpspinI - 0x1B67C)
.text:0001B664                 ADD             R4, R4, R3
.text:0001B668                 ADD             R0, PC, R12 ; "hostapd_conf_file_gen"
.text:0001B66C                 ADD             R0, R0, #0x3C
.text:0001B670                 MOV             R1, #0x3B
.text:0001B674                 ADD             R2, PC, R2 ; "Get_WpsPin:%in"
.text:0001B678                 MOV             R3, R4
.text:0001B67C                 BL              wifi_filelog
.text:0001B680                 LDR             R1, =(a08lu - 0x1B690)
.text:0001B684                 LDR             R0, [SP,#0x40+s] ; s
.text:0001B688                 ADD             R1, PC, R1 ; "%08lu"
.text:0001B68C                 MOV             R2, R4
.text:0001B690                 ADD             SP, SP, #0x1C
.text:0001B694                 LDMFD           SP!, {R4-R11,LR}
.text:0001B698                 B               sprintf
.text:0001B698 ; End of function generate_wlan_wps_enrollee_pin

  Es la función que se ejecuta cuando hacemos clic en "generar otro(PIN)"
  El código  quanta-wps-gen.c simula el comportamiento del router a este momento preciso
  Podéis ver que se genera un PIN diferente cada segundo:

quanta_wps_6.jpg

  Pensar el momento: Lo que hace este generador es pillar el tiempo de nuestro sistema y generar el PIN para este instante preciso
Obviamente cuando usamos el generador contra un red con WPS habilitado "es siempre tarde".
  El router ya tenía su PIN generado y el resultado será totalmente distinto del que obtenemos a otro instante. .
    Esta código no tiene vocación a emplearse como un generador, esta aquí para ayudar a entender la mecánica simplona que se emplea para generar otro PIN.


En conclusión

  Desde una perspectiva "ofensiva" hay dos casos posibles:

  1. El PIN es 28296607

  2. El PIN es otro, se forma en base del tiempo del router al momento de hacer clic en "generar"

 
  Además el router es vulnerable al ataque pixie dust (un solo intento para averiguar el PIN) tongue
Así que la linea de orden mínima a entrar para obtener la llave WPA con un solo intento en ambos casos es

sudo reaver -b <bssid> -i interfaz -p 28296607 -K 1 

  Y podríamos perfectamente prescindir de poner el pin genérico... Se encontrará de todo modo enseguida si sigue en uso con el ataque pixie dust
Basta con poner el opción pixie dust automático  (-K1).
   Si es otro PIN se derivará enseguida también. Es pan comido. 
  En caso de que no haya quedado claro: El codigó quanta-wps-gen.c no sirve de nada para el crack WPS
 
  Desde una perspectiva "defensiva", la situación es critica
  Para los desafortunados que han confiado en D-Link y comprado uno de estos modelos, la única solución es (como siempre): Deshabilitar el WPS.
    Con esto arreglamos solo la brecha WiFi..., Pero quedan todas las otras que son muy severas
Cualquier intruso tiene varias medidas radicales y simples para tomar el control del PA
  Muy desgraciadamente D-Link no piensa hacer nadar al respecto...
...Con lo cuál se debe desaconsejar rotundamente la compra y uso de los PA WiFi+4G de dicha marca.

Desconectado

Anuncio

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

#2 05-10-2016 23:27:40

dynyly
Usuario

Registrado: 19-04-2015
Mensajes: 292

Re: Todo sobre el Pin generico de los D-Link DWR-932 y Quanta 4G-WiFi

salu2
gracias por la info como siempre

Desconectado

Anuncio

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

Temas similares

Tema Respuestas Vistas Ultimo mensaje
8 338 Ayer 20:45:28 por kobol
Rompiendo WPA2 ? (KRACK) por markspitz15
1 155 Ayer 19:19:20 por kcdtv
1 19 Ayer 18:37:37 por kcdtv
4 3515 Ayer 17:24:29 por Flashed
Pegado:
Pegado:: Script multiuso wifi para Kali y otras distros por v1s1t0r  [ 1 2 3 8 ]
194 6839 Ayer 10:51:27 por v1s1t0r

Pie de página

Información del usuario

Ultimo usuario registrado: brawll
Usuarios registrados conectados: 0
Invitados conectados: 9

Estadisticas de los foros

Número total de usuarios registrados: 714
Número total de temas: 874
Número total de mensajes: 7,434

Máx. usuarios conectados: 69 el 15-10-2017 09:23:21