viernes, 3 de enero de 2014

ZTE ZXV10 W300 v2.1 - HTTP Authorization Header DoS

Fig. 1 - ZTE ZXV10 W300 v2.1
Hace unos días conversando con un amigo me comentó que había encontrado, casi sin querer, una vulnerabilidad en el router modelo ZXV10 W300 v2.1 de ZTE (quizá más conocido como el portaretratos). Yo había encontrado algunas otras vulnerabilidades en ese mismo modelo que expuse en el pasado Limahack 2013 pero sinceramente este fallo no lo encontré.




Se trata de una denegación de servicio en toda regla que consigue reiniciar el router con simplemente enviar una solicitud HTTP corrupta.

Para acceder a la configuración de este router se requiere iniciar sesión por "Basic Auth". Por ello el router espera que le enviemos una cabecera "Authorization" en la solicitud HTTP que incluya las credenciales (usuario y clave) codificados en base64 ¿Pero que pasa si en esa cabecera enviamos cualquier otra cosa? Al parecer el router no maneja este tipo de excepción y si no enviamos lo que espera simplemente produce un error y se reinicia.

Este error se puede reproducir mediante el siguiente comando:

# curl -H "Authorization: fuckyoubitch" -v http://192.168.1.1

Donde 192.168.1.1 es la dirección IP del router. Esto también funciona en WAN con la correspondiente IP pública.

Sin más, les dejo un vídeo a modo de demo que hice con un equipo de estos que tengo en casa.



P.D.: Todos los créditos de este hallazgo a alguien que no quiere revelar su identidad.

Un saludo.

Actualización (05/01/2014)

Dork (Shodan): Basic realm="index.htm"

El router "Planet ADE 3400" también está afectado por esta vulnerabilidad.

17 comentarios:

  1. Lo acabo de probar muy bueno =)

    ResponderEliminar
  2. Me olvidaba quise probar en wan pero no resultaba, es porque el acceso directamente al panel de la configuración no esta habilitado a menos que habiliten el puerto ?

    ResponderEliminar
  3. En los que yo he revisado, por defecto si está habilitado el acceso al puerto 80 ¿Quizá es otra versión de firmware?

    Puedes buscar este modelo de router en Shodan con este Dork:

    Basic realm="index.htm"

    Al parecer el modelo "ADE 3400" de la marca Planet también está afectado.

    Un saludo.

    ResponderEliminar
  4. Disculpa amigo como has hecho para que la terminal se vea tan chvr con la bandera y todo eso ?

    saludos

    ResponderEliminar
  5. Se hace con la variable de entorno PS1. Le mostré esto a una amiga y ella lo publicó en su blog. Te dejo el link:

    http://lleksah.wordpress.com/2013/02/15/a-peruvian-promt/

    Y aquí tienes otro tutorial sobre el prompt y la variable PS1:

    https://wiki.archlinux.org/index.php/Color_Bash_Prompt_%28Espa%C3%B1ol%29

    Un saludo.

    ResponderEliminar
  6. hola que tal, muy bueno el blog. Leí un par de entradas y se nota que sabes de lo que estás estudiando. Yo soy estudiante de telecomunicaciones, este año comienzo con programación. Mis pregunta son ¿con cuál lenguaje debería comenzar y luego de ese?, ¿cuales son los que sí o sí tengo que aprender? . Muchas gracias de ante mano

    ResponderEliminar
  7. Hola, gracias por el comentario :)

    Te cuento que en la universidad nos enseñaron algoritmos con C porque es un lenguaje que sienta las bases de la programación. Ya luego aprender lenguajes de más alto nivel se vuelve relativamente sencillo.

    ¿Qué lenguajes se debería aprender? Eso es relativo creo yo... la pregunta es ¿Qué cosas quieres hacer? Cada lenguaje tiene sus pros y sus contras dependiendo de lo que quieras programar. Sin embargo Python es una buena opción, sirve para muchas cosas.

    Un saludo.

    ResponderEliminar
    Respuestas
    1. Todo programador que se respete debe saber asm :P

      Eliminar
  8. un gran trabajo... te felicito

    ResponderEliminar
  9. Simple pero funciona. Que hay sobre la forma de prevenir, basta con deshabilitar el acceso Web via LAN y WAN?

    ResponderEliminar
  10. Para prevenir este bug, sí. Pero tiene otros... yo diría que también hay que cerrar telnet, snmp, UPnP y demás servicios que estén hacia Internet. Y en la red LAN configurar una ACL para que solo permita acceder desde una IP de administración.

    Un saludo.

    ResponderEliminar
  11. hola, como puedo desactivar telnet y acceso web en este router? solo he conseguido bloquear UPnP y SNMP.

    Gracias.

    ResponderEliminar
  12. Para desactivarlos debes ingresar a Admin>ACL Configuration y borrar web y telnet de la lista. Asi se elimina el acceso desde WAN.

    ResponderEliminar
  13. Gracias alguien por la ayuda que me brindaste al hallar por deducción él último par de octetos desde la mac falsa está muy bien explicado y como tu dices con la calculadora es mucho más fácil XD.... Pero siempre es bueno ejercitar la mente de vez en cuando, gracias nuevamente y si tengo mas dudas sobre el tema te lo haré saber. Saludos.

    ResponderEliminar
  14. Hola gente una ayuda con esta mac 86:d0:00

    ResponderEliminar