Firmwareinstallation/Xiaomi Mi Router 4A: Unterschied zwischen den Versionen

Aus Freifunk Franken
Wechseln zu:Navigation, Suche
Zeile 1: Zeile 1:
== Installation ==
== Installation ==
Da die OpenWrt-Firmware des Routers noch nicht final ist, sollte zuerst auf der offiziellen OpenWrt Seite nachgelesen werden: https://openwrt.org/inbox/toh/xiaomi/xiaomi_mi_router_4a_gigabit_edition#openwrt_support
Weitere Informationen findet man immer im OpenWrt Wiki: https://openwrt.org/inbox/toh/xiaomi/xiaomi_mi_router_4a_gigabit_edition


Aktuell (Dezember 2021) ist dieser Firmware Exploit der einfachste Weg: https://github.com/acecilia/OpenWRTInvasion
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
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


Hier die Zusammenfassung (für Linux):
==== Vorbereitung ====
# Testing-FFF-Firmware herunterladen: https://fw.sgstbr.de/testing/20210829/layer3/
# Freifunk Firmware und OpenWrt für das Gerät herunterladen
# OpenWrt-Firmware herunterladen: https://openwrt.org/inbox/toh/xiaomi/xiaomi_mi_router_4a_gigabit_edition#installation


# Router WAN-port mit Internet verbinden
==== Router vorbereiten ====
# PC per LAN-Kabel mit einem der beiden LAN-Ports verbinden
# 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
# Mit 192.168.31.1 verbinden und Router initial einrichten
# Stok auslesen: Erneut im Router einloggen. Die URL beinhaltet etwas wie <code>stok=3700b146c87e45fea51170f87f47d34c</code>
# Stok auslesen: Erneut im Router einloggen. Die URL in der Adresszeile beinhaltet etwas wie <code>stok=3700b146c87e45fea51170f87f47d34c</code>


# Git Repository klonen https://github.com/acecilia/OpenWRTInvasion
==== Exploit ausnutzen ====
# Git Repository klonen: <code>git clone https://github.com/acecilia/OpenWRTInvasion.git</code>
# python3-pip installieren
# python3-pip installieren
# Im geklonten repository "python3 remote_command_execution_vulnerability.py" ausführen
# Im geklonten Repository "remote_command_execution_vulnerability.py" ausführen: <code>cd OpenWRTInvasion; python remote_command_execution_vulnerability.py</code>
# IP Adresse des Routers und Stok (nur den Part hinter dem =) eingeben
# IP Adresse des Routers und Stok (nur den Part hinter dem =) eingeben
# telnet auf den Router (root:root)
 
# Firmware nach /tmp/firmware.bin
==== OpenWrt flashen ====
# telnet auf den Router (User: root, Passwort: root): <code>telnet 192.168.31.1</code>
# OpenWrt sysupgrade Image nach /tmp/firmware.bin kopieren, z.B. per <code>cd /tmp; wget <firmware-url></code>
# Prüfe Checksum: ./busybox sha256sum firmware.bin
# Prüfe Checksum: ./busybox sha256sum firmware.bin
# Installation mit mtd -e OS1 -r write firmware.bin OS1
# Installation mit mtd -e OS1 -r write firmware.bin OS1


# Nach Reboot Login mit OpenWrt Defaults (192.168.1.1 Username: root kein Passwort)
==== Freifunk flashen ====
# FFF-Testing-FW installieren: sysyupgrade -n --force /tmp/fff-testing-firmware.bin
# 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: <code>sysyupgrade -n /tmp/fff-firmware.bin</code>


</br>
</br>

Version vom 22. Dezember 2021, 13:10 Uhr

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

  1. Freifunk Firmware und OpenWrt für das Gerät herunterladen

Router vorbereiten

  1. WAN-Port mit Internet verbinden (wichtig, da beim Installationsvorgang zusätzliche Daten vom Router aus dem Internet geladen werden müssen!)
  2. PC mit einem der beiden LAN-Ports verbinden, IP Adresse per DHCP beziehen
  3. Mit 192.168.31.1 verbinden und Router initial einrichten
  4. Stok auslesen: Erneut im Router einloggen. Die URL in der Adresszeile beinhaltet etwas wie stok=3700b146c87e45fea51170f87f47d34c

Exploit ausnutzen

  1. Git Repository klonen: git clone https://github.com/acecilia/OpenWRTInvasion.git
  2. python3-pip installieren
  3. Im geklonten Repository "remote_command_execution_vulnerability.py" ausführen: cd OpenWRTInvasion; python remote_command_execution_vulnerability.py
  4. IP Adresse des Routers und Stok (nur den Part hinter dem =) eingeben

OpenWrt flashen

  1. telnet auf den Router (User: root, Passwort: root): telnet 192.168.31.1
  2. OpenWrt sysupgrade Image nach /tmp/firmware.bin kopieren, z.B. per cd /tmp; wget <firmware-url>
  3. Prüfe Checksum: ./busybox sha256sum firmware.bin
  4. Installation mit mtd -e OS1 -r write firmware.bin OS1

Freifunk flashen

  1. Nach Reboot Login mit OpenWrt Defaults auf LAN Ports (192.168.1.1, Username: root, kein Passwort)
  2. Freifunk Firmware per scp nach /tmp kopieren
  3. 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:*'