[Gelöst] Fritzbox 6360 Firmware Modifikation

vaxinf

Mitglied
Mitglied seit
17 Feb 2016
Beiträge
217
Punkte für Reaktionen
11
Punkte
18
Ich habe es geschafft mit Hilfe von freetz eine FB3270 so zu konfigurieren, dass man sich über telnet anmelden kann
und von dort aus die Ausgabe des Bootvorgangs einer anderen Fritzbox ansehen kann (Stickwort minicom & inittab-modifikation).

Eine Fritzbox 7332 SL / 7320 produziert richtig viel output und am Ende kann man sich einloggen.

Hingegen bleibt es bei einer FB 6360 (eine Kabel-FB) ausser ein paar "…." "still".

Ich kann die recover-firmware der 6360 in einem freetz-system entpacken und wieder packen.
Das upload erledige ich mit adam2. Dies gelingt mir auch problemlos. Alle Versuche der Änderungen
waren bisher erfolglos (inittab "console" string ersetzt durch "ttyS0") oder produzierten rebootende Systeme (vermutlich wg. eines crashs).

Ich möchte fragen, ob jemand weiss, ob man durch Änderung einer config-Datei die 6360 zum "Sprechen" bekommen kann oder ob das im kernel disabled ist?
Dann wäre es wohl vergebene Liebesmühe.

Vielen im voraus
Eberhard
 
Nach etlichen Fehlschlägen habe ich einen Weg gefunden, telnet auf der Fritzbox 6360 zu aktivieren.

Die üblichen Wege (Aktivieren durch Telefon oder per Unterschieben eines Firmware-"Updates") sind für diese Geräte nicht gangbar:
die Telefonaktiverung ergab keine Aktiverung und ein Firmware-upload ist im Webservermenü der Fritzbox nicht zu finden.

Was ich zur Verfügung hatte, war ein recovery-image mit FW 6.04 drin. Durch Entpacken des exe-files mit 7zip kommt man an die ".data"-Datei, die bis auf die ersten 114 bytes dem regulären Image entspricht, das man auf die Fritzbox laden muss.

Nun braucht man Freetz, um diese image (von mir genannt "kernel.image") zu entpacken:
1. Teilen von kernel.image in kernel.raw und kernelsquashfs.raw: ../tools/find-squashfs kernel.image
2. unsquash in den directory-tree "filesystem..." : sudo ../tools/unsquashfs3-lzma -n -d filesystem kernelsquashfs.raw 2>/dev/null
3. ownerhip user freetz vom filesystem-tree: cd filesystem
sudo chown -R freetz *
sudo chgrp -R freetz *
4. Modifizierung:
cd /sbin
ln -sf ../bin/busybox telnetd
cd ../etc/init.d
Script-Datei erzeugen: nano S79-telnetd
Inhalt:
#! /bin/sh -v
###############################################################################$
## telnetd Starten
###############################################################################$
if [ -x /sbin/telnetd ] ; then
cd /var/tmp
cp -R /usr/sbin /var/tmp/usersbin
mount -o bind usersbin /usr/sbin
ln -sf /bin/busybox usersbin/telnetd
/usr/sbin/telnetd -l /sbin/ar7login -p 23
fi

5. Erzeugen des squashfs: ../tools/mksquashfs3-lzma filesystem/* ./kernelsquashfs_neu.raw -noappend -all-root -info -be -no-progress -no-exports -no-sparse -b 65536
6. Erzeugen des images: cat kernel.raw kernelsquashfs_neu.raw > fb_neu.image../tools/find-squashfs kernel.image

Nun habe ich dieses image mit meinem raspi per ftp auf die mtd1-Partition geschaufelt und siehe da: man kann sich per telnet einloggen!

Als nächstes will ich versuchen, das Gerät ans Kabel zu bringen, um hoffentlich den Update auf FW V6.50 herunterzuladen. Eine provisionierte Fritzbox 6360 mit Firmware 6.50 ist vorhanden.

Für folgende Tipps wäre ich dankbar:
Wie ändern man per telnet macdsl?
Wo landet die Firmware bevor sie installiert wird?

Eberhard
 
Schritt 4 ist irgendwie unklar ... wenn man schon den Symlink für den Telnet-Daemon anlegen kann (auch wenn der bei der AVM-BB nach /usr/sbin gehört und nicht nach /sbin), dann braucht es ja das bind-Mount gar nicht mehr. Das ganze Kopieren nach /var/tmp/usersbin dient ja nur dazu, eine beschreibbare Kopie von /usr/sbin zu erhalten, damit man den Symlink anlegen kann.

Da bist Du wohl durcheinander geraten ... und dann braucht es auch das zusätzliche Start-Skript nicht, weil sich der Telnet-Daemon dann wieder ganz normal über das Telefon starten und stoppen läßt.

Warum hattest Du denn so viele Fehlschläge? Das von Dir Beschriebene (bis auf das "Beschaffen" der Recovery-Version für die 06.04) ist genau dasselbe, was man bei allen neueren Firmware-Versionen ohne Telnet-Service auch machen muß und selbst für das Extrahieren der Firmware aus einem Recovery-Programm gibt es Tools im Freetz-Trunk.

Deine Eingangsfrage drehte sich schließlich darum, wie man die serielle Schnittstelle der 6360 zum Leben erwecken könne ... von Telnet für die 6360 steht da nichts. Ansonsten wäre auch dort auf viel einfacheren Wegen (auch ohne den Weg über 06.04) das Starten eines Telnet-Daemons machbar gewesen, das Prinzip ist dasselbe wie bei der 6490 - wobei "frühe" 6360-Versionen sicherlich keinen TFFS-Dump in den Support-Daten anbieten und man daher mit einer "frischen" 6360 leben müßte (also alle Einstellungen verloren gehen).

Auch die 6360 hat zwei Firmware-Versionen an Bord ... je nachdem, wie alt die FRITZ!Box ist und wie Du da das Image in das System gebracht hast, ist vielleicht in der zweiten Partition noch ein anderes System installiert - u.U. schon die gesuchte 06.50.
 
Vielen Dank für die Tipps.

Jetzt wo ich eine funktionierende Lösung bereits habe, kann ich darauf aufbauend noch etwas herumspielen. Ich hatten den Eindruck, dass ohne das Kopieren
in den R/W-Bereich meine Lösung nicht ging (vielleicht habe ich aber auch den symbolischen Link vergessen.).
Ich poste dann noch einmal, wenn es einfachere Lösungen gibt.

Eberhard

- - - Aktualisiert - - -

Hallo,

die Welt ist wirklich viel einfach als man denkt:

man braucht wirklich nur den telnetd-link in usr/sbin zu erzeugen und das Ganze anschließend wie oben beschrieben in das image packen.
Per Telefon #96*7* telnet einschalten, that's it.

Dank für den Tipp!
Eberhard
 
Als nächstes will ich versuchen, das Gerät ans Kabel zu bringen, um hoffentlich den Update auf FW V6.50 herunterzuladen. Eine provisionierte Fritzbox 6360 mit Firmware 6.50 ist vorhanden.

brauchst du eigentlich gar nicht.
http://www.ip-phone-forum.de/showthread.php?t=283851&p=2147376&viewfull=1#post2147376 zum sichern deiner provisionierten box mit.6.50
dazu wirst du telnet auf der 6.50 benötigen.
http://www.ip-phone-forum.de/showthread.php?t=286994&page=53&p=2189010&viewfull=1#post2189010
das möchtest du lesen um telnet zugang zur 6.50 zu bekommen...
 
Das ist bei der 6360 ein klein wenig komplizierter und braucht einiges an Anpassungen.

Dieses Modell hat keinen internen NAND-Flash unter /var/media/ftp liegen, man muß also mit USB-Speichern arbeiten und das erfordert im Minimum das Anpassen einiger Pfade.

Überhaupt macht es am Ende mehr Sinn, wenn man das Ziel eines Skriptes "verinnerlicht" hat und da ist es immer noch das beste, es einfach selbst zu schreiben. Aber zumindest verwendet die 6360 auch keinen NAND-Flash für das TFFS (dessen Dump auseinanderzunehmen, habe ich immer noch nicht eingebaut und dabei habe ich selbst eine 7412 zum Spielen), damit funktionieren die Skripte zum TFFS vermutlich ohne Änderungen.
 
Hier meine neuesten Ergebnisse:

Ich habe jetzt auch ein FB6360 Firmware Version 6.33 mit telnet-Zugang.

Was mir noch fehlt, ist die 6.50 Version für FB6360.

Für Tipps wäre ich dankbar.

Eberhard
 
Ich habe jetzt auch ein FB6360 Firmware Version 6.33 mit telnet-Zugang.
Nur auf der Box oder auch ausgelesen? Die ausgelesene Version nehme ich gerne ... die müßte zeitlich zwischen der 06.31 und der 06.50 bei der 6490 liegen, da kann man dann wieder ein paar Entwicklungsschritte vergleichen.

Ich kenne leider auch niemanden mehr, der eine 6360 hätte ... solange so eine noch vorhanden war, habe ich auch ständig auf ein Update der Box durch KDG gelauert, das trotz Ankündigung im eigenen Support-Forum nie so richtig ankam und zwei Monate später gab es dann die 6360 nicht mehr.
 
Ich habe die Partitionen ausgelesen, den link vom telnetd gesetzt und die Box wieder beschreiben.
Alles läuft wie vorher (wird vom Provider akzeptiert).
Was mir fehlt ist, wie man einen update triggen kann über telnet.

Eberhard
 
Ich habe die Partitionen ausgelesen, den link vom telnetd gesetzt und die Box wieder beschreiben.
Alles läuft wie vorher (wird vom Provider akzeptiert).

Wie gehst Du mit der Markierung "Vom Hersteller nicht unterstützte Änderungen" (Marker-Node 87 (0x57) im TFFS, aka "fwattrib") in der Übersichtsseite um ?

Gibt es da keine Probleme in Verbindung mit KNB ?
kann dieser Marker oder Prozessliste "telnetd -l /sbin/ar7login" seitens Provider (z.B. via TR064/TR069) überhaupt ausgelesen werden ?

evtl. kann jemand was dazu sagen.
 
Zumindest in der Ausgabe von "eventsdump -d" sind die Flags aus der "fwattrib" enthalten - was der Provider jetzt genau sieht, wenn er das Eventlog haben will (auf alle Fälle geht das über TR-069, ich weiß nur nicht mehr, ob es einzeln oder nur mit allen anderen Support-Daten zu haben war), kann ich nicht sagen.

Aber der Telnet-Service ist ohnehin nur die zweitbeste Lösung ... bei Verwendung von SSH kann man auf Pubkey-Auth setzen und dann braucht man das ganze "ar7login" nicht (das setzt ja beim Login das "TELNET"-Flag) - bei leerer "debug.cfg" wird auch das "DEBUGCFG"-Flag nicht gesetzt. Das dritte ist m.E. das "UNSIGNED"-Flag, was früher bei der Installation unsignierter Firmware gesetzt wurde - habe ich auch schon lange nicht mehr gesehen.

Die Prozessliste würde der Provider im Rahmen der kompletten Support-Daten meines Erachtens kriegen ... wobei das ja auch nur eine Fingerübung ist (wenn man das Dateisystem ohnehin schon verändert), da noch ein "grep -v telnet" an die "ps"-Kommandos anzuhängen in "/bin/supportdata". Solange man nur will (oder auch ein Angreifer das will), kann man sich schon ziemlich gut der Entdeckung anhand der Support-Daten entziehen und so ohne weiteres (also ohne eigenen "Hack") kriegt auch der Provider keine Shell auf der Box zustande - da wäre die "Tarnung" dann tatsächlich etwas schwieriger.

So ein "stealth virus" ist jedenfalls für die Support-Daten auch schnell erstellt - sind halt auch nur Shell-Skripte und lassen sich (nahezu beliebig) manipulieren. Wobei das auch bei einem Binary nun nicht viel schlimmer wäre (nur aufwändiger) ... da müßte man dann einen "wrapper" um das Programm verwenden und dann den kompletten STDOUT-Inhalt (das sind ja die Support-Daten) noch einer "Nachbearbeitung" unterziehen.
 
Wie gehst Du mit der Markierung "Vom Hersteller nicht unterstützte Änderungen" (Marker-Node 87 (0x57) im TFFS, aka "fwattrib") in der Übersichtsseite um ?

Gibt es da keine Probleme in Verbindung mit KNB ?
kann dieser Marker oder Prozessliste "telnetd -l /sbin/ar7login" seitens Provider (z.B. via TR064/TR069) überhaupt ausgelesen werden ?

evtl. kann jemand was dazu sagen.

echo clear_id 87 > /proc/tffs löscht die Meldung.
 
Nach etlichen Versuchen, wie man bei der Fritzbox 6360 an die Firmware kommt, hier meine Zusammenfassung:

Bei der FB6360 kann man zwischen zwei Firmware-Versionen hin- und herschalten, ohne die Konfiguration zu
zerstören. Das Aktivieren geschieht über die environment-Variable linux_fs_start, die auf 0 oder 1 gesetzt werden kann.
Das setzen geschieht per ftp kurz nach dem Start der FB über das adam2-interface. Wie man das bedient, ist hinreichend
in diesem Forum beschrieben worden.

Man suche über die linux_fs_start-Methode als erstes die ältere Firmwareversion und überschreibe sie mit einer image-
Version, in der telnet aktivierbar ist. Das image besteht aus kernel+dem angehängten squashfs-Teil. Man schreibe dieses
image auf mtd1 per ftp. Nach dem Start dieser Version und dem Aktivieren von telnet kann man die mtdn-Partitionen
auf einen USB-Stick sichern (z.B. cat /dev/mtd7 > /"Pfad zum USB-dir"/mtd7.dmp). Die Version, die nicht aktiv ist,
befindet sich nach meiner Erfahrung in mtd7 (squashfs-Teil) und mtd8 (kernel). Mit "cat mtd8.dmp mtd7.dmp > fb6360_fwxxx.image"
kann man das image erzeugen, das auf einem anderen 6360-Gerät eingespielt werden kann (wieder auf mtd1 einer verzichtbaren FW-Version).

So habe ich inzwischen eine "Sammlung" von Firmware 6.33, 6.50 und 6.52.

Hope this helps
Eberhard
 
Man schreibe dieses image auf mtd1 per ftp.

Idee: Was hältst Du von Online-Flashen der Shadow-Partition Online per "dd if=/var/media/ftp/uStor00/mtdX.bak of=/dev/mtdblockX" ?

Wenn der Aufbau der FB6360 analog zu FB7270 ist, d.h. NOR-Device mit Zugriff auf Blockdevices /dev/mtdblockX,
dann wäre es auch denkbar, dass dies mit "dd", d.h. ohne Recovery-Interface (EVA/ADAM2) durchführbar ist.

Quelle: http://trac.freetz.org/wiki/help/howtos/development/save_mtd_1#Zusammenfassung
 
Ich halte es für gewagt, die aktive Partition zu überschreiben und das adam2-Interface von linux aus ist narrensicher (ich nehme einen knoppix-usbstick).

Eberhard
 

Statistik des Forums

Themen
246,155
Beiträge
2,247,022
Mitglieder
373,674
Neuestes Mitglied
Jens_120
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.