Craig Heffner, investigador de seguridad especializado en hardware y firmware, ha encontrado una puerta trasera en los routers D-Link que permitiría evadir la autenticación y acceder al portal web deadministración del dispositivo sin necesidad de conocer las credenciales de acceso



Craig descargó el firmware versión 1.13 para el dispositivo DIR-100 y efectuó un análisis de ingeniería inversa para extraer los archivos correspondientes al servidor web que el router publica para su administración.

Desensamblando el binario correspondiente al servidor web (/bin/webs) encontró que la función 'alpha_auth_check', devuelve un valor AUTH_OK para ciertos valores de las cabeceras de las peticiones HTTP. Este valor significa que la autenticación ha sido exitosa y se procede con la petición.

Viendo el código reconstruido por Craig podemos observar varias curiosidades:





Cuando se accede a las carpetas “graphics/” y “public/” devuelve AUTH_OK. Esto es lógico ya que se trata de carpetas que contienen recursos públicos, necesarios para construir el interfaz de preautenticación. Pero si observamos existe una comparación de cadenas vía 'strcmp' donde se está comparando la cadena actual del User-agent y cierto valor literal. Es decir, si nuestro 'User-agent' es “xmlset_roodkcableoj28840ybtide” entonces el sistema nos dará por autenticados abriéndonos paso a cualquier lugar del interfaz.

Graig se molestó en averiguar a través de SHODAN cuantos routers D-Link podrían estar afectados. Esto es posible dado que SHODAN indexa la información publica de los sistemas que están expuestos en Internet. Los routers afectados por este problema podrían ser los siguientes:


D-Link DIR-100


DIR-100
DI-524
DI-524UP
DI-604S
DI-604UP
DI-604+
TM-G5240


(algunos comentarios en su blog apuntan a que el modelo DIR-615 podría estar afectado)

También estarían afectados los routers que usen dicho firmware como los Planex:


BRL-04UR
BRL-04CW


Finalmente, alguien identificado como Travis Goodspeed profundizó en el trabajo de Craig Heffner y encontró que la cadena asociada a la puerta trasera es usada por una utilidad incluida en el sistema "/bin/xmlsetc". Todo apunta a que este mecanismo de evasión podría ser usado para tareas administrativas automatizadas y no un diseño impuesto en el dispositivo de manera maliciosa.

De momento, hasta que el fabricante tome cartas en el asunto, los dispositivos que empleen dicho firmware serían vulnerables a esta puerta trasera. Basta con cambiar el 'User-agent' del navegador (puede hacerse con un plugin o a través de un proxy http) a la cadena “xmlset_roodkcableoj28840ybtide” para obtener acceso privilegiado.


Más información:

Reverse Engineering a D-Link Backdoor
http://www.devttys0.com/2013/10/reverse-engineering-a-d-link-backdoor

Client for the DLink Backdoor, /bin/xmlsetc
http://pastebin.com/aMz8eYGa