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

OpenWrt flashen

  • Mit telnet auf dem Router einloggen (User: root, Passwort: root):
    telnet 192.168.31.1
    
  • OpenWrt sysupgrade Image nach /tmp/firmware.bin kopieren
    cd /tmp
    wget -O firmware.bin <firmware-url>
    
  • Prüfsumme berechnen:
    ./busybox sha256sum firmware.bin
    
  • Installieren:
    mtd -e OS1 -r write firmware.bin OS1
    

Theoretisch kann hier auch direkt die Freifunk Firmware heruntergeladen und geflasht werden.

Freifunk Firmware flashen

  • Über LAN-Port in OpenWrt einloggen
    • IP: 192.168.1.1
    • User: root
  • Freifunk Firmware flashen
    • per Web-UI:
      • System → Backup / Flash Firmware → "Flash new firmware image"
      • Wichtig: "Keep settings" abwählen!
    • per SSH:
      scp -O ~/Downloads/fff-firmware.bin root@192.168.1.1:/tmp/
      
      ssh root@192.168.1.1
      # Wichtig: -n nicht vergessen!
      sysupgrade -n /tmp/fff-firmware.bin
      

Ports für Layer3 Konfiguration

Gerät Typ Internet 1 2
Xiaomi Mi 4A Gigabit Edition DSA wan lan1 lan2
Xiaomi Mi 4A (100m/100m-intl) swconfig 0 2 4