Redmi AX6000 [Routeur Wifi] - Réseaux - Réseaux grand public / SoHo
Marsh Posté le 08-06-2024 à 19:47:29
[[ FIRMWARE]]
Initialement sur un firmware chinois, destiné au marché asiatique, et avec quelques "fuites" de data vers des serveurs chinois.
Il faut le flasher avec OpenWRT pour avoir un firmware "neutre", qui débloque toutes les possibilités de configuration/personnalisation.
Pour se faire, il existe un tuto détaillé sur le site officiel de OpenWRT :
https://openwrt.org/toh/xiaomi/redmi_ax6000
et également une vidéo explicative (en allemand, sous titres français dispo) qui détaille les étapes :
https://www.youtube.com/watch?v=E_DG6R2e-Lo
le Xmir-patcher : https://github.com/openwrt-xiaomi/xmir-patcher
est malheureusement réservé aux modèles Xiaomi, et ne fonctionnera pas sur ce Redmi.
METHODE
En gros, une fois que l'on a le routeur entre les mains, il faut :
1> le downgrade le firmware Chinois dans une version de firmware Chinois qui possède une faille de sécurité
2> exploiter cette faille de sécurité pour obtenir l'accès en Telnet puis en SSH (connexion sécurisée au système)
3> flasher un firmware OpenWrt à coté du firmware Redmi + modifier les règles de démarrage pour booter sur ce nouveau firmware
4> configurer le routeur avec OpenWrt installé
0> PREREQUIS
pendant toutes les démarches, le routeur est déconnecté du réseau local, et la machine qui effectue les opérations n'est connectée qu'au routeur.
par conséquent : la machine qui fait les manips n'a pas accès à internet !
Il faut donc mieux prévoir à l'avance tout ce qu'il faut.
A minima :
0.1> le firmware officiel Redmi qui dispose de la faille de sécurité :
https://cdn.cnbj1.fds.api.mi-img.co [...] 1.0.48.bin
0.2> le firmware Install OpenWRT
https://downloads.openwrt.org/relea [...] actory.ubi
0.3> le firmware Upgrade OpenWRT
https://downloads.openwrt.org/relea [...] pgrade.bin
0.4> les outils Windows
si vous êtes sous Windows, il vous faut en plus :
un client Telnet = mRemoteNG : https://github.com/mRemoteNG/mRemot [...] .24669.zip
un client SSH = Cmder : https://github.com/cmderdev/cmder/r [...] /cmder.zip
Ces outils sont dans des versions "portables" : ils n'ont pas d'installeur, et peuvent se lancer directement (il suffit de décompresser le zip, d'ouvrir le dossier, et de lancer l'appli qui est dedans)
1> DOWNGRADER LE ROUTEUR
1.1> télécharger un firmware "cible"
la page wiki indique le firmware à utiliser de préférence pour exploiter la faille (1.0.48), cf. 0.1>
https://openwrt.org/toh/xiaomi/redmi_ax6000
il faut le télécharger sur le PC
1.2 > Connecter et démarrer le routeur
brancher le routeur sur l'alimentation.
8 petites diodes bleues s'allument sur le capot.
après quelques minutes, les 8 diodes bleues clignotent en même temps => le routeur est en mode configuration
connecter un cable Ethernet sur un des ports Ethernet du routeur (de préférence éviter le port 1, qui sert au WAN)
connecter l'autre extrémité du cable Ethernet au PC
... après quelques secondes, le routeur a affecté une IP (en 192.168.31.x) à l'interface réseau du PC
1.3 > Initialiser la configuration du routeur
ouvrir un navigateur et aller sur http://192.168.31.1 , on arrive sur l'interface du routeur
sur l'interface (en chinois)
- décocher la seconde case + cliquer sur le gros bouton bleu
- la page suivante nous invite à connecter le routeur sur un hub relié à internet, on ne veut pas ça. cliquer sur le premier lien en bleu sous le gros bouton bleu
- cliquer sur la 3ième entrée (DHCP) sur la page suivante
- la page indique le nom du réseau Wifi (Redmi_B881) et propose de rentrer en dessous le mot de passe (8 caractères min) : 12345678 . puis cliquer sur le gros bouton bleu
- ça mouline quelques instants sur la page suivante, les 8 leds du routeur passent au orange fixe
1.4 > Flasher le firmware
ouvrir une autre page sur le navigateur et retourner sur http://192.168.31.1
- sur la page, rentrer le mot de passe 12345678 et cliquer sur le chevron bleu ">" à coté
- sur la page de statut du routeur qui vient de s'ouvrir, cliquer sur le menu déroulant en haut à droite, et sélectionner la seconde entrée
- cliquer sur le bouton en dessous de la version affichée (1.0.64)
- une fenêtre modale s'ouvre, avec un bouton pour choisir le fichier à uploader => choisir le fichier du firmware => cliquer sur le bouton bleu
- on arrive sur une fenêtre avec un warning => dans l'url, changer le "downgrade=1" par "downgrade=2" => valider l'url
le routeur se flash, les diodes cliquotent en bleu... puis s'éteignent... puis s'allument en bleu fixe... et après quelques minutes repassent en bleu clignotant puis en orange fixe
2.0 > RECUPERER LE TOKEN DE SESSION
WARNING : Le token change après chaque renouvellement de session, il expire donc après quelques minutes. Pas de panique : si le token n'est plus bon, il suffit de se reconnecter pour en regénérer un
il faudra donc veiller à refaire cette démarche aux différentes étapes après une commande de reboot
ouvrir une autre page sur le navigateur et retourner sur http://192.168.31.1
- sur la page, rentrer le mot de passe 12345678 et cliquer sur le chevron bleu ">" à coté
- sur la page de statut du routeur qui vient de s'ouvrir, vérifier que la version affichée est bien cette attendue (1.0.48)
- dans l'url, récupérer la valeur du token "stok=53743a49842e0e0eeef08ed914d1f5e4".
3.0 > EXPLOITER LA FAILLE DE SECURITE
3.1> Créer un accès Telnet
- récupérer un token (cf 2.0)
- aller sur la section "rooting" de la page wiki : https://openwrt.org/toh/xiaomi/redmi_ax6000#rooting
- récupérer la première instruction et remplacer la balise {token} par le token récupéré précédemment > mettre l'instruction dans l'url d'un navigateur et valider => la page devrait retourner le code {"code":0}
http://192.168.31.1/cgi-bin/luci/;stok={token}/api/misystem/set_sys_time?timezone=%20%27%20%3B%20echo%20pVoAAA%3D%3D%20%7C%20base64%20-d%20%7C%20mtd%20write%20-%20crash%20%3B%20 |
- récupérer la seconde instruction et faire de même
http://192.168.31.1/cgi-bin/luci/;stok={token}/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20 |
- attendre quelques minutes : les leds du routeur devraient s'éteindre, puis clignoter bleu
- récupérer un nouveau token
- faire la même manip pour les instructions 3 et 4 de la page de rooting
http://192.168.31.1/cgi-bin/luci/;stok={token}/api/misystem/set_sys_time?timezone=%20%27%20%3B%20bdata%20set%20telnet_en%3D1%20%3B%20bdata%20set%20ssh_en%3D1%20%3B%20bdata%20commit%20%3B%20 |
http://192.168.31.1/cgi-bin/luci/;stok={token}/api/misystem/set_sys_time?timezone=%20%27%20%3b%20reboot%20%3b%20 |
- attendre quelques minutes : les leds du routeur devraient s'éteindre, puis clignoter bleu
- récupérer un nouveau token
- faire la même manip pour la dernière instruction de la page de rooting
http://192.168.31.1/cgi-bin/luci/;stok={token}/api/misystem/set_sys_time?timezone=%20%27%20%3b%20mtd%20erase%20crash%20%3b%20 |
on a maintenant un accès telnet
3.2> se connecter via Telnet
ouvrir un logiciel de connexion Telnet (sous Windows, mRemoteNG[b/] le permet).
- créer une connection, protocole = Telnet, host = 192.168.31.1
- lancer la connexion, qui devrait afficher un terminal avec le retour suivant :
BusyBox v1.25.1 (2022-03-29 21:31:07 UTC) built-in shell (ash) -----------------------------------------------------
|
[b]3.3> Corriger l'accès SSH
Le SSH est volontairement "cassé" sur le routeur, pour éviter qu'on puisse y accéder.
ATTENTION : ne PAS suivre le tuto qui indique une commande permettant d'aller chercher le fix sur git pour ensuite l'appliquer directement : le routeur n'a PAS accès à internet, et la manip ne va faire que défigurer le fichier de dropbear !
- dans l'invite de connexion du terminal telNet (cf. >3.2)
- editer le fichier dropbear (en cas de boulette: ECHAP, puis ":q!" sur le clavier, et ENTER )
Code :
|
- presser une fois la touche "i" pour passer en mode édition
- utiliser les touches du clavier pour descendre à la ligne 134
- supprimer ce bloc (via la touche SUPPR et BACKSLASH du clavier) :
if [ "$flg_ssh" != "1" -o "$channel" = "release" ]; then |
- enregistrer les modifications en faisant ECHAP, puis ":wq!" sur le clavier, et ENTER
3.4> démarrer le daemon dropbear
Code :
|
3.5> définir un mot de passe root
nécessaire pour la connexion SSH depuis l'extérieur
Code :
|
rentrer le mot de passe 12345678 et ENTER
rentrer de nouveau le mot de passe 12345678 en ENTER
on a maintenant un accès SSH
3.6> se connecter par SSH
lancer l'appli Cmder
taper la commande suivante puis ENTER
Code :
|
un message de warning apparait concernant la clé SSH du routeur. c'est tout à fait normal.
il suffit de taper "yes" puis ENTER
rentrer le mot de passe demandé puis ENTER
au global, ça devrait ressembler à ça :
B:\Apps\cmder
-----------------------------------------------------
|
4 > INSTALLER LE FIRMWARE OPENWRT
dans cette étape, on installe le firmware openwrt à coté du firmware d'origine.
ça offre plus de souplesse (et des possibilités de se rattraper en cas de boulette).
le plus simple est d'avoir deux terminaux Cmder : 1 connecté en SSH au routeur, et 1 autre en local sur le PC pour faire les copies
4.1> changer la partition de boot
dans la connexion SSH au routeur
taper la commande suivante :
Code :
|
vérifier que l'on a bien "firmware=1" dans le retour
forcer le changement de partition de boot
Code :
|
4.2> transférer le firmware du PC vers le routeur
depuis Cmder, ouvrir un nouvel onglet pour créer une nouvelle fenêtre de terminal sur le PC
se déplacer dans le dossier du PC qui contient le firmware téléchargé
copier le firmware jusqu'au dossier /tmp du routeur via la commande scp :
Code :
|
4.3> flasher le firmware sur le routeur
depuis le Cmder en SSH sur le routeur, lancer la commande de flash
Code :
|
root@XiaoQiang:/tmp# ubiformat /dev/mtd8 -y -f /tmp/openwrt-23.05.3-mediatek-filogic-xiaomi_redmi-router-ax6000-stock-initramfs-factory.ubi |
rebooter le routeur via la commande suivantes
Code :
|
on se fait immédiatement éjecter du routeur (et c'est normal)
|
4.4> se connecter sur le routeur avec le nouveau firmware
ATTENTION : sur le nouveau firmware, le routeur est en 192.168.1.1... ce qui correspond à l'adresse souvent utilisé par les Livebox, Freebox & cie.
il faut mieux couper toutes les connexions du PC autre que l'ethernet sur le port du routeur pour éviter les problèmes
ATTENTION : de même, il peut être nécessaire de débrancher puis rebrancher le cable réseau pour forcer la réinitialisation DHCP (la carte réseau va "redécouvrir" le routeur, et ce dernier va lui affecter une autre adresse)
se re-connecter au routeur (!cette fois ci c'est plus "31" mais "1" !)
Code :
|
le retour doit avoir cette forme
B:\Apps\cmder |
4.5> stabiliser la phase de boot du routeur
dans le terminal SSH qui vient d'être ouvert, lancer ces commandes :
Code :
|
4.6> transférer le firmware complet du PC vers le routeur
comme pour le 4.2
aller sur le terminal Cmder sur le PC (attention : la cible est maintenant 192.168.1.1
Code :
|
4.7> flasher
revenir sur le terminal Cmder en SSH sur le routeur
Code :
|
la session SSH se fait fermer après quelques instants (normal)
root@OpenWrt:/tmp# sysupgrade -n /tmp/openwrt-23.05.3-mediatek-filogic-xiaomi_redmi-router-ax6000-stock-squashfs-sysupgrade.bin |
après quelques instants, les LED du routeur passent à bleu clignotant, puis à blanc fixe
bienvenue sur OpenWRT
5> CONFIGURER OPENWRT
ouvrir un navigateur et rentrer l'url 192.168.1.1
sur la page de connexion, laisser l'utilisateur "root", et valider sans rentrer de mot de passe
on est maintenant sur la page d'OpenWRT
5.1> définir un mot de passe
menu System > Admin
5.2> donner l'accès internet via un des ports LAN
suivre ce tuto :
https://openwrt.org/docs/guide-user/network/wifi/dumbap
5.3> mettre en place l'access point Wifi
suivre ce tuto pour mettre en place les accesspoint wifi à 2.4GHz et 5GHz en Fast Roaming
https://www.youtube.com/watch?v=kMgs2XFClaM
Marsh Posté le 08-06-2024 à 19:45:38
Hello,
Je crée ici un topic dédié au routeur Wifi Redmi AX 6000
C'est un modèle chinois, sous un firmware chinois, qui a le mérite :
- d'être très peu cher : autour de 60€ livré en France
- d'embarquer du matos de premier choix : ,
-> CPU quadCore @2Ghz, 512Mo de RAM, 128Mo de ROM...
-> Wifi 6 4x4 à 2.4GHz, 4x4 à 5Ghz...
-> 4 ports Ethernet 1Gb
- de supporter OpenWRT : le firmware Open Source dédié aux équipements réseaux.
Message édité par cartemere le 08-06-2024 à 20:22:27