Xiaomi Mi Router 4A
Hardware unterscheiden #
Es gibt verschiedene Hardware-Varianten des Xiaomi Mi 4A, die sich teilweise signifikant unterscheiden.
Die Variante muss bei der Installation zwingend berücksichtigt werden, da die Firmwares nicht zueinander kompatibel sind.
Die Revision des Board-Layouts lässt sich nach Ausnutzen des Exploits über den Befehl Ab Firmwareversion Die Hardware beider Varianten ist identisch, allerdings wird die internationale Version mit einem anderen Partitionslayout ausgeliefert. Die Revision des Board-Layouts lässt sich nach Ausnutzen des Exploits über den Befehl Xiaomi Mi 4A Gigabit
Gerät
aktuell unterstützt
Xiaomi Mi 4A Gigabit v1 (GigaDevice SPI-Flash)
✅
Xiaomi Mi 4A Gigabit v1 (cFeon SPI-Flash)
✅
Xiaomi Mi 4A Gigabit v2
❌
ls /etc/Wireless
feststellen.
mt7603e mt7612
mt7603e mt7663
root@XiaoQiang:~# ls /etc/Wireless
mt7603e mt7612
20221201
werden beide Varianten des v1-Layouts vom selben Image unterstützt und müssen nicht unterschieden werden.
Das v2-Layout wird aktuell nicht unterstützt. Solltest du ein Gerät mit v2-Layout erhalten haben, nimm bitte Kontakt mit den Firmware-Entwicklern oder der Community auf.Xiaomi Mi 4A
Gerät
aktuell unterstützt
Xiaomi Mi 4A (100m)
✅
Xiaomi Mi 4A (100m-intl)
✅
cat /proc/mtd | grep mtd6
feststellen.
mtd6: 00100000 00010000 “overlay”
mtd6: 00200000 00010000 “overlay”
root@XiaoQiang:~# cat /proc/mtd | grep mtd6
mtd6: 00200000 00010000 “overlay”
Installation #
Zum Überschreiben der Herstellerfirmware ist ein Exploit des Web-UI nötig: https://github.com/acecilia/OpenWRTInvasion
Videozusammenfassung des Exploits: https://www.youtube.com/watch?v=VxzEvdDWU_s
Die Videoanleitung sollte nur als zusätzliche Hilfestellung, nicht aber als Referenz genutzt werden!
Router vorbereiten #
- Router mit dem Internet verbinden (wichtig, da beim Installationsvorgang zusätzliche Daten vom Router aus dem Internet geladen werden müssen!)
- entweder über den WAN-Port
- oder per WiFi Client (Modus “WiFi Access Point”, hier ändert sich allerdings die IP Adresse des Web-UI!)
- PC mit einem der beiden LAN-Ports verbinden, IPv4 Adresse per DHCP beziehen
- Mit 192.168.31.1 verbinden und Setup-Assistenten durchlaufen
- Stok auslesen: Im Web UI einloggen. Die URL in der Adresszeile beinhaltet etwas wie
stok#3700b146c87e45fea51170f87f47d34c
Exploit ausnutzen #
Hierfür kann auch der Anleitung des OpenWRTInvasion Exploits gefolgt werden.
Für Windows gibt es eine Dockervariante, die in der oben verlinkten Anleitung beschrieben wird. (nicht getestet)
- Git Repository klonen:
git clone https://github.com/acecilia/OpenWRTInvasion.git
python3-pip
installieren- Im geklonten Repository
./remote_command_execution_vulnerability.py
ausführen:cd OpenWRTInvasion ./remote_command_execution_vulnerability.py
- IP Adresse des Routers und stok (nur den Teil nach
stok#
) eingeben
Firmware flashen #
- Mit
telnet
auf dem Router einloggen (User: root, Passwort: root):telnet 192.168.31.1
- Ein OpenWrt oder Freifunk sysupgrade Image nach /tmp/firmware.bin kopieren
openwrt-[version]-ramips-mt7621-xiaomi_mi-router-4a-gigabit-squashfs-sysupgrade.bin
fff-[variant]-[version]-xiaomi_mi-router-4a-gigabit-sysupgrade.bin
cd /tmp wget -O firmware.bin <firmware-url>
- Prüfsumme berechnen:
./busybox sha256sum firmware.bin
- Installieren:
mtd -e OS1 -r write firmware.bin OS1
Ports für Layer3 Konfiguration #
Xiaomi Mi 4A Gigabit Edition #
Geräteport | Untagged | Tagged |
---|---|---|
Internet | wan:* |
wan:t |
• | lan1:* |
lan1:t |
•• | lan2:* |
lan2:t |
Xiaomi Mi 4A (100m/100m-intl) #
Der Xiaomi Mi 4A (100m/100m-intl) hat noch keine Unterstützung fürDSA
und benutzt nochswconfig
um die Ports zu konfigurieren.
Geräteport | Untagged | Tagged |
---|---|---|
Internet | 0 |
0t |
• | 2 |
2t |
•• | 4 |
4t |