docs/content/hardware/xiaomi-mi-4a.md

4.7 KiB

title date
Xiaomi Mi Router 4A 2022-12-01T17:25:00+01:00

Hardware unterscheiden

{{< hint danger >}} 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. {{< /hint >}}

{{< details "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

Die Revision des Board-Layouts lässt sich nach Ausnutzen des Exploits über den Befehl ls /etc/Wireless feststellen.

  • v1: mt7603e mt7612
  • v2: mt7603e mt7663
root@XiaoQiang:~# ls /etc/Wireless
mt7603e  mt7612

Ab Firmwareversion 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. {{< /details >}}   {{< details "Xiaomi Mi 4A" >}}

Gerät aktuell unterstützt
Xiaomi Mi 4A (100m)
Xiaomi Mi 4A (100m-intl)

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 cat /proc/mtd | grep mtd6 feststellen.

  • 100m: mtd6: 00100000 00010000 “overlay”
  • 100m-intl: mtd6: 00200000 00010000 “overlay”
root@XiaoQiang:~# cat /proc/mtd | grep mtd6
mtd6: 00200000 00010000 “overlay”

{{< /details >}}

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)

{{< hint danger >}} Der Xiaomi Mi 4A (100m/100m-intl) hat noch keine Unterstützung für DSA und benutzt noch swconfig um die Ports zu konfigurieren. {{< /hint >}}

Geräteport Untagged Tagged
Internet 0 0t
2 2t
•• 4 4t