Solarinverter: Sicherheit auf dem Prüfstand

Seite 5: Pakete mit der Fritzbox loggen

Inhaltsverzeichnis

Die Fritzbox bietet ein paar spannende Zusatzfunktionen, die nicht direkt im Menü zu finden sind. Sie sind für Servicezwecke in die Firmware integriert worden. Um das Feature nutzen zu können, muss man sich anmelden. Es ist sinnvoll, hierfür einen separaten User zu erstellen, den man für die Dauer-Aktivitäten aktiv lässt, anschließend aber wieder deaktivieren sollte.

Unter der URL fritz.box/html/capture.html findet man eine komplette Web-Oberfläche zum Packet Capturing für alle Netzwerk-Interfaces der Fritzbox – leider ist das nicht offiziell dokumentiert.

Hier ist eine Liste der möglichen Capture-Interfaces der Fritzbox 7590. Bei anderen Modellen können die verfügbaren Interfaces und ggf. deren Bedeutung etwas anders sein:

  • 1. Internetverbindung
  • Routing-Schnittstelle
  • Schnittstelle 1 ('avm-ipsec')
  • Schnittstelle 0 ('internet')
  • eth0, eth1, ...
  • guest, guest4, guest5, ...
  • lan
  • wan
  • ath1 (5 GHz WiFi)
  • ath0 (2,4 GHz WiFi)
  • ...

Mit einem Knopfdruck im Browser startet man das Capture und lädt die Wireshark-tauglichen PCAP-Files direkt auf seinen Computer herunter. Einfacher geht es wohl kaum.

Beim Deye-Inverter wusste ich, dass er nur auf 2,4 GHz funken konnte, also war klar, welches Interface ich mitlesen wollte: ath0. Da aber auch andere Geräte eine Menge Traffic erzeugen, der mich nicht interessierte, wollte ich noch den Filter so einstellen, dass er nur die Pakete des Inverters mitlas.

Auch das ist kein Problem. Man muss hierzu nur die IP-Adresse des „Geräts of Interest“ herausfinden. In meinem SolarLabNet war dies die 10.2.2.11 (bei den meisten Nutzern wird sie eher im Bereich 192.168.x.x. liegen). Der Filter-String lautet "ip host 10.2.2.11" und schneidet alles mit, was von oder zu dem Gerät mit der IP gesendet wurde. Welche Filter-Settings konkret möglich sind, habe ich leider nicht offiziell dokumentiert gefunden. Es lohnt sich aber, sich die PCAP-Filterregeln anzusehen und zu testen, wenn man spezielle Anforderungen ans Capturing hat.

Tipp 1: Erst, wenn die ersten Daten „fließen“, startet der Download-Stream und man wird nach einem Speicherort gefragt. Das kann ggf. auch länger dauern, wenn keine Pakete verschickt werden. Dies kann man beschleunigen, indem man die lokale Website des Geräts aufruft. Passiert auch dann noch nichts, hat man entweder einen unpassenden Filter-String oder das falsche Interface ausgewählt.

Tipp 2: Linux, denn dort lässt sich die Funktion auch direkt aus Wireshark realisieren. Hier wird dann der Stream in Wireshark geladen und man kann live zusehen, wie die Daten rein tröpfeln. Ich musste aber etwas tricksen, da die verfügbaren Devices und auch die API-Calls der Fritzbox stellenweise etwas unterschiedlich waren. Wer sich etwas auskennt und in Foren sucht, bekommt es aber sicher hin.

Bild 5: Auf der Fritzbox-Service-Page kann man nun einen Filter für die gewünschte IP-Adresse und die passende Netzwerkschnittstelle angeben. Hier wird alles von und zur IP 10.2.2.11 mitgeschnitten, was über das Interface ath0 (WiFi 2,4 GHz) geht.

Das Ergebnis des Fritzbox-Capturings sieht wie folgt aus und liegt nun im Dateisystem bereit:

Bild 6: Die von der Fritzbox erzeugte Datei endet auf ETH.