Firmwareinstallation/Xiaomi Mi Router 4A
Installation
Weitere Informationen findet man immer im OpenWrt Wiki: https://openwrt.org/inbox/toh/xiaomi/xiaomi_mi_router_4a_gigabit_edition
Aktuell (Dezember 2021) ist das Flashen mit diesem Firmware Exploit der einfachste Weg: https://github.com/acecilia/OpenWRTInvasion
Zusätzlich gibt es eine Videozusammenfassung, welche als Refernz dienen kann. bitte beachtet aber die Hinweise im oben verlinkten Git Repository: https://www.youtube.com/watch?v=VxzEvdDWU_s
Vorbereitung
- Freifunk Firmware und OpenWrt für das Gerät herunterladen
Router vorbereiten
- WAN-Port mit Internet verbinden (wichtig, da beim Installationsvorgang zusätzliche Daten vom Router aus dem Internet geladen werden müssen!)
- PC mit einem der beiden LAN-Ports verbinden, IP Adresse per DHCP beziehen
- Mit 192.168.31.1 verbinden und Router initial einrichten
- Stok auslesen: Erneut im Router einloggen. Die URL in der Adresszeile beinhaltet etwas wie
stok=3700b146c87e45fea51170f87f47d34c
Exploit ausnutzen
- 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; python remote_command_execution_vulnerability.py
- IP Adresse des Routers und Stok (nur den Part hinter dem =) eingeben
OpenWrt flashen
- telnet auf den Router (User: root, Passwort: root):
telnet 192.168.31.1
- OpenWrt sysupgrade Image nach /tmp/firmware.bin kopieren, z.B. per
cd /tmp; wget <firmware-url>
- Prüfe Checksum: ./busybox sha256sum firmware.bin
- Installation mit mtd -e OS1 -r write firmware.bin OS1
Freifunk flashen
- Nach Reboot Login mit OpenWrt Defaults auf LAN Ports (192.168.1.1, Username: root, kein Passwort)
- Freifunk Firmware per scp nach /tmp kopieren
- Freifunk Firmware installieren:
sysyupgrade -n /tmp/fff-firmware.bin
Für Windows gibt es eine Dockervariante, beschrieben im OpenWRTInvasion-Git.
(Nicht getestet, SebaBe, Dezember 2021)
Konfiguration
Die Firmware läuft bereits mit DSA.
Die Namen der Interfaces von links nach rechts sind "wan", "lan1" und "lan2". Bei DSA gilt die Syntax <if-name>:* für untagged, bzw. <if-name>:t für tagged:
Beispiel:
config gateway 'meta' option config_version '2' #FFF Client config vlan '1' option comment 'client' option ports 'wan:t lan1:* lan2:*' #WAN Uplink config vlan '2' option comment 'wan' option ports 'wan:*'