Cómo hackear un Router de casa para conseguir la Password SIP: una PoC Just for Fun!
Señoras y señores, hackers, a continuación se expone el artículo en versión resumida pero ofreciendo más nivel de detalles sí lo requerís oportuno, pues incluye el combo de White Paper + vídeo del proceso (como de costumbre).
Comodidad VS Seguridad
La comodidad ha llevado a la despreocupación por ciertas cosas elementales, como la seguridad digital al estar conectados a Internet. Recuerdo mi primer módem, un U.S. Robotics 56K faxmodem, donde se apreciaba un surfista saliendo de una pantalla CRC en la caja.
Y cómo la tecnología ha evolucionado desde esos días hasta los routers sofisticados que tenemos hoy en día.
Cambié en aquel entonces de Movistar a Adamo, (motivado por razones personales) y me encontré explorando la seguridad de los routers proporcionados por Adamo, específicamente el Inteno EG200 basado en OpenWRT.
Configuración de VoIP
Decidí investigar para sacar la configuración de la VoIP de mi nuevo router para así configurarlo como cliente SIP en otro equipo (tal y como lo tuve anteriormente con el router SmartWiFi de Movistar – la versión antigua -). Comencé antes con pruebas de velocidad y algunas llamadas telefónicas para cerciorarme de que el servicio funcionaba correctamente. Con VoiP se pueden hacer muchas cosas… ya sabéis.
Interceptando Tráfico &m; Information Gathering
Utilicé un TAP pasivo (Throwing Star LAN Tap Pro) para interceptar el tráfico de red entre el router y la ONT.
Con herramientas como Wireshark, capturé la autenticación SIP mediante el protocolo Digest.
Aunque no logré descifrar la información, esta técnica me permitió acercarme un poco más a mi objetivo. Intenté obtener la contraseña SIP a través de ingeniería social, pero tampoco funcionó. A través de un SMS que llegaba a tu móvil al darte de alta, pude deducir que el usuario se componía de 6 números y el password de 8 caracteres alfanuméricos (a-z, A-Z y 0-9).
El servicio técnico me confirmó que sí se componía la clave de 8 dígitos, y eso era todo hasta el momento…
Jugando con Exploits y WebSockets
Probé alternativa con varios exploits conocidos para routers Inteno, todos ya parcheados por Neonsea. Entonces, decidí investigar la comunicación a través de WebSockets. Utilizando herramientas como curl y Firefox, interactué con el router mediante comandos ubus para obtener información.
Convertimos a nuestro Firefox en un auténtico cliente WebSocket, sacamos jugo de su buena referencia y así lo plasmamos:
1. Creando el socket con su correspondiente protocolo.
var superSocket = new WebSocket(«ws://192.168.1.1/», «ubus-json»)
2. Log, muestra las respuestas por cada mensaje enviado.
superSocket.onmessage = function (event) {console.log(event.data)}
3. Solicitando un id de sesión haciendo un login con el usuario del router (user) y su contraseña del WiFi que viene por defecto.
superSocket.send(JSON.stringify({«jsonrpc»:»2.0″,»method»:»call»,»params»:[«00000000000000000000000000000000″,»session»,»login»,{«username»:»user»,»password»:»wifis-password»}],»id»:0}))
Esto generó más juego con los comandos ofrecidos así que, la diversión prosiguió… Luego descubrí un archivo .enc que parecía contener datos valiosos.
Pero el fichero estaba cifrado… nuevo reto.
Descifrando el Archivo .enc
Descubrí el algoritmo 3DES utilizado para cifrar el archivo .enc en un manual de Inteno.
Utilizando comandos en openssl (como se hacía en WhatsApp para ver las fotos de 1 sólo uso) y la llave de cifrado obtenida en los params de la llamada que capturamos a través de WebSockets (Figura 8) logré descifrar el archivo.
Revelando un archivo .tar.gz que contenía la configuración de aprovisionamiento, incluida la contraseña SIP.
Reporte de la Vulnerabilidad y CVE
Compartí mi hallazgo con Inteno y Adamo. Cooperé con ellos para solucionar la vulnerabilidad y finalmente, se implementó un parche.
Recibí el CVE ID (CVE-2019-13140) por esta vulnerabilidad. El proceso no fue sencillo, pero la cooperación y la persistencia dieron sus frutos.
Reflexiones Finales
Creía que Movistar era de lo más restrictivo con los dispositivos que brinda a los clientes… y resulta que no, todo lo contrario, y se pueden hacer muchísimas cosas con SmartWiFi – que lo tienes hasta en la Televisión –. He podido hacer más cosas a mi “aire” con ellos que con cualquier otro operador… Supongo que el temor encoge/restringe protegiendo a los suyos ante cualquier exposición peligrosa.
El password de la WiFi cumple con los criterios de robustez, solo que el hecho de “momificarse” le puede convertir en “carne de cañón”.
Sólo quería aquello que me pertenecía, y sólo faltaba una parte vital para que funcionase, una contraseña para deshacer la esclavitud por la que estaba pasando la VoIP ¿Porque negártelo? Apunto estuve en adentrarme por la vía física, por consola RS232 (USB-TTL) pinchando en la placa del router, pensé que esa era mi única salida (o terminar con un trágico final, en un callejón sin salida).
hashcat64.exe -m 11400 -a 3 adamo.hash -1 ?l?u?d ?1?1?1?1?1?1?1?1
Finalmente, agradezco a la comunidad de BandaAncha.eu por todo su apoyo. La pregunta que formulé fue: ¿Facilitará Adamo la contraseña SIP a quienes lo soliciten?
Conclusión
Este viaje en la seguridad de dispositivos del hogar ha demostrado la importancia de la seguridad digital y la cooperación entre usuarios y proveedores. Con determinación y recursos adecuados, es posible mejorar la seguridad y obtener las configuraciones críticas para el correcto funcionamiento de los dispositivos.
El histórico, o llamado Timeline, fue:
2019-06-29 – White Paper done2019-07-01 – CVE assigned2019-07-09 – Notified to Inteno2019-07-11 – Adamo aware and ask for detailed info2019-07-12 – Info facilitated2019-07-25 – Early patch available and applied (Cooperation starts)2019-07-26 – Tested and failed (VoIP not working)2019-08-27 – New firmware available2019-08-30 – Firmware EG200-WU7P1U_ADAMO3.16.8-190820_0937 applied on router2019-08-31 – Tested OK2019-09-04 – Disclosure published
¡Bonus Track!
Para mas detalles, os dejo aquí el “White Paper” de todo este mejunje digital.
Y un vídeo sobre lo visto, esta vez en castellano con subs y textos en inglés (international mode ON). No hubiera tenido tal buen aspecto sin la ayuda de Esther Martínez (la chica que señala con el dedo en el vídeo), que se lo curra para dejar unos acabados más pulidos (que esto de los vídeos creerme ¡Que tiene su miga!).
Remember… Be Good, Be Hackers!
Powered by WPeMatico