Speedport 4 Typ A (Arcadyan) Firmware verschlüsselt bzw. CFE

wattyka1

Neuer User
Mitglied seit
28 Jan 2024
Beiträge
3
Punkte für Reaktionen
1
Punkte
3
Hallo!

Ich hab kürzlich mit einer Box defekter Router einen Speedport 4 Typ A erhalten. Der war zunächst tot, d.h. alle Abwärtswandler auf dem Board liefen nicht. Nach kurzem Suchen fand ich den Kurzschluss an der Spannungsversorgung des NAND flashes. Das war getränkt in Flussmittel, und eine winzige Lötbrücke zwischen den Vcc/GND Pads des NAND hatte der vorherige Bastler wohl übersehen. Nach dem Entfernen lief der Router dann an und zeigte ein Telekom Logo auf dem Display mit blinkender grüner LED. Dabei blieb es dann aber auch, d.h. kein DHCP, kein WiFi.

Ich hab dann einen RS232/USB Adapter angeschlossen. Die Ausgaben vom Boot hab ich mal angehangen. Zunächst versucht CFE scheinbar, vom 1. Image an 0x00100000 zu booten. Nach der letzten Ausgabe "got hash for rootfs" scheint das Gerät dann einen Reset zu machen und versucht erneut einen Boot vom 2. Image an 0x05100000. Das bleibt dann nach "got hash for rootfs" stehen. Leider gibt es keine Ausgaben vom Kernel selbst, d.h. es gibt keinen Hinweis darauf, was ihn an den beiden offensichtlich vorhandenen 010139.2.1.002.0 Images genau stört.

Im CFE kann ich durchaus Kommandos eingeben. Das scheint aber eine recht neue CFE Version zu sein (CFE version 1.0.38-164.255.3r for BCM963158 (64bit,SP,LE)). Ich finde im Netz keine passenden hinweise zur Nutzung der diversen Kommandos. Folgendes scheint es zu geben: "Available commands: otpcfg, erase_misc_parti, x, find, comp, bb, fb, rn, dn, phy, meminfo, kernp, sm, db, dh, dw, ddw, wc, w, e, ws, ba, ldt, go, loadb, r, p, c, i, avs, ddr, a, b, reset, pmdio, spi, pmclog, pmc, closeavs, cpufreq, force, help"

Ich kann ausserdem zum (CFE?) Web Interface auf 192.168.2.1 verbinden. Ich hatte natürlich in meiner Naivität die Hoffnung, ich könne dort einfach ein Firmware Update ausführen und so die ggfs. defekten Images überschreiben. Allerdings akzeptiert er die offiziellen Firmware Files der Telekom nicht ("invalid image format"). Wenn ich mir diese Dateien anschaue, so sehen die für mich bis auf die ersten paar Bytes auch komplett verschlüsselt aus (nicht komprimiert). Ich vermute also, dass Routinen in der installierten Firmware die empfangene Datei zunächst entschlüsseln bevor sie dann in die entsprechenden Partitionen des Flash geschrieben werden.

Hat hier jemand vielleicht Erfahrung mit diesem Router oder dem Format der Firmware Dateien? Wäre wirklich eine Schande das Gerät zu entsorgen.

Danke!
 

Anhänge

  • boot.txt
    50.4 KB · Aufrufe: 11
  • webinterface.png
    webinterface.png
    34.1 KB · Aufrufe: 14
Hallo,

ich hatte das gleiche Problem, habe aber über einen Umweg den Router trotzdem zum Laufen gebracht.
Leider konnte ich ebenso keine Original-Firmware direkt aufspielen, selbst über TFTP hat das bei mir nicht geklappt.
Scheinbar ist das von der Telekom bereitgestellte Image nicht das Gleiche was per CFE hochgeladen werden muss.

Für mich hat jedenfalls folgendes dann funktioniert:

Ich habe über das Serial-Terminal die Bootkonfiguration (mittels CFE-Kommando "c") geändert.
Ich habe den Parameter Boot Image von latest auf previous geändert:

vorher: Boot image (0=latest, 1=previous) : 0
nachher: Boot image (0=latest, 1=previous) : 1

Nach einem Reset war der Speedport in der Lage korrekt zu booten, über die Telekom Speedport-Benutzeroberfläche habe ich dann die aktuellste Firmware manuell hochgeladen und danach über das Serial-Terminal das Boot Image wieder auf 0 (latest) zurückgesetzt.
Damit hat der Router dann auch das von mir hochgeladene Image gestartet.

Vielleicht hilft dir die Information um deinen Router wieder in Gang zu bringen.

Gruß.
 
Schön, dass es bei dir geklappt hat. Ich hatte auch einige Fortschritte gemacht:

  1. Ich hab mir ein Windows Tool geschrieben, um über die serielle Verbindung automatisch NAND dump Kommandos abzusetzen und konnte damit die ersten ~250MB vom NAND dumpen. Das hat mal eben 20h oder so gedauert ;-)
  2. Ich hab eine der root Partitionen in einem der beiden UBI Images aus dem Dump entpackt und konnte im Dump relativ schnell das Arcadian Tool zum Decrypten der Imagedatei vor der eigentlichen Installation finden.
  3. Ghidra hatte leichtes Spiel mit dem Tool. Die offiziellen Telekom Imagedateien sind RSA verschlüsselt mit einem Private key von Arcadian. Der zum Entpacken nötige Public Key liegt im /etc. Ich hab mir wiederrum ein Windows Tooll gebastelt, um die Telekom Imagedateien decrypten zu können.
  4. In den Imagedateien befindet sich ein reines UBI Image plus 20 Bytes Footer mit CRC32-JAMCRC über das UBI Image, welches über die CFE Weboberfläche (und vermutlich auch TFTP) installiert werden kann. Ausserdem ist in den Imagedateien noch ein Installer Bash Skript drin.

In meinem Fall hab ich sowohl das "latest" als auch das "previous" überschrieben. Allerdings bootlooped das Gerät weiter. Einziger Unterschied ist, dass er bei einem Image auf dem Display jetzt irgendwann sowas wie "Hallo, ich bin ihr neuer Speedport Smart" anzeigt. Interessanterweise stammen die Texte aus einem JSON File im Rootfs. Ich muss also annehmen, dass der Kernel doch bereits gebootet ist und das Rootfs gemounted hat. Ich bekomme dennoch keine Kernelausgaben in der Konsole, was die Fehleranalyse ziemlich unmöglich macht.

Ausserdem haben beide Image Partitionen bei mir NAND bad blocks. Bei der Installation traced CFE auch Schreibversuche in diese Blocks. Dort sollte er aber eigentlich nicht rein schreiben sondern diese Blocks skippen (UBI kann das ab). Womöglich kann CFE, anders als Linux, nicht mit defekten NAND Blöcken in den Image Partitionen umgehen.

Falls Interesse besteht, stell ich das Tool zum Entpacken samt Sourcen zur Verfügung.

Viele Grüße

P.S.: Du hast nicht zufällig einen seriellen Trace von einem erfolgreichen Boot? Mich würde wirklich interessieren, was nach dem "got hash for rootfs" noch kommt. Ich hatte die Kernelausgaben erwartet, bekomme aber nichts weiter.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Arki90
Wow, du hast dir ja schon etwas mehr Aufwand gemacht als ich :D

Zu deiner Frage am Schluss:
Bei mir kommt nach "got hash for rootfs" tatsächlich auch nichts mehr über die serielle Ausgabe rein.
Ich vermute dass CFE seinen Part an der Stelle abgeschlossen hat und der gestartete Linux-Kernel einfach keine Ausgabe über den UART macht
bzw. er (absichtlich?) nicht dafür konfiguriert ist.
Hast du spaßenshalber mal probiert ob du an der Stelle vielleicht über Ethernet zum Router eine SSH Verbindung aufbauen kannst?

Kannst du mir vielleicht freundlicherweise das entpackte Original-Image oder alternativ dein Tool zum Entpacken zur Verfügung stellen?
Einen NAND-Dump vom ersten rootfs habe ich schon per bcm-cfedump-Tool gemacht...allerdings kann Binwalk und auch Ubidump nicht wirklich was damit anfangen.

Gruß.
 
Zuletzt bearbeitet:
Hier ist ein .zip mit den beiden aktuellen Firmwareupdates und dem Tool zum Entschlüsseln.


Das Tool wird so aufgerufen:

arfwextract public-4096.pem <Dateiname>

Es spuckt dann eine "firmware.bin" und eine Datei mit dem installer shell script aus. Es ist möglich, dass sich damit auch andere Arcadian Firmware Dateien entpacken lassen. Kommt vermutlich darauf an, ob für diese Geräte das selbe private/public Key Paar verwendet wurde.

Die Sourcen sind lediglich der zum Laufen gehackte ghidra output. Sieht also nicht schön aus ;-)

Ich kann btw. mal nachschauen, wie ich das Rootfs aus dem UBI image extrahiert und entpackt hatte. Hab ich mittlerweile wieder vergessen. Aber irgendwo hatte ich mir die Kommandos aufgeschrieben.
 
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.