El libre pensamiento para un internet libre
No estas registrado.
¡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:
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
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.
Vamos a ver todo esto en detalles ahorita.
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.)
Fuente
Multiple vulnerabilities found in the Dlink DWR-932B (backdoor, backdoor accounts, weak WPS, RCE ...) de Pierre KIM @ Pierre kim/ Git Hub
D-Link DWR-932B Backdoors / Default WPS PIN de Pierre KIM @ Packet Storm
Complementa el trabajo anterior de Pierre KIM que podéis consultar con el link siguiente:
Multiple vulnerabilities found in Quanta LTE routers (backdoor, backdoor accounts, RCE, weak WPS ...) de Pierre KIM @ Pierre kim / Git Hub
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
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 4G WiFi Router QDH
- Quanta 4G WiFi Router UNE
- Quanta 4G WiFi Router MOBILY (QDH-Mobily - CPE342X)
- Quanta 4G WiFi Router Yoomee
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)
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,
Desde la interfaz lo que podemos hacer (a parte de deshabilitar el WPS) es generar otro PIN:
¿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!)
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:
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.
Desde una perspectiva "ofensiva" hay dos casos posibles:
El PIN es 28296607
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)
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
salu2
gracias por la info como siempre
Desconectado
Tema | Respuestas | Vistas | Ultimo mensaje |
---|---|---|---|
Error de inicio en entorno gráfico por Hunter310#
|
24 | 14984 | 20-06-2022 12:22:19 por kcdtv |
15 | 2712 | 10-06-2022 09:13:42 por kcdtv | |
0 | 209 | 02-06-2022 10:05:09 por kcdtv | |
TP-Link Backup Decryption Utility por kcdtv
|
0 | 200 | 31-05-2022 18:44:34 por kcdtv |
¡Aircrack-ng 1.7 ya está disponible! por kcdtv
|
1 | 513 | 13-05-2022 08:46:52 por Koala |
Ultimo usuario registrado: Asakuras
Usuarios registrados conectados: 1
Invitados conectados: 12
Conectados: magicc66
Número total de usuarios registrados: 2,317
Número total de temas: 1,587
Número total de mensajes: 15,137
Atom tema feed - Impulsado por FluxBB