116 lines
4.6 KiB
Markdown
116 lines
4.6 KiB
Markdown
---
|
|
title: "Xiaomi Mi Router 4A"
|
|
date: 2022-12-01T17:25:00+01:00
|
|
---
|
|
|
|
<!--more-->
|
|
|
|
{{< hint danger >}}
|
|
**Achtung!**
|
|
|
|
Es sind verschiedene Versionen des '''Xiaomi Mi 4A Gigabit''' im Umlauf, von denen sich aktuell einige nicht mit OpenWrt / Freifunk betreiben lassen.
|
|
|
|
Weitere Infos im Abschnitt [Hardware-Revisionen unterscheiden](#hardware-revisionen-unterscheiden).
|
|
{{< /hint >}}
|
|
|
|
## Hardware-Revisionen unterscheiden
|
|
Es gibt mehrere Hardware-Revisionen des 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`
|
|
|
|
```sh
|
|
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](mailto:franken-dev@freifunk.net) oder der [Community](https://wiki.freifunk-franken.de/w/Kommunikation) auf.
|
|
|
|
## 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
|
|
{{< hint warning >}}
|
|
**Achtung!**
|
|
|
|
Für den Mi Router 4A 100m (nicht Gigabit) ist eine ältere Herstellerfirmware nötig, da OpenWrt nicht mit dem Partitionslayout der neueren kompatibel ist.
|
|
{{< /hint >}}
|
|
{{< details "Herstellerfirmware downgraden" >}}
|
|
- Ältere Herstellerfirmware herunterladen: [bigota.miwifi.com](https://bigota.miwifi.com/xiaoqiang/rom/r4ac/miwifi_r4ac_firmware_e9eec_2.18.58.bin)
|
|
- Mit gedrückter Reset-Taste Strom verbinden und warten bis die LED orange blinkt
|
|
- DHCP Server bereitstellen, mit einem der beiden LAN-Port verbinden
|
|
- Auf dem Default-Gateway einen TFTP Server starten, Firmware als `test.bin` ablegen
|
|
- Beispiel für TFTP unter Linux:
|
|
```sh
|
|
sudo dnsmasq --no-daemon --bind-interfaces -p0 --dhcp-authoritative --dhcp-range=192.168.1.100,192.168.1.200 --log-dhcp --enable-tftp --tftp-root=$(pwd) --listen-address 192.168.1.1
|
|
```
|
|
- Warten, bis die blaue LED schnell blinkt
|
|
- Strom trennen und erneut verbinden
|
|
{{< /details >}}
|
|
|
|
- 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](https://github.com/acecilia/OpenWRTInvasion) gefolgt werden.
|
|
|
|
Für **Windows** gibt es eine Dockervariante, die in der oben verlinkten Anleitung beschrieben wird.
|
|
(nicht getestet)
|
|
|
|
- Git Repository klonen:
|
|
```sh
|
|
git clone https://github.com/acecilia/OpenWRTInvasion.git
|
|
```
|
|
- `python3-pip` installieren
|
|
- Im geklonten Repository `./remote_command_execution_vulnerability.py` ausführen:
|
|
```sh
|
|
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):
|
|
```sh
|
|
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`
|
|
```sh
|
|
cd /tmp
|
|
wget -O firmware.bin <firmware-url>
|
|
```
|
|
- Prüfsumme berechnen:
|
|
```sh
|
|
./busybox sha256sum firmware.bin
|
|
```
|
|
- Installieren:
|
|
```sh
|
|
mtd -e OS1 -r write firmware.bin OS1
|
|
```
|
|
|
|
## Ports für Layer3 Konfiguration
|
|
- `wan:*` bzw. `wan:t`
|
|
- `lan1:*` bzw. `lan1:t`
|
|
- `lan2:*` bzw. `lan2:t`
|
|
|
|
## Links
|
|
- [OpenWRT Wiki (Gigabit)](https://openwrt.org/inbox/toh/xiaomi/xiaomi_mi_router_4a_gigabit_edition)
|
|
- [OpenWRT Wiki (100m)](https://openwrt.org/toh/xiaomi/mi_router_4a_mir4a_100m)
|