Fritzbox 6490 Cable Firmware Update?

[Fullquote des Beitrags direkt darüber gelöscht - siehe Forumsregeln, Novize]


mtd0 0x0,0x4000000 Filesystem ARM
mtd1 0x4000000,0x4800000 Kernel ARM
mtd2 0xa0000,0xc0000 Urlader
mtd3 0xc0000,0x100000 Environment
mtd4 0x100000,0x140000 Environment
mtd5 0x140000,0x1e0000 DOCSIS
mtd6 0x4800000,0x8800000 Filesystem ATOM
mtd7 0x8800000,0x9000000 Kernel ATOM
mtd8 0x0,0x80000 cefdk
mtd9 0x80000,0x90000 cefdk_config
mtd10 0x90000,0xa0000 GPT_Backup
mtd11 0x9000000,0xd000000 Filesystem ARM (reserved)
mtd12 0xd000000,0xd800000 Kernel ARM (reserverd)
mtd13 0xd800000,0x11800000 Filesystem ATOM (reserved)
mtd14 0x11800000,0x12000000 Kernel ATOM (reserved)

mtd2,3,4,5,8,9,10 liegen in einem SPI Flash, der Rest im EMMC.

Mit diesem Layout konnte ich meine 6490 auch direkt über ADAM2 per FTP Flashen, nachdem ich meine "Telnet" Partition versehentlich überschrieben hatte.
 
Zuletzt bearbeitet:
Hallo, hat eigentlich schon einer bei der 6490 den "Client IP Modus" aktiviert bekommen?

Alle Tipps sind willkommen! Den "normalen" Bridge Menüpunkt für Lan Port 2,3 und 4 habe ich schon und auch habe ich in der export Datei schon die (vermeintlichen) Punkte umgestellt, aber geholfen hat das alles nix.
mode = dsldmode_bridge;
 
mtd2,3,4,5,8,9,10 liegen in einem SPI Flash, der Rest im EMMC.

Mit diesem Layout konnte ich meine 6490 auch direkt über ADAM2 per FTP Flashen

Könntest Du hierzu ein Beispiel posten, so dass dies reproduzierbar wird;
 
Zuletzt bearbeitet:
@pokemon20021:

wenn du sicher gehen willst, schreibst du via adam2 die passenden teile der entpackten firmware auf die reservierten partitionen, schaltest dein linux_fs_start auf die inaktive variable und rebootest. dann startet sie von dem, was du geflasht hast. ein schreiben auf die aktiven partitionen geht aber auch. die syntax zum flashen via ftp sollte von anderen boxen bekannt sein.

@mik719: danke, danach habe ich lane gesucht.
 
Zuletzt bearbeitet:
Super, hat auch geklappt.

Code:
Urloader ENV                      linux device                             Größe
mtd0 0x0,0x4000000                /dev/mmcblk0p5: filesystem_ARM           64MB
mtd1 0x4000000,0x4800000          /dev/mmcblk0p6: kernel_ARM               8MB
mtd2 0xa0000,0xc0000              /dev/mtdblock0: urlader                  128KB
mtd3 0xc0000,0x100000             /dev/mtdblock1: tffs (1)                 256KB
mtd4 0x100000,0x140000            /dev/mtdblock2: tffs (2)                 256KB
mtd5 0x140000,0x1e0000            /dev/mtdblock3: config-space             640KB
mtd6 0x4800000,0x8800000          /dev/mmcblk0p7: filesystem_ATOM          64MB
mtd7 0x8800000,0x9000000          /dev/mmcblk0p8: kernel_ATOM              8MB
mtd8 0x0,0x80000                  /dev/mtdblock4: cefdk                    512KB
mtd9 0x80000,0x90000              /dev/mtdblock5: cefdk_config             64KB
mtd10 0x90000,0xa0000             /dev/mtdblock6: gpt_backup               64KB
mtd11 0x9000000,0xd000000         /dev/mmcblk0p1: filesystem_reserved_ARM  64MB
mtd12 0xd000000,0xd800000         /dev/mmcblk0p2: kernel_reserved_ARM      8MB
mtd13 0xd800000,0x11800000        /dev/mmcblk0p3: filesystem_reserved_ATOM 64MB
mtd14 0x11800000,0x12000000       /dev/mmcblk0p4: kernel_reserved_ATOM     8MB
 
Nun ist die Katze bzgl. der Erreichbarkeit der eMMC-Partitionen von EVA aus ja auch aus dem Sack ... gibt es vielleicht sonst noch irgendwelche - berichtenswerten - Besonderheiten des Bootloaders in der 6490?

Die "Bezeichnungen" im laufenden System sind natürlich nicht fix - das geht aus der Tabelle in #1496 nicht so richtig klar hervor. Dort wird die Namensvergabe (hinter unter "linux device") gezeigt, die für ein System gilt, das mit "linux_fs_start 1" gebootet wurde.

Die jeweils aktuellen Bezeichnungen stehen in der Pseudo-Datei "/proc/avm_partitions" - wenn also jemand auf der Basis von "Filesystem-Namen" arbeiten will in irgendeinem Skript, sollte er das besser dort immer "live" auslesen. Insofern ist auch die Tabelle in #1496 als Zusammenfassung nicht ganz korrekt (wenn meine eigenen Ergebnisse stimmen, die sind schon etwas älter und basieren auf der Urlader-Version 3099, wenn die Aufzeichnungen stimmen).

Der Bootloader nimmt die Zuordnungen seiner "MTD-Partitionen" 0, 1, 6, 7, 11, 12, 13 und 14 anhand des Wertes von "linux_fs_start" vor (insofern gilt die Aufstellung in #1496 wieder nur für "linux_fs_start=1"). Wenn meine Aufzeichnungen auch dazu stimmen (das müßte ich vielleicht doch noch einmal nachtesten), geschieht das einmalig beim Start anhand der Einstellung, die zu diesem Zeitpunkt vorlag und eine Änderung über "SETENV" ändert nichts mehr an dieser Zuordnung, solange nicht neu gestartet wurde - das sollte man (vermutlich) mit einer aktuellen Version (meiner ist derzeit 4125) noch einmal überprüfen, ob das Setzen von "linux_fs_start" das "live" ändert oder nicht.

Für "Forensiker" ist das aber auch noch kein empfehlenswerter Weg ... denn das Auslesen funktioniert m.W. auch für eMMC-Partitionen nicht, selbst wenn diese "eine Nummer" haben - das Ergebnis sollte immer "502 Command not implemented" sein. Damit zerstört man also das "Untersuchungsobjekt" schon, wenn man auf diesem Weg eine eigene Firmware schreiben läßt.


-Und die These: "Ich muß nur irgendwie zum Zeitpunkt des Starts eine Ethernet-Verbindung per Kabel zu einer FRITZ!Box bekommen, um mit der praktisch alles machen zu können." wird davon wieder einmal eindrucksvoll unterstrichen - vielleicht denkt AVM ja doch noch einmal darüber nach, den Bootloader per se etwas besser abzusichern.

Der Vorschlag, daß für die Aktivierung des Loaders (auch bei anderen Modellen und auch für Recovery) das Drücken eines Buttons innerhalb der ersten 5 Sekunden nach dem "Strom rein" erforderlich sein sollte, sichert zwar die Box hier nicht gegen den Zugriff des berechtigten Benutzers ab, aber zumindest gegen ein infiziertes Gerät im LAN, das zum richtigen Zeitpunkt eine solche Möglichkeit des Zugriffs hätte.

Wobei die physikalische Zugangsmöglichkeit zum Gerät hier mit der Berechtigung zum Zugriff gleichgesetzt wird, was auch nicht zwingend ist -> die minderjährigen Kinder im Haushalt werden sicherlich auch (bis auf wenige Ausnahmesituationen) physikalischen Zugang zur Box erlangen können; aber man muß es sicherlich auch nicht übertreiben im Privathaushalt, solange die Eltern über die möglichen Probleme Bescheid wissen. Aber so ganz ohne jede denkbare Lösung wäre so ein "Zugangsproblem" auch nicht - solange anstelle von "adam2" als Kennwort auch mal ein eigenes vergeben werden kann (bei entsprechendem Sicherheitsbedürfnis), ist auch dieser FTP-Server durchaus abzusichern.

Zumindest sollte eben die Unkenntnis eines solchen eingestellten Kennworts (meinetwegen nach dem Erwerb aus zweiter Hand) mit dem Totalverlust der vorhandenen Einstellungen geahndet werden ... es ist ja ziemlich widersinnig, wenn der Nachwuchs einfach mal in der alternativen Partition sein eigenes System unterbringen kann, dieses dann startet und darüber die vorhandenen Einstellungen auslesen darf, woraufhin er im Anschluß nur wieder auf das zuvor installierte System zurückschalten muß und dann bleibt als einzige "Auffälligkeit" noch der Bedarf nach einer Erklärung, warum die FRITZ!Box (möglichst noch per TR-069 unter der Kontrolle des Providers stehend) einen unmotivierten Neustart hingelegt hat.

Den (nicht darauf "gebrieften") FRITZ!Box-Admin möchte ich sehen, der aus so einem Neustart den Verdacht ableitet, es könnte jemand unberechtigt die Daten aus seiner FRITZ!Box ausgelesen haben, wenn er des Abends sich mit dem Protokoll seiner FRITZ!Box befaßt (so er das überhaupt macht). Ohne diese Notwendigkeit des "Anwesenheitsnachweises" über den Button kann das eben sogar irgendein ein infiziertes Gerät im LAN sein - ich habe so etwas (rein für Demonstrationen und für eigene Tests) auf einem RasPi 3B zusammengestellt, den man nur in die LAN-Buchse einer FRITZ!Box stecken muß, wenn man sie startet.
 
zu den Partitionsnamen, die gehen aus einem Fullbackup/Image sehr gut hervor.

Output von gdisk fullimage.bin

Listing der Partitionen: (diskident geändert)
Code:
Disk mmcblk0: 3751936 sectors, 1.8 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): FFFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFFF
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 3751902
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          133119   64.0 MiB    FFFF  filesystem_arm_0
   2          133120          149503   8.0 MiB     FFFF  kernel_arm_0
   3          149504          280575   64.0 MiB    FFFF  filesystem_atom_0
   4          280576          296959   8.0 MiB     FFFF  kernel_atom_0
   5          296960          428031   64.0 MiB    FFFF  filesystem_arm_1
   6          428032          444415   8.0 MiB     FFFF  kernel_arm_1
   7          444416          575487   64.0 MiB    FFFF  filesystem_atom_1
   8          575488          591871   8.0 MiB     FFFF  kernel_atom_1
   9          591872         3751902   1.5 GiB     0700  userdata
 
Zuletzt bearbeitet:
Ja, diese Namen dann schon ... ich bezog mich mehr auf das "reserved or not" im Namen, das bei anderen Modellen auch vorhanden ist und damit kann man an diesem "reserved" eben in eigenen Skript-Dateien entsprechende Schlußfolgerungen "festmachen", ob das nun das aktive oder das inaktive System in dieser Partition ist.

Die GPT für den eMMC-Speicher hat ja (derzeit) auch nur die 6490, soweit ich weiß. Was mich an der Stelle immer interessiert hatte (auch wenn ich nie zum Test gekommen bin), ist die Frage, ob der Bootloader tatsächlich auf die Namen in der GPT zurückgreift (diese Namen stehen noch einmal als Strings im Loader herum) und das Vertauschen in der GPT auch dazu führen würde, daß der Bootloader die "falsche Sicht" auf die Partitionen übernimmt - daß die "/dev/mmcblk0p1" aus dem laufenden Linux-Kernel dann auf die fünfte Partition in der GPT verweist, kann man vermutlich eher ausschließen (es wäre zumindest etwas unlogisch - die mmcblk0-Subdevices bilden ja die Struktur aus der GPT ab).
 
Der Vorschlag, daß für die Aktivierung des Loaders (auch bei anderen Modellen und auch für Recovery) das Drücken eines Buttons innerhalb der ersten 5 Sekunden nach dem "Strom rein" erforderlich sein sollte, sichert zwar die Box hier nicht gegen den Zugriff des berechtigten Benutzers ab, aber zumindest gegen ein infiziertes Gerät im LAN, das zum richtigen Zeitpunkt eine solche Möglichkeit des Zugriffs hätte.

Alternativ:
Neuere Modelle besitzen ein Standardpasswort für das WebIf, das könnte man doch auch für den Bootloader verwenden (anstatt "adam2" als Standard-Passwort).
 
Neuere Modelle besitzen ein Standardpasswort für das WebIf, das könnte man doch auch für den Bootloader verwenden (anstatt "adam2" als Standard-Passwort).
Das schützt dann wieder gegen den (automatischen) "Zugriff", aber nicht den "Zugang" (in dessen Folge der Zugriff möglich wird) - wenn "Nicht-Berechtigte" (Kinder/Jugendliche/Käufer aus zweiter Hand) Buttons drücken können, können sie auch das hinten aufgedruckte Kennwort ablesen. Das wäre also wieder nur die halbe Lösung und wenn man das ohnehin schon dem Environment entnimmt, dann kann man das m.E. auch gleich so machen, daß es im TFFS mit einem eigenen überschrieben werden kann (gilt für andere Einstellungen wie z.B. "my_ipaddress" ja auch). Löscht dann jemand den gesamten TFFS-Inhalt (und damit das geänderte Kennwort), sind auch die anderen Einstellungen "verloren" und dann kann wieder das Kennwort aus der Finalisierung wirksam werden.

Über die "gar nicht versteckten" FRITZ!Boxen, die in der Mietwohnung vorne im Flur stehen, weil da der Telefonanschluß liegt, habe ich schon früher geschrieben ... ein "Anfangswert" für ein Kennwort ist per se keine schlechte Idee, eine darüber hinausgehende Verwendung eines solchen (gilt imho auch für den FTP-Server im Bootloader - der "getty"-Zugriff braucht dann schon wieder "Lötarbeiten") ist eher eine neue Sicherheitslücke als eine behobene (erst recht derzeit, wo man mit "adam2/adam2" auch dieses voreingestellte Kennwort problemlos auslesen kann und bei AVM jeder Hinweis fehlt, daß dieses Kennwort unbedingt geändert werden muß).

Gegen das automatische Auslesen per FTP würde also die Verwendung des voreingestellten Kennworts helfen, gegen den physikalischen Zugang (ohne "Aufschrauben") hilft es nicht.

Hier wäre aber ein (änderbares Box-)Kennwort die (oder zumindest eine) Lösung, meinetwegen kann das sogar mit dem "Export-Kennwort" kombiniert werden, wenn man keine zusätzliche Verwaltung einbauen will. Dann nach fünf- oder zehnmaliger fehlerhafter Anmeldung im FTP-Server des Bootloaders einfach den TFFS-Inhalt löschen und die Box neu starten (die ist damit - bis auf den Inhalt von /var/media/ftp, also des NAS-Speichers und selbst den könnte man noch löschen lassen - "leer" und kann auch wieder mit dem Recovery-Programm verwendet werden o.ä.) - der Käufer aus zweiter Hand kann nach wie vor die Box "saubermachen", aber die Daten des Vorbesitzers sind dann sicher gelöscht (immer unter der Annahme, daß das Gerät nicht geöffnet und der Flash irgendwie anders ausgelesen wird, aber das ist eine andere Qualität). Daß dabei dann natürlich auch ein entsprechender Zähler für die aufeinanderfolgenden Fehlversuche persistent gespeichert werden muß, versteht sich von selbst ... sonst kann man wieder nach "max. - 1" Fehlversuchen durch "Strom raus/Strom rein" von vorne beginnen.

Daher mein Plädoyer, daß man es - wenn man es dann angehen sollte - gleich besser machen könnte ... es wird nie eine 100%ige Lösung geben, aber gegen "marodierende Familienmitglieder" muß man die Box dann eben auch (so gut wie möglich) schützen, wenn die Restriktionen der Kindersicherung ernst genommen werden sollen.

Wenn die Kinder mehr Ahnung von der Materie haben als die Eltern (inzwischen kehrt sich der Trend wohl wieder um), dann steigt eben auch die Gefahr, daß die Kinder die Kindersicherung und damit auch die Eltern "austricksen". Ab einem gewissen Level ist da zwar ohnehin nichts mehr zu machen, aber diese Latte kann man auch problemlos etwas höher legen.

Zumal es ja nicht mal unbedingt die Kinder sein müssen - schon die FRITZ!Box in der "Filiale" irgendeiner kleinen Firma, die der Admin der Hauptniederlassung per Fernwartung verwaltet, kann für einen Mitarbeiter vor Ort zur (sportlichen) Herausforderung werden.

Nun ist eine FRITZ!Box kein dediziertes Gerät für KMU (SMB) oder gar ein "richtiges professionelles Umfeld", aber eine gewisse Resistenz gegen "lokale Angriffe" darf es dann schon auch bei einem Consumer-Gerät sein (auch ein kleiner Handwerksbetrieb ist an dieser Stelle "Consumer") - schließlich vermarkten auch KNB diese Boxen als Router für "Business-Produkte" und da stellt sich dann schon die Frage, wie weit solche Geräte "sicher" sein sollten und wer da die Verantwortung für vorhandene Lücken übernimmt (Hersteller, KNB, Kunde - besonders spannend sicherlich bei der Frage, wessen Betriebshaftpflichtversicherung nun im Schadensfall eigentlich zahlen soll).

Schon die (juristische und informationstechnische) Frage, ob der FTP-Server im Bootloader nun von AVM tatsächlich mit einer "Zugangssicherung" versehen wurde (deren Überwindung Voraussetzung für die Anwendung von §202a StGB wäre), dürfte sehr kontrovers diskutiert werden - eine Sicherung mit "adam2/adam2" ist wohl nicht einmal als "symbolisch" (eher als "historisch") anzusehen.
 
@koy:
Ich verlange auch nicht, daß das die Kunden über den Bootloader ändern, wenn es parallel als Kennwort für EVA-FTP verwendet wird ... daher der Bezug zum "Export-Kennwort"; hier halte ich die (automatische) Verwendung derselben Zeichenkette für vertretbar - es müßte nur parallel zur Einstellung für den Export auch noch "webgui_pass" im Environment gesetzt werden (direkt vom "ctlmgr" aus).

Das mit dem "ftpuser" ist auch mehr ein Abfallprodukt ... eigentlich wird für die Anmeldung an der Box ein (versteckter) Benutzer "@CompatMode" eingerichtet und der angesprochene "ftpuser" wird nur für den Zugriff auf die NAS-Funktionen freigeschaltet (der sollte auch keine anderen Rechte automatisch kriegen). Dieser "@CompatMode" hat hingegen wieder volle (ggf. nur lokale) Rechte und kann (zumindest vor der 06.80, bei der ich das noch nicht "nachgetestet" habe und gerade hier hat AVM ja einiges geändert) auch für die Anmeldung am NAS benutzt werden. Auch der hat natürlich ohne entsprechende Änderung das Kennwort aus "webgui_pass" und das gilt sogar wieder für alle TR-064-Zugriffe aus dem LAN (der Benutzername ist entweder egal oder "dslf-config"), solange der Besitzer das Kennwort und/oder den Modus nicht ändert.

Ähnliches gilt für den (hoffentlich von niemandem mehr verwendeten) Modus "keine Anmeldung aus dem LAN erforderlich" ... da wird ein (ebenfalls versteckter) Benutzer "@SkipAuthFromHomenetwork" verwendet (für den kein Kennwort abgefragt wird), wenn es um eine Anmeldung an der Box geht - einfach damit es intern einen "aktuellen Benutzer" gibt, der an verschiedenen Stellen einfach gebraucht wird. Wie bei diesem Modus inzwischen mit dem "ftpuser" verfahren wird, weiß ich auch noch nicht bzw. nicht mehr genau - es ist halt immer ein Riesenaufwand, eine Box für solche Tests von den Werkseinstellungen an zu betreiben und es braucht immer ein Gerät, was ansonsten nicht ernsthaft im Einsatz ist.
 
es ist halt immer ein Riesenaufwand, eine Box für solche Tests von den Werkseinstellungen an zu betreiben und es braucht immer ein Gerät, was ansonsten nicht ernsthaft im Einsatz ist.

peter: wenn du ne bastelbox brauchst für test's .., pm mich mal
 
Nein, danke für alle (gutgemeinten) Angebote in dieser Richtung (es gab schon ein paar davon).

Es gibt eigentlich immer eine zusätzliche (Reserve-)Box (bei allen derzeit von mir "verwalteten" Modellen) und die kann ich dann ganz gemütlich für solche Tests verwenden ... bis sie dann mit irgendeiner passend installierten Version beim nächsten Kunden als Austauschgerät benötigt wird und dann dauert es gerne mal etwas, bis dessen ersetzte Box hier wieder aufschlägt oder gar der Austausch über AVM (wenn das innerhalb der Garantie passiert) erfolgt ist und die Box dann erst wieder ihren Weg zu mir findet.

Das Problem beim Kunden geht meistens schon dann los, wenn es um das Heraussuchen der alten Rechnung aus der Buchhaltung geht, damit er dann den Garantieanspruch an AVM herantragen kann ... läuft es beim Kunden erst einmal wieder alles, ist der Druck komischerweise auch erst einmal weg und man muß immer wieder nachhaken und irgendwann mit Ersatzkauf drohen.

Es macht aber auch keinen wirklichen Sinn, sich mehrere Ersatzboxen hinzulegen (von der 7390 habe ich - aufgrund der langen Verfügbarkeit - alleine vier solcher Ersatzgeräte hier stehen) - irgendwann sind die dann auch "alt" und solange diese Suche nach Sicherheitslücken im FRITZ!OS mehr in Richtung "solange nichts Wichtigeres ansteht" läuft (und keine (buchhalterische) Grundlage in Form von Aufträgen hat - wo man bei fast jedem Hersteller (auch bei AVM) dann auch Geräte als Teststellung kriegt), ist auch die "Investition" in mehrere Boxen ggü. dem FA schwer zu vertreten.

Vieles kann man auch an einer ganz normal im Betrieb befindlichen Box testen (ich habe immer noch eine 7490 an VDSL25/5 und inzwischen wieder eine (Retail-)6490 am VF-100 im Einsatz, der Rest ist nur noch zum Testen ohne WAN-Modem) und nur solche Tests, die unbedingt eine Box in Werkseinstellungen brauchen, sind dann "behindert".

Da man aber ohnehin nicht alle Tests auf einmal machen kann (keine Ahnung, wieviele Leute bei AVM wirklich an der Firmware programmieren, aber es sind immer viele, viele Baustellen, die in jedem neuen Laborzweig aufgerissen werden und dabei ignoriere ich schon weite Teile der Firmware wie AHA, DECT, WLAN geflissentlich bei der Suche nach Schwachstellen), ist das auch kein wirklicher Nachteil und es ist alles nur eine Frage der Planung (und eben auch mal des Verzichts, wenn man etwas Spezielles nicht unmittelbar vor dem Schreiben noch einmal austesten kann - dann muß man das eben nur "dazusagen").
 
Das schützt dann wieder gegen den (automatischen) "Zugriff", aber nicht den "Zugang" (in dessen Folge der Zugriff möglich wird) - wenn "Nicht-Berechtigte" (Kinder/Jugendliche/Käufer aus zweiter Hand) Buttons drücken können, können sie auch das hinten aufgedruckte Kennwort ablesen.
Sagen (schreiben) wir es mal so, das ließe sich evtl. leichter unterbinden als das Drücken eines Knopfes (abpfriemeln des Aufklebers oder zumindest nur das unkenntlich machen/abkratzen des entsprechenden Bereiches), evtl. unter Verlust der gesetzl. Gewährleistung und/oder Garantie und/oder Reduzierung des Wiederverkaufswertes. Außerdem bestünde dann auch eine höhere Gefahr des dauerhaften Verlustes des dazugehörigen Standard-Gerätepasswort.

... und wenn man das ohnehin schon dem Environment entnimmt, dann kann man das m.E. auch gleich so machen, daß es im TFFS mit einem eigenen überschrieben werden kann (gilt für andere Einstellungen wie z.B. "my_ipaddress" ja auch). Löscht dann jemand den gesamten TFFS-Inhalt (und damit das geänderte Kennwort), sind auch die anderen Einstellungen "verloren" und dann kann wieder das Kennwort aus der Finalisierung wirksam werden.
Die Idee ist gut. Damit könnte man sich dann die unsanfte Methode mit dem abpfriemeln des Etikettes sparen. Mit einem Werksreset (Telefoncode oder WebIf, damit sollte ein individuelles Bootloader-PW ebenfalls wieder zurückgesetzt werden können denn schließlich könnte man das auch mal vergessen) kann man dann zwar auch wieder die "Kontrolle" über das Gerät übernehmen aber das sollte dann auffallen und zudem sind dann auch die in der Konfiguration verwendeten Credentials weg.

Allerdings bezweifle ich, dass das AVM so integrieren wird. Was passiert wenn der Besitzer das individuelle Bootloader-Passwort vergessen haben sollte und die Box aus irgendeinem Grund nicht mehr korrekt startet (Bootschleife, Werkseinstellungen per Telefoncode oder WebIf nicht mehr möglich)? Ein Weg (der offizielle) wäre dann das Wiederherstellungsprogramm von AVM welches dann natürlich nach dem aktuellen Bootloader-Passwort fragen würde... Aber auch der manuelle Zugriff auf den Bootloader ist dann so nicht mehr möglich, also eine Sackgasse (von z.B. JTAG mal abgesehen aber das stellt dann schon eine größere Hürde dar).

Ok, könnte wieder umgangen werden mit deinem Vorschlag "Dann nach fünf- oder zehnmaliger fehlerhafter Anmeldung im FTP-Server des Bootloaders einfach den TFFS-Inhalt löschen und die Box neu starten". Ich kann mir schon Meldungen vorstellen, wo man sich verwundert darüber äußert, dass die Box von heute auf morgen einfach so ihre komplette Konfiguration vergessen hat (weil sie in den letzten Jahren jeden, evtl. auch "zufällig" ausgelösten (z.B. ein Client der sich nur mal mit dem FTP-Server der FritzBox verbinden wollte obwohl die Box zufälligerweise gerade neustartet), Zugriffsversuch auf den Bootloader per FTP registrierte und beim 10mal dann den Reset veranlasst hat, also vielleicht doch nicht persistent?).
Aber ich denke, es wäre auf jeden Fall schon einmal eine gute Idee, dass das Standardpasswort adam2 verschwindet, vor physischen Zugriffen wird man aber schwerlich einen >99% Schutz finden können...


BTW:
Wenn die Kinder mehr Ahnung von der Materie haben als die Eltern (inzwischen kehrt sich der Trend wohl wieder um), dann steigt eben auch die Gefahr, daß die Kinder die Kindersicherung und damit auch die Eltern "austricksen".
Ich habe ebenfalls den Eindruck, dass folgend beschriebene Zeit langsam vorbei zu gehen scheint:
http://www.ritsch-renn.com/bilder/familie/Kindersicherung.jpg
 
@qwertz.asdfgh:
Dieser Schutz des FTP-Servers im Bootloader über ein individuelles Kennwort macht zugegebenermaßen nur dann Sinn, wenn parallel dazu das Drücken des Buttons erforderlich ist. In diesem Falle kann es auch nicht zum versehentlichen Fehlversuch beim FTP-Login kommen und auch der physikalische Zugang (der Button sichert ja nur diesen) alleine ist eben noch kein Garant für einen berechtigten Zugriff. Insofern wird aus der Kombination der beiden (der Kenntnis des "secrets" in Form des FTP-Kennworts und der "Präsenz vor Ort" durch den Button) wieder eine 2FA, die sowohl Zugang als auch Zugriff absichern kann.

Es ist ja auch immer eine zu prüfende Frage, ob man mit einer neuen Idee und der daraus resultierenden neuen Funktion in der Box auch ein neues Loch aufreißt.

Derzeit ist es nun einmal so, daß eine Malware (z.B. von einem AVM-Konkurrenten in Umlauf gebracht) ganz gezielt auf FRITZ!Boxen losgehen könnte und diese - je nach Intention des Malware-Schreibers - in ein Ärgernis für den Support (durch einfaches Löschen der Konfiguration in den ersten 10 Minuten nach einem Neustart der Box, den man ggf. auch "erzwingen" kann) oder auch in einen Briefbeschwerer (durch gezieltes Überschreiben des Bootloaders oder auch nur durch geeignete Änderungen am Bootloader-Environment, dann wäre es reversibel, wenn auch nicht unbedingt mit einem der derzeit üblichen Recovery-Programme, wenn man es "richtig" macht) verwandeln könnte.

Was so ein Angreifer sich dort tatsächlich als Ziel setzen würde, weiß man ja auch nicht ... aber es ist auch bekannt, daß in "Kriegszeiten" einige Taktiken sogar speziell darauf abzielen, den Gegner "nur" zu verwunden, um so seine Ressourcen für die Pflege dieser Verwundeten zu binden (sprich: den Support gezielt zu überlasten). Ein toter Gegner (also die "gebrickte" Box) ist zwar auch "schlechte Presse", aber er bindet eben definitiv auch weniger Support-Ressourcen, weil es eine Selbsthilfe durch den Besitzer (und die dabei denkbaren Fehlerquellen, die das Support-Aufkommen noch einmal erhöhen) gar nicht erst gibt.

Da, wo so eine Vorstellung vor einiger Zeit noch mit der Frage "Warum sollte das jemand tun?" gekontert werden konnte, ist es heute im Zeitalter von Ransomware eigentlich keine echte Frage mehr. Gelingt es einem Angreifer, die FRITZ!Box mit einer eigenen Firmware zu versehen (die Installationsmöglichkeit einer beliebigen unsignierten Firmware über den Bootloader ist ja kein Geheimnis - inzwischen nicht einmal mehr bei der 6490), kann er sogar noch seine Erpresserbotschaft als E-Mail von der FRITZ!Box absetzen lassen und z.B. damit drohen, daß innerhalb von 48 Stunden der Internet-Router unbrauchbar gemacht wird, wenn es keine Zahlung gibt.

Jetzt kann ja jeder mal überlegen, wieviele AVM-Kunden in der Lage sein werden, ihre FRITZ!Box (selbständig - es gibt keine Internet-Verbindung und kein Festnetz-Telefon (bzw. All-IP) mehr, um den Support zu kontaktieren - das geht alles nur noch über Mobilfunk) bei einem wirklich reversiblen Vorgehen eines Angreifers wieder in Betrieb zu nehmen. Das heißt eben auch, jeden Kontakt eines potentiell infizierten Gerätes mit dem GUI innerhalb der ersten 10 Minuten zu verhindern, wenn man eine "frische" Firmware per Recovery eingespielt hat und die Einstellungen aus einem Backup wiederhergestellt wurden.

Ich habe für die 06.80 im Moment keine Ahnung, ob das Zurücksetzen auf die Werkseinstellungen in diesen ersten 10 Minuten auch über die neue 2FA abgesichert ist - das Versenden der Push-Mail mit dem Session-Link für "Kennwort vergessen?" ist es ganz offensichtlich nicht (gerade getestet zur Sicherheit). Aber das ist eben auch nur ein denkbarer (reversibler, aber auch definitiv viel zu leichter, wenn nicht über 2FA gesicherter) Weg, die Einstellungen mit irgendeiner Malware zu löschen - das kann dann sogar wieder auf jedem beliebigen WLAN-Client erfolgen, der in der fraglichen Zeitspanne mit der Box Kontakt aufnehmen kann.

Der Weg über den Bootloader erfordert zwar für die Malware einen Zugriff zum genau richtigen Zeitpunkt (eben innerhalb der ersten 5 Sekunden bei einem Neustart der Box), aber da ist die Box tatsächlich schutzlos und hilfebedürftig wie ein Neugeborenes. Die Modelle, wo ein Update des Bootloader-Codes über das Recovery-Programm möglich ist, können auf diesem Weg so weit "zerstört" werden, daß nur ein Zugriff über die (E)JTAG-Schnittstelle sie wieder zum Leben erwecken kann - für eine Ransomware sicherlich kein wirklich "guter" Ansatz.

Aber schon das Ändern des WLAN-Kennworts im Bootloader-Environment (meinetwegen so etwas Simples wie ein ROT13) macht die Box für den durchschnittlichen Kunden unbrauchbar - da mit so einer Änderung auch die Entschlüsselung der boxeigenen Daten nicht mehr möglich ist, kommt der berechtigte Benutzer (a) nicht mehr per Login in die Box und (b) auch nicht mehr per WLAN an die Box heran (weil die ihr eigenes WLAN-Kennwort - egal ob das ab Werk oder ein vom Nutzer vergebenes - nicht mehr entschlüsseln kann).

Das sind alles "Horrorszenarien" für einen Hersteller und der "Skandal" und die Überlastung des Supports wären vorprogrammiert ... insofern ist es in meinen Augen schon das vitale Interesse des Herstellers selbst, seine Produkte (und damit sich selbst) gegen solche Probleme abzusichern.

Das ginge (bei der Installation einer mit Malware infizierten Firmware) zwar auch über die Verriegelung der Box in der Art, daß auch der Bootloader nur noch signierte Firmware akzeptiert (was den aber komplett umkrempeln dürfte und sämtliche bisher "auf dem Markt befindlichen" Recovery-Versionen auf einen Schlag unbrauchbar machen würde), aber gegen die (absichtliche) Verwürfelung von Einstellungen für den Bootloader (das komplette Löschen der TFFS-Partitionen verkraftet der ja sogar, wie wir wissen, aber eben nicht die (bzw. jede) absichtliche Veränderung auf falsche Einstellungen) hilft auch so eine Signatur nicht, solange nicht bereits die generelle Verbindung zwischen dem Recovery-Programm und der Box kryptographisch gesichert ist (und auch diese könnte man (vermutlich) noch viel zu schnell "knacken").

Da ist dann eine Maßnahme, die den Bootloader (bzw. genauer den FTP-Server dort) nur unter bestimmten Umständen zugänglich macht (das kann der Button sein oder auch ein LAN-Kabel als "Kurzschluß" zweier LAN-Ports, wie das z.B. einige HP-Switches als Signal zum Zurücksetzen interpretieren), die geringere (und trotzdem in der Mehrzahl der Fälle ebenso wirksame) Änderung ggü. dem bisherigen Zustand ... nur das Aktualisieren der Boxen mit so einem neuen Bootloader ist auch wieder ein "echtes Problem", denn das erfordert entweder eine Erweiterung des Update-Prozesses auf den Bootloader oder es würden nur solche (schon "in the wild" befindliche) Boxen einen neuen Bootloader erhalten, die der Besitzer mit einem Recovery-Programm behandelt (wie es bisher ist) - so es ein solches überhaupt gibt, was bei der Retail-6490 ja (noch) nicht der Fall ist. Nachdem nun der Weg des (Über-)Schreibens über den FTP-Server auch für die 6490 öffentlich ist, kann AVM aber auch problemlos ein solches Recovery-Programm "auf den Markt werfen".

Bei einigen Modellen ist es dann auch noch so, daß dieser Zugriff auf den Bootloader auch über den LAN4-Port möglich ist - da kann aber durchaus auch ein "feindliches Gerät" existieren, wenn man diesen Port im "Regelbetrieb" für ein getrenntes Gastnetz verwendet. Das geht dann teilweise so weit, daß beim Start der Box über den integrierten Switch die LAN-Ports auf Hardware-Ebene verbunden sind und ein solcher Angreifer aus dem Gastnetz (per LAN, nicht per WLAN) die Box einfach in diesem Zustand anhalten kann und damit dann die Trennung zwischen LAN und Gastnetz überwinden könnte. Das sollte mit jedem Modell funktionieren, wo der Zugriff auf den Bootloader auch über ein Kabel an den LAN-Ports 2-4 (und nicht nur LAN1, einige Boxen - wie die 7412 - haben aber nur diesen einen, dafür aber auch kein Gastnetz per LAN) möglich ist und wo der Switch vom Bootloader entsprechend initialisiert wird. Das dürfte die Mehrzahl der VR9-Modelle sein - auch wenn ich nur die 7490 getestet habe. Auch dieser (potentiellen) Schwachstelle würde ein nur unter bestimmten Umständen erreichbarer FTP-Server im Bootloader einen Riegel vorschieben.

Das grundlegende Design der FRITZ!Boxen stammt eben noch aus der "guten alten Zeit", wo das LAN automatisch der Hort des Guten war - auch wenn man das z.B. mit dem Gastnetz an LAN4 ja selbst etwas aufgeweicht hat bei AVM. Selbst wenn ich inzwischen wie eine kaputte Schallplatte klinge (PVC oder auch "Vinyl" ist ja wieder im Kommen) ... das ändert sich im Zeitalter des IoT schneller, als die Hersteller solcher Router darauf reagieren können und das Gastnetz an LAN4 ist in meinen Augen so ein Fall, wo die Konsequenzen nicht ganz bis zum Ende durchdacht wurden oder man einfach "pfeif' drauf" und "die Augen schließen" zum Design-Prinzip erhoben hat.

Klar, so ein LAN-Port mit einem Gastnetz ist ein nettes "Alleinstellungsmerkmal" - schließt darüber der ahnungslose Gastwirt irgendwo einen oder mehrere WLAN-AP an und stellt seinen Gästen damit ein WLAN zur Verfügung, kann aber sogar so ein Gast (auch später, wenn er die Wirtschaft bereits verlassen hat und sich nur noch davor bei einer Zigarette etwas langweilt) eine FRITZ!Box übernehmen, wenn er nur irgendwie einen Neustart bewirken kann. Eine entsprechende "Planung" hatten wir doch erst vor kurzem hier in einem anderen Thread ...
 
Bin weiter am testen.

Ich hatte einmal geschafft das die Box mit einem ext4 für den ARM gestartet ist. Danach aber nicht mehr. Hatte mir aber einen Support Report rausgeholt da sieht man das es wirklich ext4 war.
Code:
Attached devices:
/dev/mmcblk0p1: UUID="88d9e5f7-341e-428a-b1eb-464f17b83e94" TYPE="ext4" 
/dev/mmcblk0p3: TYPE="squashfs" 
/dev/mmcblk0p5: TYPE="squashfs" 
/dev/mmcblk0p7: TYPE="squashfs" 
/dev/mmcblk0p9: UUID="7f43fe06-8ab6-4a4d-a7d8-71926725a937" TYPE="ext4" 
/dev/zram0: UUID="7e13e3b7-6fed-4164-9f05-0472fcc55cd9" TYPE="swap"

Aber egal.

Jetzt versuche ich ein squashfs zu bauen mit mksquashfs-avm die Box will davon aber nicht booten, nach einer Weile wenn die LED geleuchtet hat schlägt scheinbar der Watchdog zu. Evtl. mach ich beim squashen noch einen Fehler.
Mit einem original filesystem.Image läuft sie jedoch sofort wieder.
In dem eigenen squashfs schaut der Header eigentlich gut aus.
 
Zuletzt bearbeitet:
Dann bau Dir doch in das eigene System ein paar eigene "Lichtsignale" ein ... das "led-ctrl" funktioniert ja ab dem Zeitpunkt, wo der led-Treiber geladen wurde und das ist ziemlich früh der Fall (in S02). Wenn ich raten sollte, warum die Box dann neu startet ... es müssen innerhalb einer bestimmten Zeit beide Kerne an der Stelle angekommen sein, wo sie sich per LAN-Verbindung synchronisieren. Solche Sychronisationspunkte gibt es (mit unterschiedlichen Mechanismen) auch an den verschiedensten Stellen in der Firmware und ohne einen "richtigen" eigenen Kernel muß man immer auch dafür sorgen, daß der andere Prozessor halbwegs parallel läuft, sonst bleibt es irgendwo hängen und dann kommt tatsächlich der Watchdog und startet irgendwann neu.


-Wobei der Kernel-Code ja auch noch einige andere interessante Stellen enthält in der Datei "arch/arm/mach-avalanche/puma6/puma6_mtd.c", z.B. diese hier:
Code:
    p = prom_getenv("linux_fs_start");
    if (p) {
        if (!pointer_fail_strcmp(p, "0"))
            linux_fs_start = 0;
        else if (!pointer_fail_strcmp(p, "1"))
            linux_fs_start = 1;
        else if (!pointer_fail_strcmp(p, "nfs"))
            linux_fs_start = 2;
    }
Es gibt also neben "0" und "1" auch noch andere gültige Werte für "linux_fs_start" - und wer dann noch etwas weiter liest, kommt irgendwann an diese Stelle:
Code:
    ptest = prom_getenv("ptest"); /*--- [COLOR="#FF0000"]wenn ptest gesetzt ist das Urladermtd schreibbar[/COLOR] ---*/
[...]
        switch(mtd_names_spi[i].idx){
        case 2:
            if(ptest)
                puma6_partitions_cs0[i].mask_flags = MTD_WRITEABLE;        /*--- remove MTD_WRITEABLE from partition flags ---*/
            break;
        case 3:
            tffs_mtd_offset[0] = puma6_partitions_cs0[i].offset;
            break;
        case 4:
            tffs_mtd_offset[1] = puma6_partitions_cs0[i].offset;
            break;
        default:
            break;
        }
Da wird also die Bootloader-Partition bei der Initialisierung des Kernels als "read-only" markiert (was das Überschreiben aus dem laufenden System heraus verhindern sollte), wenn - ja, wenn - da beim Start die Environment-Variable "ptest" existiert. Dann bliebe der Schreibzugriff auf die Bootloader-Partition im laufenden System gesperrt (die Masken-Bits legen ja fest, welche Operationen NICHT erlaubt sind: http://lxr.free-electrons.com/source/include/linux/mtd/partitions.h#L30).

Hier paßt aber der Kommentar "wenn ptest gesetzt ist das Urladermtd schreibbar" nicht zur tatsächlichen Umsetzung (wenn ich nichts übersehen habe, was auch denkbar ist) - der Schreibschutz durch das Flag "MTD_WRITABLE" in der Maske wird nur dann eingerichtet, wenn es eine Variable "ptest" gibt (über "prom_getenv()" in "arch/arm/kernel/setup.c" ausgelesen). Welchen Wert die dann hat, ist egal ... aber die pure Existenz (und damit ein Pointer != NULL als Ergebnis des "prom_getenv()", auch wenn der ggf. auf einen leeren Wert zeigt) würde den Schreibschutz setzen.

Allerdings auch nur für die Partition, die im Bootloader als "mtd2" geführt wird - die anderen (SPI-)Partitionen mit Bootloader-Bezug (praktisch alles außer den beiden TFFS-Partitionen und "config-space", also MTD3-5) hätten einen Schreibschutz vermutlich ebenso "verdient", wenn man das als (funktionierenden) "Sabotage"-Schutz gerne hätte ... ansonsten könnte im schlechtesten Falle schon ein "dd if=/dev/zero of=/dev/mtdblock0" den Bootloader killen und das ist schnell über irgendeine Lücke auch aufgerufen oder auch ein "echo mtd 0 erase all >/proc/mtd" ist schnell mal abgesetzt - zumal die notwendigen Rechte fast überall vorhanden sind.

Allerdings habe ich gar nicht erst ausprobiert, ob da nun ein Schreibschutz (vielleicht auf anderem Weg?) eingerichtet ist oder nicht ... dafür war mir das dann doch wieder nicht interessant genug. Aber das ist zumindest (den Kommentaren nach, mit einem Kernel-Debugger krauche ich dem jetzt nicht hinterher) das genaue Gegenteil von dem, was der Kommentar oben andeuten will ... abgesehen davon habe ich noch keine 6490 gesehen, die "ab Werk" die Variable "ptest" (mit oder ohne Wert) im Urlader-Environment enthalten hätte. Es ist also alles etwas mysteriös - und das schon an so simplen Stellen. Eine ähnliche Konstruktion gibt es auch bei der 7490 (zumindest seit dem 3er-Kernel) nicht.

Als Dateisystem in einer eMMC-Partition mag dann die 6490 auch andere Formate (wie das erwähnte "ext4") erkennen (das ist ja nur ein simples Kopieren der Daten für die Partition in "puma6_partition_add()" in der Datei "puma6_mtd.c") ... die NAS-Partition ist ja auch als "ext4" formatiert. Aber für das Laden in den Speicher (als {kernel,filesystem}_ram) kommt wieder nur ein SquashFS-Format in Frage, wie man in der Funktion "puma6_squashfs_parser_function()" ebenfalls in "puma6_mtd.c" nachlesen kann. Ich würde trotzdem darauf verzichten ... zumindest solange nicht alle nachfolgenden Stellen (z.B. alle Zugriffe auf /proc/mounts oder Auswertungen der Ausgabe von "mount") auch überprüft wurden, ob sie damit zurechtkommen. Wenn irgendwo nur der Test auf "ext4" für die Erkennung der NAS-Partition existiert und am Ende die Dateisystem-Partition für den ARM-Core fälschlicherweise dafür gehalten wird, kann das ungeahnte Auswirkungen haben. Als "Angriffsweg" vielleicht nicht uninteressant ... aber beim Versuch, die Box auf alternativen Wegen zu starten, würde ich erst einmal nur auf bekanntem Terrain experimentieren.

Diese Kernel-Quellen sind auch ansonsten gar nicht so uninteressant (und lohnen immer einen Blick) ... vor allem findet man immer wieder mal ein kleineres Problem wie das oben gezeigte und kann dann darüber eine Weile grübeln und sich überlegen, ob sich ein Test (und eine Meldung an den Hersteller) hier wirklich lohnt. Auch in "tffs_intern.c" gab es vor 06.80 noch einen potentiellen Buffer-Overflow, den AVM nun nach meinem Hinweis gefixt hat - das hätte man mit etwas Initiative auch zum nächsten Einbruch über eine präparierte Name-Table des TFFS ausnutzen können, mit der man (Kernel-)Daten außerhalb des dafür vorgesehenen Puffers überschreibt.
 
Danke erst mal für die Hinweise :)

Jedenfalls klappt es jetzt, das mksquashfs4 aus dem freetz hat funktioniert.

Das andere ist das Dualbootsystem verarscht mich. Selbst die mtd devices im urlader sind nicht konstant, die schalten irgendwie um nach einem erfolgreichem boot oder nach einem fehlgeschlagenem, dadurch ändert sich aber die linux_fs_start variabe nicht.
Habe das Verhalten jetzt einige male getestet.

Die Startvariable auf 2 ist auch eine gute Idee, ich hatte sowas schon vermutet da ich im mtd4 (urlader) das gesehen hatte:
root=/dev/nfs rw nfsroot=192.168.178.252:/mnt/rootfs_ar9

Bin mir aber jetzt nicht sicher ob die beiden Sachen zusammen gehören, ein kurzer Test brachte noch keine Hinweise, die Box war ruhig beim Start.
 
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.