Passer un routeur Xiaomi 4A (100m) sous OpenWRT

Passer un routeur Xiaomi 4A (100m) sous OpenWRT

9 février 2022 0 Par Jérôme Ferrari

Aujourd’hui, je vous propose de passer un routeur Xiaomi 4A (100m) sous Openwrt pour monter des expériences qui nécessite un réseau wifi indépendant.

J’ai choisi ce routeur car il est de bonne facture, pas cher et avec une bonne communauté OpenWRT derrière.

Xiaomi Mi Router 4A Gigabit Edition : Amazon.fr: Informatique

Pour cette partie, j’utilise un ordinateur sous windows

Partie 0: Logiciels nécessaires

  1. Télécharger l’outil MIWFIRepairTool

bigota.miwifi.com/xiaoqiang/tools/MIWIFIRepairTool.x86.zip

2.Télechargez le firmware qui permet d’utilisé l’exploit

https://bigota.miwifi.com/xiaoqiang/rom/r4ac/miwifi_r4ac_all_c4b35_2.18.28.bin

3. Télécharger le firmware OpenWRT

https://downloads.openwrt.org/releases/21.02.1/targets/ramips/mt76x8/openwrt-21.02.1-ramips-mt76x8-xiaomi_mi-router-4a-100m-squashfs-sysupgrade.bin

4. Une raspberry avec VNC

5. Le logiciel FTP filezila

6. 3 câbles Ethernet

Vous trouverez en fin d’article les fichiers archivés comme d’habitude

Partie 1: Mise en condition du routeur pour exploiter la faille permettant l’installation de OpenWRT

Le but de cette manipulation est de mettre une ancienne version du firmware qui permet d’aller l’exploit OpenWRTInvasion

Pour cela, dans un premier temps, il faut configurer le port Ethernet de votre PC en IP statique de la façon suivante:

2020-05-19 01_11_45-Internet Protocol Version 4 (TCP_IPv4) Properties

Ensuite connectez un cable Ethernet entre votre PC et votre routeur.

Lancez le programme MIWFIRepairTool.

Choisissez le fichier miwifi_r4ac_all_c4b35_2.18.28.bin (1) et cliquez sur les ??? (2)

Maintenant, choisissez la connexion configurée précédement (1) et cliquez sur ??? (2)

Le programme maintenant attend de voir le routeur.

Tout en maintenant le bouton Reset, alimentez votre routeur. Relachez le bouton lorsque le voyant orange commence à clignoter (après 8 secondes environ) et attendez que le routeur flash l’ancien firmware.

Le routeur va clignoter en orange

Ne débranchez rien cela peut prendre 5 min facilement et attendez que la lumière passe au bleu clignotant

Une fois que la led est passée au bleu clignotant, débranchez et rebranchez le routeur.

Attendez que la lumière passe au bleu fixe.

Normalement vous devriez avoir le signal wifi Xiaomi … qui apparait

Bravo vous avez réussi la première étape. Vous pouvez maintenant débrancher votre cable Ethernet et remettre en IP dynamique le réseau de votre PC.

Partie 2: Configuration primaire et provisoire du routeur

Maintenant, j’ai utilisé les indications marqué dans ce lien et je vais les détailler pas à pas.

https://github.com/acecilia/OpenWRTInvasion

Pour cela, il faut brancher le routeur wifi sur votre box sur le port marqué internet (le bleu à droite à côté du bouton reset)

Sur mon PC, j’ai configuré mon routeur avec la méthode suivante:

Pour information et par facilité car je ne connais pas le chinois, le mot de passe que j’utilise est toujours le même et idéalement 13 caractères que je nommerai ici MotDPasseCool

1- Je me connecte au réseau Xiaomi vu précedement et cela me renvoie directement sur cette page web suivante

Il faut cliquer sur le bouton bleu

2 – Sur cette page, je rentre le mot de passe MotDPasseCool

et je clique sur le bouton

3 – Maintenant je mets aussi le mot de passe MotDPasseCool

et je clique sur le bouton

4 – Normalement, vous devriez avoir une barre de progression qui apparait

5 – vous arrivez maintenant sur cette page

J’ai cliqué sur le bouton

Qui m’a renvoyé sur une page de publicité xiaomi que j’ai fermé

Une fois la configuration faite normalement vous devriez être déconnecté et vous devrez vous remettre sur le réseau avec le mot de passe MotDPasseCool

Partie 3: Utilisation de l’exploit

Dans un premier temps, je connecte un cable Ethernet entre ma box et mon routeur wifi car nous aurons besoin d’une connection internet pour lancer l’exploit

Petite information: Personnellement, pour la suite des choses, j’ai utilisé en plus une raspberry pi avec un accès VNC ouvert car c’était plus facile de mon point de vue. Normalement, la méthode fonctionne avec un PC ou autre mais je n’ai pas testé.

J’ai donc branché ma raspberry pi sur un des connecteurs Ethernet de mon routeur Xiaomi et je l’ai mis en route.

Une fois cela fait, sur mon PC principal, je me reconnecte sur le réseau wifi de mon xiaomi et dans mon navigateur, je tape l’adresse 192.168.31.1

nous tombons sur la page suivante qui nous demande un mot de passe (ici c’est celui que l’on avait programmé MotDPasseCool)

Et l’on attéri sur la page suivante:

En cliquant sur cette icone

Nous tombons sur l’adresse IP de notre raspberry pi

Maintenant que nous avons l’adresse IP, dans VNC viewer, je renseigne celle-ci:

Puis Je renseigne mon login et mot de passe.

Sur le vnc de ma raspberry pi, j’ouvre un terminal:

et je tape les commandes suivantes:

sudo git clone https://github.com/acecilia/OpenWRTInvasion.git

cd OpenWRTInvasion/

Puis lancez l’installation des requirements avec la commande suivante

pip3 install -r requirements.txt # Install requirements

Pour la suite, le prochain script va peut-être vous demander un token et pour le trouver, il faut ouvrir un page web (toujours sur votre raspberry) avec l’adresse 192.168.31.1. (Je dis bien peut-être car au dernière nouvelle seul l’adresse et le mot de passe (MotDpasseCool) sont nécessaire)

Renseignez le mot de passe et récupérez le code (ici a61….50)

readme-001.png

Maintenant que vous avez ce token, vous pouvez lancer la commande suivante:

python3 remote_command_execution_vulnerability.py # Run the script

Renseignez l’adresse 192.168.31.1 lorsque le script vous le demande

Puis renseignez le mot de passe admin de votre xiaomi (MotDPasseCool)

Choisissez 1 et tapez sur Entrée

Attendez quelques instants

Et voilà l’exploit est en place. On va pouvoir passer au flashage du firmware OpenWRT

Partie 4: Flashage du firmware OpenWRT

Ouvrez maintenant le logiciel filezila adresse Ip 192.168.31.1 identifiant root mdp root port 21

Puis une fois la connection faite, dans le dossier tmp, glissez et deposez le fichier “openwrt-21.02.1-ramips-mt76x8-xiaomi_mi-router-4a-100m-squashfs-sysupgrade.bin”

Maintenant dans sur le terminal du VNC de la raspberry tapez la commande telnet 192.168.31.1

Rentrez le login/motdepasse : root/root

Vous devriez avoir l’affichage suivant

tapez les commandes:

cd /tmp

mtd -r write openwrt-21.02.1-ramips-mt76x8-xiaomi_mi-router-4a-100m-squashfs-sysupgrade.bin OS1

Attendez que le firmware finisse d’être flashé puis le routeur va rebooter

Attendez environ 5 minutes puis couper l’alimentation et débranchez tous les câbles.

Vous n’avez plus besoin de la raspberry pi, vous pouvez la remercier car elle a bien travaillée.

Maintenant, relancez le routeur et il va d’abord clignoter en orange puis passer en bleu.

Connectez un cable RJ45 (Ethernet) entre une sortie Ethernet du routeur et votre PC principal.

Puis dans votre navigateur, tapez l’adresse 192.168.1.1

Vous allez arriver sur la page luci de OpenWRT

Enlevez le password présent et cliquez sur Login

Vous devriez avoir une page de ce style qui apparait

Et voilà vous êtes maintenant l’heureux propriétaire d’un routeur Xiaomi sous OpenWRT!!!!! Mais pensez à mettre un nouveau mot de passe!

Partie 5: Bonus mettre en route le wifi

Par defaut, le wifi est déconnecté sur OpenWRT et un routeur wifi sans wifi c’est moins rigolo.

Pour l’activer, cliquez sur Network > Wireless

Puis faite un Edit du premier SSID:OpenWrt et renseignez les informations utiles

Ici, j’illustre juste pour des options de base car je ne suis pas expert en informatique.

Dans l’onglet General Setup qui se situe en bas, mettez le ESSID que vous voulez

Dans l’onglet Wireless Security, choissiez votre mode d’Encyption et votre mot de passe qui vous convient et cliquez sur Save

Cliquez maintenant sur Enable

OpenWrt va prendre en compte les valeurs et les appliquer

Une fois cela appliqué, faite la même chose avec le 2ème sous réseau AC (pour ma part, je rajoute 5G derrière afin de les différencier et cliquez sur Save et Enable

Au final, vous devriez avoir cela qui indique que tout est ok.

Maintenant, si vous regardez vos réseaux wifi accessibles depuis votre pc…..

Voilà donc un routeur OpenWRT avec wifi qui fonctionne!

Vous pouvez maintenant rebrancher le cable internet depuis votre box sur votre routeur xiaomi OpenWRT (le port bleu) et profitez de votre réseau tout neuf pour faire de l’IOT en toute sécurité

Comme promis, ci-dessous les fichiers sources

Les programmes

Une copie du Git au cas où

Comme d’habitude, voici les sources qui m’ont aidées.

https://forum.openwrt.org/t/xiaomi-mi-router-4a-gigabit-edition-r4ag-r4a-gigabit-fully-supported-and-flashable-with-openwrtinvasion/36685/747

https://openwrt.org/toh/xiaomi/mi_router_4a_mir4a_100m

Voilà c’est tout pour cette fois!

J’espère que cela vous aura aider,

Jérôme Ferrari