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
- per Web-UI:
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 |