Simon Szustkowski

Ein Blog über alles, was mir gerade so durch den Kopf geht

Aug 24, 2016

Backdooring über die Freifunk-Node

Ich hatte neulich etwas mit den Freigabe-Settings auf meinem Router rumgespielt, und offenbar dabei versehentlich die SSH-Freigabe meines Homeservers nach außen deaktiviert. Dummerweise fiel mir dies erst auf, nachdem ich nicht mehr zu Hause war, und ein Ansible-Playbook auf dem Homeserver ausführen wollte. Darauf warten, bis ich wieder zu Hause bin, und shameful ein Häkchen im OpenWRT-WebGUI zu setzen wollte ich nicht. Immerhin bin ich ein Administrator meiner eigenen Hardware, und nicht nur ein dummer User. Mad Hacking intensifies…

Zuallererst hatte ich ja noch HTTP/S-Zugriff auf den Server. Damit konnte ich auch die FHEM-Instanz erreichen, die dort lief. FHEM ist in Perl geschrieben, und kann auch Perl-Commands direkt aufrufen, so zB den system-Command, der dann eine reverse SSH-Session zu meinem Poolaccount an der Uni öffnen sollte, über die ich dann wiederum auf den Homeserver, und von dort auf den Router connecten können würde, um die Freigabe wieder aktivieren zu können. Theoretisch. Praktisch ist SSH in den Erstverbindungsversuchen ein unglaublich interaktiver Befehl, der Eingaben haben möchte, ob man zB den Hostkey akzeptieren möchte, und wie denn das Passwort lauten würde, usw. Blöd, dass FHEM mit Perlbefehlen, die interaktive Konsolentools starten, nicht funktioniert. Also wird das nichts.

Weitere offene Ports waren für eine Munin-Verbindung, sowie 1-2 Gameserver. Alles ohne brauchbare Exploits, und auch irgendwie zu frickelig.

Aber dann kam der Geistesblitz. Ich habe ja in meinem Netzwerk eine Freifunk-Node stehen, auf der ich irgendwann mal SSH aktiviert hatte. Die baut ins Freifunknetz ja eine eigene, getunnelte WAN-Verbindung auf…sollte der SSH-Server der Node irgendwie von außen erreichbar sein, könnte ich dadrüber ja bridgen…? Mal ausprobieren. Glücklicherweise ist auf diesen ganzen tollen Freifunk-Übersichtskarten ja auch irgendwo die IPv6-Adresse der Nodes einsehbar. Also müsste der SSH-Server ja theoretisch auch darauf lauschen. An meinem lokalen Standort hatte ich kein IPv6, aber mein vServer, den ich bei einem Provider im Rechenzentrum hosten lasse, hat v6. Also mal geguckt, ob ich von dort eine Session zu meiner Node aufbauen kann… To cut a long story short, ich konnte über die Node, die in beiden Netzen (Freifunk und mein LAN) hängt, in meinen Router reinbridgen, und die SSH-Freigabe wieder öffnen.

Zum einen komme ich mir gerade ultratrve vor, weil das alles irgendwie geklappt hat, zum anderen schreibe ich das hier jetzt auch mal, weil ich bestimmt nicht der einzige bin (als ob!), der nicht daran gedacht hat, dass die ganze Absicherei auf der Router nichts bringt, wenn da noch eine zweite WAN-Verbindung über die Freifunknode existiert, über die man potenziell angreifen kann.