[ds-0.2.9_26-13] dsmod für Boxen mit 2.6er Kernel

Status
Für weitere Antworten geschlossen.
Hm. Versteh ich nicht so ganz. Kannst du mal in die Datei make/libs/lzo.mk schauen.
Sollte so aussehen:
Code:
[B]...[/B]
else
lzo: $(TARGET_TOOLCHAIN_STAGING_DIR)/usr/lib/liblzo2.so
lzo-precompiled: lzo
        $(TARGET_STRIP) $(TARGET_TOOLCHAIN_STAGING_DIR)/usr/lib/liblzo*.so*
        cp -a $(TARGET_TOOLCHAIN_STAGING_DIR)/usr/lib/liblzo*.so* root/usr/lib/
endif
...
Steht da irgendwo ein uclibc bei dir?

MfG Oliver
 
olistudent schrieb:
@phoenix.tom
Meinst du das hier?
Code:
/etc/init.d $ cat rc.conf |grep firmware
 OEM_tmp=`cat $CONFIG_ENVIRONMENT_PATH/firmware_version`
 CONFIG_FIRMWARE_URL="http://www.avm.de/fritzbox-firmware-update.php?hardware=${HWRevision}&oem=${OEM}&language=${Language}&country="
/etc/init.d $
MfG Oliver
Ja, das könnte es sein. Mal schauen, ob sich damit was sinnvolles anstellen lässt.
z.B. eine via webinterface erweiterbare auswahlliste?
So kann man mehrere FBs (z.B. die meines Vaters) einfacher auf dem selben Stand halten.

EDIT: Es gestaltet sich etwas schwierig, da ich vom Server nur zig moved permanently, bis hin zur Standard-Downloadseite bekomme. Kann mir mal jemand eine ältere HWRevision posten?
Mich wundert zwar, daß die firmware-version nicht mitgepostet wird, aber evtl. wird das ja noch später angehängt. Meine HWRevision lautet jedenfalls: 94.1.0.0
Die entsprechenden Infos stehen in /var/env

Hat es schon jemand geschaft die Signatur-Prüfung währends des Updates zu überlisten? Also nicht nur die Meldung zu unterdrücken?
EDIT2: Es sollte doch reichen, update_not_signed.html zu patchen, oder? evtl. mit kleinem counter.
Selbiges wäre auch für downgrade.html denkbar.

EDIT3: Na Prima! firmwarecfg ist ein binäres ELF-cgi-Biest. Hmpf, das macht die Sache nicht leichter...
 
Zuletzt bearbeitet:
Hallo Oliver,

beim "make" (ds-0.2.9_26-13.tar und ...-13-1.patch) unter FriBoLi 0.4 kommen zahllose Warnungen:
rpc_server/srv_pipe.c: In function 'api_pipe_auth_process':
rpc_server/srv_pipe.c: xxx: warning: passing argument 3 of 'dbghdr' discards qualifiers from pointer target type
Darf man diese Warnungen ignorieren, oder besteht hier evtl. ein größeres Problem?

Was kann ich noch tun, um die Ursache einzugrenzen bzw. mehr Infos nachzuliefern?

Vielen Dank für Deine Hilfe!

EDIT:
Die FW-Erstellung (also inkl. "make") ist trotz o.g. Warnungen durchgelaufen.

Noch eine Frage zu tr069.cfg:
Muss man in allen vier Dateien "enabled = no" setzen (meine 7170 ist "de-branded", hat also nur AVM)?
./build/original/filesystem/etc/default.Fritz_Box_7170_26/1un1/tr069.cfg
./build/original/filesystem/etc/default.Fritz_Box_7170_26/avm/tr069.cfg
./build/original/filesystem/etc/default.Fritz_Box_7170_26/freenet/tr069.cfg
./build/modified/filesystem/etc/default.Fritz_Box_7170_26/avm/tr069.cfg
 
Zuletzt bearbeitet:
phoenix.tom schrieb:
Hat es schon jemand geschaft die Signatur-Prüfung währends des Updates zu überlisten? Also nicht nur die Meldung zu unterdrücken?
EDIT2: Es sollte doch reichen, update_not_signed.html zu patchen, oder? evtl. mit kleinem counter.
Selbiges wäre auch für downgrade.html denkbar.
EDIT3: Na Prima! firmwarecfg ist ein binäres ELF-cgi-Biest. Hmpf, das macht die Sache nicht leichter...

Tom, ich habe mir das aus Neugier auch mal angeschaut. Zu Deinem Edit 2: Die Seite zu patchen, würde die Meldung ja auch nur unterdrücken. Das wolltest Du doch gerade nicht.

Was macht das Update eigentlich bei der Prüfung? Nach meinem bisherigen Verständnis Folgendes:
  • Erst mal wird das FW-Image (Tar-Format) entpackt, so daß alles zu installierende unter /var liegt.
  • Ein im Image enthaltenes Skript (/var/install) prüft diverse Plausibilitäten, z.B. die Art und Weise der bisherigen "Partitionierung" im Flash-Speicher, CRC-Prüfsummen der Images (bei meiner Box in neueren Firmwares nur noch ein Filesystem-Image, das frühere Kernel-Image hat die Länge null und ist im Filesystem-Image enthalten - Stichwort squashfs[-lzma]), Versionsnummern (könnte man an der Stelle leicht aushebeln, ohne vor einem Downgrade erst ein vorbereitendes "Downgrade-Image" einspielen zu müssen).
  • Gegen Ende schreibt das Install-Skript selbst ein Post-Install-Skript heraus, welches nach dem Update automatisch aufgerufen wird.
  • Dann wird ein Kernel-Modul (flash-update.{o,ko}) geladen, welches dann den eigentlichen Update-Vorgang einleitet und wohl auch irgendwie, irgendwo die Signaturprüfung anwirft.
  • A propos Signatur: Im Binary /lib/libfwsign.so wird offenbar die Signaturprüfung durchgeführt. Dazu braucht man bekanntlich
    • einen Public Key - die Fritz!Box hat sogar zwei, nämlich /etc/avm_firmware_public_key{1,2}. Welcher nun konkret wofür benutzt wird, weiß ich nicht, da bräuchte ich einen Disassembler - bißchen viel Aufwand für reine Neugier.
    • eine Signatur - die liegt im FW-Image, nach dem Entpacken unter /var/signature.
    • einen Signatur-Algorithmus - in unserem Fall wird, wie mir scheint, RSA-1024 verwendet. AVM hat also einen (zwei) Private Key(s), mit dem (denen) ein (zwei) bestimmte(r) Datenstrom (-ströme) verschlüsselt wird (werden). Genauer gesagt, werden natürlich nichrt die Datenströme verschlüsselt, sondern deren Hash-Werte. Hier kommt MD5 zum Einsatz. AVM bedient sich dazu munter einiger OpenSSL-Bibliotheken - statisch gelinkt, glaube ich.
    • Die Gretchenfrage ist, was da genau signiert wurde. Das weiß ich momentan nicht. Ich vermutete zunächst mal, es handele sich um die Datei filesystem.image, aber das stimmt nicht. Die Verifikation mit einem kleinen von mir entwickelten Java-Progrämmchen schlug fehl. Nächste Vermutung: Es ist irgendwas innerhalb von filesystem.image, an das man mit unsquashfs heran kommt. Es gibt noch weitere Möglichkeiten, aber die Spielerei nach trial & error war mir zu doof.
  • Fakt ist: Die Signaturprüfung schlägt natürlich fehl, wenn man im FW-Image einfach die alte Signatur drin läßt (wie im DS-Mod üblich) und das filesystem.image verändert. Aber das ist ja vollkommen unschädlich, denn man darf ja trotzdem weiter flashen, es handelt sich nur um einen kleinen Schönheitsfehler. Mich stört er nicht, ich bin nur ein neugieriger Mensch.

Zu Deiner ursprünglichen Frage zurück: Wie kann man die Prüfung aushebeln? Unter der Voraussetzung, daß man wüßte, was innerhalb von filesystem.image Bestandteil der signierten MD5-Checksumme ist, könnte man einfach eigene Schlüsselpaare erzeugen, diese unter /etc/avm_firmware_public_key{1,2} im Mod ablegen und anschließend flashen. Zukünftig würde man jeden Mod mit dem entsprechenden selbstgemachten Private Key signieren und hätte zukünftig zueinander passende Paare aus Signatur und Public Key. Die nächste Warnung würde dann erst wieder kommen, wenn man eine Original-FW einspielen würde. Aber die könnte man ja vorher so modifizieren, daß wieder die richtigen Schlüssel und Signaturen drin sind.

So, war doch lustig, mal ein bißchen zu sinnieren. Hoffentlich hat's Euch nicht zu sehr gelangweilt.

P.S.: Nein, das Knacken des RSA-1024-Schlüssels ist keine Alternative. RSA ist nach meinem Wissensstand sicher - außer vielleicht, wenn man zufällig einen guten Draht zum Rechenzentrumsleiter der NSA hat. ;-)
 
@ao
Bei der tr069.cfg handelt es sich um eine Konfig-Datei aus /var/flash. Die Files aus default werden nur genommen, wenn die Datei aus dem Flash leer ist. Daher hab ich den Wert direkt in der /var/flash/tr069.cfg (mit telnet geändert) und gut ist.
Die Warnings brauchen die nicht beunruhigen. Da kommen einige...

@kriegaex
Das liest sich sehr interessant. Ich würde das gerne weiter verfolgen. Bei dem W701V und W900V vom Rosa-Riesen ist es nämlich schon so weit, dass sich die Firmware nur noch über recover/ftp flashen lässt.
Aber das dürfte wohl ein größerer Aufwand werden diese Überprüfung auszuhebeln, oder?

MfG Oliver
 
Die Signaturprüfung "sauber" auszuhebeln wäre in der Tat zu viel Aufwand.
Die Seite zu patchen würde deshalb genügen, weil man z.b. ein Zeitgesteuertes submit für den Button einbauen kann.
So kommt die Meldung zwar und man könnte manuell abbrechen, macht mann jedoch nichts läuft das ganze einfach weiter.
Ist doch praktisch wenn man nicht vor dem Bildschirm warten muss, nur um ein zweites mal zu bestätigen.

Ist jemandem etwas zum Thema "Firmware suchen auf anderer Website" eingefallen?
Ist zwar mit der Faust durchs Auge, aber mit z.B. ethereal könnte man doch die Pakete abfangen und den Traffic rekonstruieren, um herauszufinden, was das firmwarecfg-cgi als Antwort erwartet.
 
Zur Firmwaresuche:
Code:
ftp://[email protected]/onlineupdate/AVM%20FRITZ!Box%20Fon%20WLAN%207170/deutsch/fritzbox.upd
Leider wird da wohl nicht die URL genommen die ich gepostet hab.
Code:
/var/mod/root $ cat /usr/bin/ctlmgr |grep fritzboxupdate
fritzboxupdate.avm.de
[URL="ftp://fritzboxupdate:@%s/onlineupdate/%s/%s/%s/fritzbox.upd"]ftp://fritzboxupdate:@%s/onlineupdate/%s/%s/%s/fritzbox.upd[/URL]
[URL="ftp://fritzboxupdate:@%s/onlineupdate/%s/%s/fritzbox.upd"]ftp://fritzboxupdate:@%s/onlineupdate/%s/%s/fritzbox.upd[/URL]
/var/mod/root $
MfG Oliver
 
Hmpf, ctlmgr is ja auch ein binär-biest. :-(
Da aber der Hostname fritzboxupdate.avm.de nur einmal auftaucht im Textsegment könnte man doch diesen patchen mit einem string gleicher länge.

EDIT1: mit http://www.daemonology.net/bsdiff/ hab ich gerade ein patchfile erstellt, das firmware.avm.de durch localhost ersetzt.
Jetzt muss ich nurnoch testen, ob das auch funktioniert.

EDIT2:Nur wie bekomme ich jetzt das gepatchte ctlmgr auf die Box? Bevorzugt DS Dateien die in root stehen bzw werden vorhandene überschrieben?
Oder muss ich gar das DS-Makefile schon für diesen Test modifizieren und bspatch einbauen? :noidea:

EDIT3: Der binary-patch enthält denke ich keinen Kontext. Man könnte das doch generell verwenden um AVM-Rechte nicht zu verletzen, oder?
 
Zuletzt bearbeitet:
olistudent schrieb:
Bei der tr069.cfg handelt es sich um eine Konfig-Datei aus /var/flash. Die Files aus default werden nur genommen, wenn die Datei aus dem Flash leer ist. Daher hab ich den Wert direkt in der /var/flash/tr069.cfg (mit telnet geändert) und gut ist.
Hmm, auf meiner 7170 ist /var/flash/tr069.cfg leer. :noidea: Oder muss ich da anders rangehen, weil es in /flash liegt?
olistudent schrieb:
Die Warnings brauchen die nicht beunruhigen. Da kommen einige...
Vielen Dank, ich werde die neue FW nachher flashen.

Kann man eigentlich aus einer Telnet- bzw. SSH-Session, also aus einem Terminal heraus ein FW-Update fahren?
Dann könnte man nämlich auch über FriBoLi aus der Ferne ein FW-Update durchführen.
Oder geht das nur über das FB-WebGUI?
 
Du könntest für den Hostnamen auch in der Hosts Datei einen Eintrag erstellen, der auf deinen lokalen Rechner zeigt ...
 
@ao
Wenn die Datei leer ist, dann wird der default genommen. Den Inhalt bekommst du mit cat angezeigt.

Du kannst ein Firmware-Update auch per Hand ausführen. Dazu entpackst du das Firmware-file in /. Danach musst du /var/install aufrufen, glaube ich. Der schreibt dann in /var/post_install. Das wird bei einem "reboot" ausgeführt.

MfG Oliver
 
OK, stimmt - Hostnamen umbiegen ist einfacher.
Aber auch so klappt es nicht, daß die Fritzbox eine neue Version meldet.
Ich schraub schon die ganze Zeit an fritzbox.upd rum... :mad:

Ich schätz mal, das angehängte ds-0.2.9 stört, weil dann der < Vergleich nicht mehr funktioniert. :confused:
 
@phoenix.tom: Wenn Du nicht gleich eine neue FW zum Testen bauen und einspielen willst, kannst Du auch die zu testende(n) Datei(ein) auf die Box irgendwo nach /var/tmp spielen und anschließen versuchen, die Box mit mount -o bind ... zu überreden, die neuen Dateien anstatt der alten zu akzeptieren. Klappt oft recht gut, aber nicht immer, wie ich irgendwo las. Versuch's einfach.
 
Das mit dem W701V kann ich bestätigen. Über das T-Com WebUI lies sich die Firmware nicht flashen. Über FTP hingegen schon ohne Probleme. (Allerdings erst beim 2. Anlauf ohne 'replace kernel', das muss ich später nochmal testen) Die WebUI von AVM läuft anscheined.

Allerdings hab ich ein Problem mit ds-mod jetzt selbst: Nach Aktivierung des Telnetd zum setzen des DS-MOD Passwort bekam ich vom Telnet folgende Meldung
Code:
root@silver-vdr:~# telnet 192.168.2.1
Trying 192.168.2.1...
Connected to 192.168.2.1.
Escape character is '^]'.
2000-01-01 01:02:29 unknown: FactoryDefault=/etc/default/ar7.cfg (ar7)
2000-01-01 01:02:29 unknown: load_config(ar7): open problem - factory default loaded
2000-01-01 01:02:29 unknown: EVENT(60): ?60?
Connection closed by foreign host.
Vielleicht hat ja hier jemand eine Idee

Hinweis zum Passwort: Beim Ersten Versuch mich auf der neuen WebUI anzumelden kam ich nicht weiter. Erst ein Reset über den hinten angebrachten ResetKnopf des Speedport W701V konnte ich mich wieder mit '0000' anmelden.
 
Zuletzt bearbeitet:
olistudent schrieb:
Wenn die Datei leer ist, dann wird der default genommen. Den Inhalt bekommst du mit cat angezeigt.
Ok, auch auf der FB ist sie nun nach erfolgreichem Flashen leer. Soweit scheint auch einiges zu klappen, z.B. auch Callmonitor und Checkmaild, die vorher ab und an Zicken gemacht hatten.
Wie ist denn die MAC-Schreibweise bei WOL: aa-bb-cc... oder aa:bb:cc...?
Was gibt man beim Weckversuch unter "Interface" an: eth0 für einen WinXP-PC?
olistudent schrieb:
Du kannst ein Firmware-Update auch per Hand ausführen. Dazu entpackst du das Firmware-file in /. Danach musst du /var/install aufrufen, glaube ich. Der schreibt dann in /var/post_install. Das wird bei einem "reboot" ausgeführt.
Coole Sache, vielen Dank für den Tipp!
Das kann ich erst in ein paar Tagen test, aber mal sehen...
 
@griffon
Was genau hast du auf den W701V geflasht?
Ich habe es bei mir mit und ohne replace kernel versucht. Über die GUI geht gar nichts.
über ftp und ADAM2 habe ich dann nur das kernel.image aus dem fertigen Image entpackt und nach mtd1 übertragen.
Allerdings habe ich nach einen reboot keine funktionierende WEB-GUI. Ich habe es nicht mehr im Kopf wie der Fehler lautete aber irgendwas mit AR... .
Das einzige was ich zum laufen bekommen habe ist die Änderungen durch die Skripte von Spirou und des flaschen des kernel.images.
Welche Optionen hast du gewählt für den W701V muß man noch die Patches auswählen? Ich möchte erstmal nur ssh zusätzlich zur AVM GUI haben. :confused:
 
ao schrieb:
Wie ist denn die MAC-Schreibweise bei WOL: aa-bb-cc... oder aa:bb:cc...?

Doppelpunkte, das kann man aber auch in der Doku nachlesen.
 
@ AO

Die kannst auch die Einträge in unter Hosts eintragen, dann kannst du im Wol-If gleich den Eintrag auswählen und brauchts nicht die MAC im Kopf zu haben.
z.B.
192.168.1.1 00:0C:AA:BB:CC:CD * Rechner.Lan "Rechner Lan"

mfg
Wonderdoc
 
@off-topic

schon bemerkt? ihr seid total vom ursprünglichen thema abgekommen!
 
@off-topic

ao schrieb:
Das ist der Giga-Thread "dsmod für Boxen mit 2.6er Kernel", wo doch weiter oben auch schon solche Sachen diskutiert wurden - wie übrigens auch im archivierten "ds-mod" Thread.
ja, schlimm!

ao schrieb:
Oder sollen wir die Themen WOL etc. woanders diskutieren?
das würde doch allen das mitlesen und verstehen deutlich erleichtern!

ao schrieb:
Zugegeben, mir wäre es auch lieber, wenn man zu den einzelnen ds-mod-Komponenten jeweils ein eigenes UF hätte, damit man noch den Überblick behält.
wozu unterforen? es wäre schon eine große hilfe, wenn für jedes thema ein eigener thread begonnen werden würde und die diskussion etwas geordneter ablaufen würde.

alles weiter zu dieser "off-topic oder nicht"-diskussion am besten hier.
 
Status
Für weitere Antworten geschlossen.

Statistik des Forums

Themen
246,200
Beiträge
2,247,948
Mitglieder
373,763
Neuestes Mitglied
Netzmaster
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.