[Info] Kennwörter aus der FRITZ!Box-Konfiguration auslesen für Firmware ab 06.10

Hallo,
hat jemand einen Tipp wie ich aus einem config-export (vom avm-webif) oder von einem freetz-export die voip-passwörter rausbekomme? Ist das überhaupt machbar, oder geht das nur von der aktuellen Installation?
alte allcfgconv (und webdavcfginfo) habe ich mir bereits aus 06.10 organisiert, mit der klappt des auch für die laufende installation.
Box ist eine 7490, aus dieser kommt auch der export.

Das script hier bekomme ich jedoch nicht zum laufen, ausgabe ist "unsupported config-parameter - abort"

Code:
mount -o bind /var/media/ftp/webdavcfginfo  /bin/webdavcfginfo
grep -o -E '"[$]{4}.*"' /var/media/ftp/voip.cfg | sh decode_passwords.sh

Hab ich was übersehen oder wird es nicht klappen?

Edit: Habe testweise im skript den pfad zur binary angepasst, scheinbar lässt sich die binary nicht /bin/ mounten (?).
Bekomme nun keine fehlermeldung mehr, sondern "/var/media/ftp/webdavcfginfo: not found" - die binary ist aber definitiv dort.
 
Zuletzt bearbeitet:
Da das in einen chroot-Jail abläuft und das erst im Skript eingerichtet wird, mußt Du schon diesen Teil anpassen ... daher klappt auch weder bind-Mount noch das einfache Anpassen des Pfades, solange der nicht unterhalb von /bin liegt - das wird einfach nicht in das Jail übernommen oder ist von dort nicht erreichbar.

Du müßtest das Skript etwas ergänzen, bei mir sieht die aktuelle Variante im Vergleich zu der vom Server so aus (diff-File):
Code:
--- /dev/null
+++ decode_passwords
@@ -207,7 +207,10 @@
 #
 # the "abused" AVM binary
 #
-decode=/bin/webdavcfginfo
+myself="$0"
+mypath=$(realpath $myself)
+mypath=${mypath%/*}
+decode=$mypath/decoders/$CONFIG_PRODUKT
 if [ ! -x $decode ]; then
        # LAM-EXCLUDE 1
        echo "Missing $decode executable ..." 1>&2
@@ -404,11 +407,13 @@
 # E     <dst>               create empty file (with "echo -n" for correct character device handling at TFFS) <dst>
 # M     <type> <src> <dst>  mount file system of type <type> from <src> at <dst>
 # B     <src> <dst>         bind mount from <src> to <dst>
+# F     <src> <dst>         copy file to from <src> to <dst>
   D var/flash
   E $cfg
   M proc none proc
   B bin $1/bin
   B lib $1/lib
+  F $decode $1/decoder
 EOT
 }
 #
@@ -434,6 +439,9 @@
                        B)
                                s=/$(rel_path $2); d=/$(rel_path $3); mkdir -p $d; mount -o bind $s $d
                                ;;
+                       F)
+                               s=/$(rel_path $2); d=/$(rel_path $3); cp $s $d
+                               ;;
                        *)
                                ;;
                esac
@@ -480,7 +488,7 @@
                        # prepare config file
                        echo -n -e "$client {\n\t$username = \"\$in\";\n}" >$cfg
                        # let it decode
-                       out="\$($decode -p username)"
+                       out="\$(/decoder -p username)"
                        # if the decoded text is empty, no escaping is needed
                        if [ \${#out} -gt 0 ]; then
                                # backslash is escape, we've to double each occurence
Damit das funktioniert, wird noch ein Unterverzeichnis "decoders" (auf der Ebene, wo das Skript liegt) benötigt, in dem per Symlink unter dem Produktnamen der FRITZ!Box (bei der 7490 wäre das "Fritz_Box_HW185") das korrekte Programm (sollte sich wie das webdavcfginfo von AVM über "programmname -p username" aufrufen lassen und das Format der "usb.cfg" verstehen - was bei Dir mit dem originalen webdavcfginfo von AVM ja kein Problem wäre) zum Dekodieren verlinkt ist.

PS: Ansonsten kannst Du natürlich (nachdem die beiden anderen Änderungen drin sind) auch einfach nur den Pfad zum "decode" anpassen und bei der ersten Änderung die drei "my..."-Zeilen einfach auslassen. Die sind nur drin, damit ich das mit einem Download für mehrere Boxen/Firmwareversionen und von beliebigen Stellen aus aufrufen kann und nicht jedesmal etwas anpassen muß.
 
Zuletzt bearbeitet:
Vielen Dank für deine Hilfe! Habs hinbekommen.

Patchen ließ sich nur Hunk 1 & 2, 3 & 4 wurde nicht genommen, hab diese Teile manuell eingebaut.

Ich weiß nicht wie es sehr die anderen Firmware-Version von anderen Boxen abgesichert sind, aber das freetz-Paket macht zumindest für die 7490 in dieser Form nicht viel Sinn. Praktisch wäre, denn man den Pfad zur binary als Parameter übergeben könnte, dann bräcuhte man sich nur die binary organisieren...
Ist keine Kritik, sondern eine Anregung. Anderseits ist es vielleicht eh nicht schlecht, wenn nicht ganz so einfahch geht :)
 
Ich habe das Ganze bei mir eben als Archiv mit den notwendigen Programmen (die AVM's webdavcfginfo als Interface nachbilden) für verschiedene Architekturen liegen (mips, mipsel, puma5, puma6_arm, puma6_atom) und eigentlich sucht sich das Skript (wenn es den Symlink gibt) eben automatisch das richtige Binary für die Box raus. Da wäre ein zusätzlicher Parameter (der auch nicht ganz einfach zu implementieren ist bei Wahrung der Kompatibilität) irgendwie unnötig.

Aber es war ja ohnehin nur eine Fingerübung als Zwischenlösung ... ob es eine neue Version geben wird, steht noch in den Sternen.

Das Dekodieren einzelner Werte ist aber nach wie vor auch von Hand möglich (z.B. als WLAN-Schlüssel oder Pushmail-Adresse) und insofern schrecken die Änderungen seitens AVM am webdavcfginfo (und schon vorher am allcfgconv) eben auch nur "Gelegenheitsdiebe" und sind kein Sicherheitsgewinn für den Besitzer der Box - wenn die z.B. beschlagnahmt würde oder wenn ein Angreifer einfach eine TFFS-Partition über's Netz auf sein eigenes System kopiert und das dann später genüßlich auseinandernimmt.

Das Freetz-Paket funktioniert für Versionen < 06.25 nun mal "out of the box" ... und das eigentlich nicht nur bei der 7490. Wenn das zusätzliche "webdavcfginfo" (ich bevorzuge das bzw. ein eigenes Programm mit identischem Interface ggü. dem allcfgconv immer noch, weil es im Verein mit "decode_passwords" eben auch einzelne Werte aus "ar7cfgctl" entschlüsseln kann für Automatisierungen) unterhalb von /bin bereits beim Build des Images unter einem passenden Namen abgelegt wird, braucht man auch bloß den Namen anpassen, wie Du es im ersten Anlauf versucht hast. Gescheitert bist Du ja nur daran, daß das bind-Mount an dieser Stelle nicht greift und beim zweiten Versuch daran, daß /var/media/ftp eben nicht zum Jail gehörte. Wenn das richtige "webdavcfginfo" unter einem passenden Namen schon in /bin gelegen hätte, wäre schon Deine erste Anpassung von Erfolg gekrönt worden.

PS: Zum Patch-Problem: Vermutlich habe ich aus einer PuTTY-Session nur den Bildschirminhalt kopiert und hier eingefügt, dabei sind dann die Tabs bei den tiefer eingerückten Stellen verloren gegangen und daher haben die anderen Hunks wohl nicht gegriffen (der passende Parameter hilft auch hier sicherlich).
 
Ich habe es mir jetzt einfach gemacht.

* Habe das decode_passwords Script von PeterPawn "downgeloadet" (http://yourfritz.de/decode_passwords.tgz) und lokal entpackt.
* Dann per FRITZ!NAS der FRITZ!Box Weboberfläche das Script auf den USB Stick an der Box kopiert. (Wäre auch per FTP gegangen.)
* Verbindung per Putty zur Box hergestellt. (Ist auch bei der Lösung mit wget nötig)
* Per cd in das Verzeichnis des Sticks gewechselt. (# cd /var/InternerSpeicher/NameDesSticks)
* Zum Schluss mit "# sh decode_passwords < /var/flash/ar7.cfg" bzw. "# sh decode_passwords < /var/flash/ar7.cfg >> ausgabe.txt" die Konfiguration mit den entschlüsselten Kennwörtern ausgeben lassen. Die ausgabe.txt befindet sich auf dem Stick und kann über FRITZ!NAS oder FTP gelesen oder kopiert werden.

Bd
nqfe

Hallo

Ich bin absoluter Neuling hier und absoluter Laie mit dem Auslesen von Daten aus der FB. Habe eine 7490 mit 6.23, die ich von meine PRovider Sunrise (Schweiz) bekommen habe.
Darüber läuft Internet, TV und eine IP Telefonnummer. Und genau die muss ich irgendwie in die Box meiner Firma bekommen, weil das die zentrale Anlage ist und alles da angemeldet wird, damit ich auch intern telefonieren kann mit Geräten an diversen Standorten.
Damit ich die Nummer dort rein bekomme, brauche ich das VoIP Passwort.
Mit Deiner Anleitung habe ich zwar 43 Seiten ausgelesenen Code bekommen und sehe meine Internet und Dyndns-Passwörter, doch das VoIP-Passwort finde ich nirgends.
Muss ich das mit einem speziellen Befehl auslesen oder ist das Entschlüsseln von AVM blockiert? Fehlermeldungen gibts nicht.
Wenn Du ne Idee hast, bin ich Dir sehr dankbar.
FG hampi52
 
hast du die voip.cfg genommen?
 
Spannenderweise gibts die nirgends. Habe die 43 ausgedruckten Codeseiten fast mit der Lupe gelesen. Und dennoch habe ich mein Telefon via IP vom Provider auf der FritzBox.
Ist Dir bekannt, dass es verfahren gibt, wo das Telefon ohne VoIp im herkömmlichen Sinn vom Provider in die Box gepisht wird und sich gar nicht dort drin abspeichert?
Ich werde das Prozedere mal in der Firmenbox machen. Dort habe ich "echtes" Voip von Switzernet. Und wenn dann dort eine voip.cfg auftaucht, kommt man wohl an die VoIPSunrise.PWs nicht ran.
Danke Dir für die Hilfe
hampi52
 
Die voip.cfg ist eine andere Datei als die ar7.cfg. Wenn Du also nur die ar7.cfg hast dekodieren lassen (egal auf welchem Weg), stehen dort die VoIP-Credentials logischerweise nicht drin.

BTW: Wer druckt denn so etwas aus? Internet-Ausdrucker?
 
Hall PeterPawn

Ich kann halt nicht wirklich gut am Bildschirm lesen, hat was mit Augen zum tun...
Also soweit ist mir das klar.
Wenn ich denn also - im Skript oben bei meinem Zitat - den Eintrag ar7.cfg durch voip.cfg ersetze und den Rest so lasse, dann sollte es gehen?

Also exakt so stimmt das Skript für VoIP? # sh decode_passwords < /var/flash/voip.cfg" bzw. "# sh decode_passwords < /var/flash/voip7.cfg >>

Sorry, ich bin mit den Skripten nicht vertraut, weil kein Programmierer. Immerhin habe ich dank Euch gelernt wie das anzuwenden geht und was Telnet ist und was man damit machen kannn ;-))
Ihr seid eine super Community.

Danke
hampi52
 
Die erste Variante ... die Datei heißt "voip.cfg" ohne 7.

Hast Du keinen "Vorleser"? Gerade für Leute mit "disabilities" ist doch Technik das probatere Mittel ... aber das nur nebenbei.

Deine SIP-Credentials findest Du jedenfalls mit der ersten Variante der angegebenen Kommandos.
 
Oh, die 7 war bloss ein Verschreiber;-))
Vorleser brauche ich dann doch noch nicht - bin halt noch Old School und ja, auch mit E-Books am PC tue ich mich schwer. Darum drucke ich aus (nicht die E-Books, dafür habe ich einen Reader;-) jedoch so Skripts kann ich dann für mich bequem durcharbeiten. Dafür habe ich Druckerpapier, was einseitig schon bedruckt ist und so nochmals gebraucht wird...
Werde also das Skript zuhause mal laufen lassen und gucken, was passiert. Melde mich dann wieder.

FG hampi52
 
So, das hat auf den ersten Blick geklappt - die VoIP-PWs sind da. Jetzt muss ich gucken, ob ich in der Firmen FB die VoIP Nummer einbauen kann. Möglicherweise gibts da ein Problem, denn ich habe irgendwo gelesen, dass Sunrise VoIP nur im Sunrise Internet eingerichtet werden kann. In der Firma habe ich Swisscom...
 
Hallo allerseits.

weiß jemand von euch wie ich von einer AVM 7360 augelesene M-Net Zugangsdaten auf eine AVM 7330 bekomme, so dass ich mit dieser ordnungsgemäßen Interzugang bekomme ?
Die Zugangsdaten sind zwar in die 7330 übertragen, MTU steht auf 1492 und die Vlan id auf 40, aber ich bekomme keine Internetverbindung.
Meiner Meinung nach muss etwas im Menüpunkt "IPv6" eingestellt werden, der jedoch bei der M-Net AVM 7360 nicht sichtbar ist.
Zwar gelingt der Versuch alle Einstellungen von der AVM7360 zu sichern und in die 7330 zurückzuspielen, selbst mit Zugangsdaten,
aber man bekommt dennoch keine Verbindung zum WWW.
Auch hier meine Meinung, was menütechnisch bei der M-net 7360 nicht sichbar ist, lässt sich wohl nicht kopieren.


Lässt sich eigentlich mit:

IPv4 DSLAFTR-Gateway :: + IPv6 verbindungsadressen + IPv6 Präfix + genutzte DNS Server

etwas anfangen, die im Online-Montior der M-Net AVM 7360 stehen ?
Kann man diese Daten ggf. in einer AVM 7330 in dem IPv6 Menü verwenden ?


LG Al
 
Zuletzt bearbeitet:
Versuch' mal unter Internet, Zugangsdaten, IPv6, native IPv6-Verbidung, AFTR-Adresse "aftr.prod.m-online.net" einzutragen.
 
Eine neue Version 0.2 ist jetzt über GitHub (https://github.com/PeterPawn/decode_passwords/releases) verfügbar, die als Decoder auf das AVM-Binary (oder einen beliebigen anderen eigenen Decoder) über den Symlink "/var/decoder" versucht zuzugreifen. Um auch diese Version von einer "normalen FRITZ!Box" aus laden zu können (das "wget" der Busybox kann keine HTTPS-Verbindungen benutzen und das AVM-Programm "httpsdl" kommt mit GitHub-URLs irgendwie auch nicht klar), habe ich noch einen zusätzlichen Download-Link unter http://yourfritz.de/decode_passwords/0.2/decode_passwords bereitgestellt. Die Kommandos aus #1 muß man dann eben entsprechend anpassen.

Indem man auf irgendeinem Weg einen entsprechenden Link einrichtet (wie das bei funktionierendem Shell-Zugriff und bei Vorhandensein einer älteren AVM-Firmware auch vollkommen ohne eine Verletzung der Lizenzbedingungen von AVM geht, beschreibe ich weiter unten), kann man nun mittels "decode_passwords" auch dann noch Konfigurationsdateien entschlüsseln (eigene und - bei Kenntnis von "wlan_key" und "maca" - auch die aus anderen Boxen), wenn AVM inzwischen "webdavcfginfo" so abgeändert hat, daß der Datenaustausch zwischen "davfs2" und den AVM-Komponenten rundherum nur noch über "shared memory" läuft. Für eine "regelmäßige" Benutzung ist allerdings damit nun auch "webdavcfginfo" zu "unhandlich" geworden. Also schafft man sich entweder ein eigenes Programm zum Entschlüsseln an (das Interesse daran - bzw. an einer Diskussion daran, ob man so etwas braucht/machen sollte - hielt sich in sehr überschaubaren Grenzen) oder man muß eben auf ältere AVM-Versionen (irgendwas zwischen 06.10 und 06.25) zurückgreifen, wenn man "decode_passwords" weiterhin nutzen will.

Gegenüber "allcfgconv" hat es (zumindest in meinen Augen) immer noch einige Vorteile, insbesonders weil man es in der Kombination mit "ar7cfgctl" zum Auslesen (und Dekodieren) einzelner Einstellungen benutzen kann. Zwar geht theoretisch auch "der andere Weg" über die komplette Dekodierung mittels "allcfgconv", aber dann wird das (automatische) Parsen einer bestimmten Einstellung aus der so erzeugten Datei wieder komplexer. Liest man hingegen mit "ar7cfgctl" einen solchen Wert erst aus, kann hinterher "allcfgconv" (meines Wissens) damit nichts mehr anfangen.

Ein (ziemlich einfaches) Auslesen von Daten ist so nicht mehr möglich ... ich brauche z.B. regelmäßig das Auslesen der Credentials für die Aktualisierung eines DynDNS-Accounts, was mit dem folgenden "snippet" sehr leicht zu realisieren ist:
Code:
[...]
cfgvar()
{
        local n="$1" i p="$2" v
        v="$(echo -e "$n" | ar7cfgctl -w 2>/dev/null)"
        [ $(expr index "$v" '\$\$\$\$') -gt 0 ] && v="$(echo "$v" | [COLOR="#008000"]decode_passwords[/COLOR])"
        if ! test -z "$p"; then
                p="${p//\[/\\[}"
                p="${p//\"/\\"}"
                p="${p//\./\\.}"
                p="${p//\$/\\\$}"
                v="$(echo "$v" | sed -n -e "s|$p||p")"
        fi
        echo "$v" | sed -n -e 's|^\([^ ]*\) = \(\".*\"\)|\1=\2|p'
}
eval $(cfgvar "ddns.accounts.username\nddns.accounts.passwd" "ddns.accounts.")
Das ergibt nach dem "eval" dann den Benutzernamen und das Kennwort für den ersten DynDNS-Account aus der ar7.cfg in den Shell-Variablen "username" und "passwd" (die Namen gibt der Einfachheit halber AVM in der ar7.cfg vor) - das muß man mir auf einem anderen Weg erst einmal in ähnlicher "Länge" zeigen ... die "cfgvar()"-Funktion kann man natürlich auch mit anderen Werten nutzen (z.B. den E-Mail-Credentials für die Push-Mails).

-Bleibt also die Frage, wie man sich ohne die Verletzung der AVM-Lizenzbedingungen ein passendes Binary beschafft ... die erwähnten Lizenzbestimmungen verbieten (ob wirksam oder nicht, lassen wir einfach dahingestellt, weil es in diesem Zusammenhang uninteressant ist) das Extrahieren einzelner AVM-Programme aus der Firmware. Das sollte für das Erzeugen einer temporären Kopie in einem chroot-Jail nicht gelten, da diese (a) nicht dauerhaft gespeichert und (b) bereits nach dem Ende der Abarbeitung von "decode_passwords" wieder gelöscht wird, wenn man so vorgeht, wie ich es vorschlage.

Dazu greift man sich einfach eine ältere Firmware und extrahiert aus dieser das SquashFS-Image mit dem Root-Dateisystem. Diesen Schritt muß man - nach meiner Überzeugung - nur einmal ausführen, da auch die Speicherung einer Kopie des kompletten Root-Dateisystems noch durch die GPL abgedeckt sein sollte. Je nachdem, um was für ein FRITZ!Box-Modell es sich handelt, sind dazu folgende Schritte erforderlich (ich gehe davon aus, daß alle Kommandos direkt auf einer FRITZ!Box ausgeführt werden - wie man den Zugriff auf die Shell erreicht, soll hier mal nicht das Thema sein, das ist anderweitig oft genug durchgekaut):

  1. (optional) Download einer passenden Firmware ... nachdem AVM selbst ältere Versionen nicht mehr bereitstellt, muß man eben woanders auf die Suche gehen, wenn man selbst kein passendes Archiv hat - für den weiteren Ablauf nehme ich mal die Firmware-Version 06.20 an und die Modelle 7490 (als NAND-Box mit dem Firmware-Image "FRITZ.Box_7490.113.06.20.image") und 7390 (als NOR-Box mit der Firmware "FRITZ.Box_Fon_WLAN_7390.AnnexB.84.06.20.image").

    -
  2. Entpacken des AVM-Images

    Variante A - NAND-Box mit Firmware < 06.36 (Kernel 2.6.xx)
    Code:
    # mkdir /var/media/ftp/firmware_06.20
    # tar -O -x -f FRITZ.Box_7490.113.06.20.image ./var/tmp/filesystem.image >/var/wrapper.image
    # mkdir /var/wrapper
    # mount -t squashfs /var/wrapper.image /var/wrapper
    # cp -a /var/wrapper/filesystem_core.squashfs /var/media/ftp/firmware_06.20/rootfs.squashfs
    # umount /var/wrapper
    # rmdir /var/wrapper
    # rm /var/wrapper.image

    Variante B - NOR-Box (der verwendete Kernel muß das SquashFS-Format der alten Firmware - also SquashFS3 - kennen) ... das ist etwas aufwändiger, weil das Dateisystem und der Kernel in einer einzigen Datei zusammengefaßt sind:
    Code:
    # mkdir /var/media/ftp/firmware_06.20
    # tar -O -x -f FRITZ.Box_Fon_WLAN_7390.AnnexB.84.06.20.image ./var/tmp/kernel.image >/var/kernel.image
    # b=$(date +%s);f=/var/kernel.image;[COLOR="#FF0000"]i=$(( 0x140000 ))[/COLOR];s=$(stat -c %s $f);while [ $i -lt $s ]; do [ $(testvalue $f 4 $i) -eq [COLOR="#DAA520"]1936814952[/COLOR] ] && printf "\noffset = 0x%08x\n" $i && break;i=$(( i + 4096 ));printf "\r0x%08x of 0x%08x" $i $s;done;printf "duration=%u seconds\n" $(( $(date +%s) - b ));dd if=$f of=/var/media/ftp/firmware_06.20/rootfs.squashfs bs=4096 skip=$(( i / 4096 ));rm /var/kernel.image
    [COLOR="#0000CD"]0x00152000 of 0x00ebdb3a
    offset = 0x00152000
    duration=25 seconds
    3435+1 records in
    3435+1 records out
    14072634 bytes (13.4MB) copied, 4.574045 seconds, 2.9MB/s
    [/COLOR]
    Das Aufsuchen des Beginns des SquashFS-Images ist sicherlich nicht die schnellste Lösung, dafür funktioniert sie mit den Mitteln, die selbst eine originale AVM-Firmware "onboard" hat ... allerdings muß das tatsächlich alles in einer einzelnen Eingabe erfolgen (copy&paste hilft da sicherlich - der blaue Teil sind dann schon Ausgaben der Kommandos bei der Abarbeitung).

    Wenn man die ungefähre Größe des Kernels der eigenen Box besser kennt, kann man durch einen anderen Startwert für "i" (die rote Stelle oben) natürlich auch später in der Datei mit der Suche beginnen.

    Der gesuchte Wert 1936814952 ist in hexadezimaler Schreibweise nebenbei bemerkt 0x73717368, was für "sqsh" steht und das ist die Signatur eines SquashFS-Images im BE-Format. Wenn die verwendete FRITZ!Box LE-Speicherung verwendet, muß dieser Wert auf 0x68737173 geändert werden, was in dezimaler Schreibweise dann 1752396147 wäre - wobei meines Wissens bisher(!) keine LE-Modelle mit einer Firmware > 06.25 ausgerüstet werden können (mal vom ATOM-Core einer 6490 abgesehen - welche Endianess die 4080 (und die 4020?) verwendet, weiß ich allerdings auch nicht und auch die 5490 ist m.W. von den "Innereien" her noch ein großes Fragezeichen).

    Anschließend wird dann einfach das SquashFS-Image aus der Kernel-Datei in das Zielverzeichnis kopiert und die extrahierte "Gesamtdatei" gelöscht.

    Wenn das verwendete Modell keinen NAND-Flash unter /var/media/ftp bereitstellt (also keine 7390 ist), kann man natürlich stattdessen auch ein Verzeichnis auf einem USB-Stick benutzen ... wenn der ein Linux-Dateisystem hat, schadet das sicherlich nicht, es ist aber keine Bedingung.

    Variante C - NAND-Box mit neuerem Kernel, der das alte SquashFS-Format nicht mehr kennt ... hier brauchen wir dann eine Version von "unsquashfs", die das alte Dateiformat unterstützt (z.B. aus dem "modfs"-Paket) und ein "mksquashfs" für das neue Format; wir packen uns das Root-Dateisystem ganz einfach um auf das aktuellere Format (braucht etwas Zeit). Dabei müssen wir aber auch den nicht allzu üppigen Hauptspeicher im Hinterkopf behalten, daher sollten die Zwischenergebnisse nicht im tmpfs abgelegt werden ... wir brauchen also genug freien Speicher in der NAND-Partition unter /var/media/ftp oder einen USB-Stick mit einem Linux-Dateisystem.
    Code:
    # mkdir /var/media/ftp/firmware_06.20
    # tar -O -x -f FRITZ.Box_7490.113.06.20.image ./var/tmp/filesystem.image >/var/wrapper.image
    # unsquashfs3 -d /var/wrapper /var/wrapper.image /filesystem_core.squashfs
    [COLOR="#0000CD"]Filesystem on /var/wrapper.image is ZLIB compressed (3:0)
    Parallel unsquashfs: Using 2 processors
    1 inodes (336 blocks) to write
    [====================================\] 336/336 100%
    created 1 files
    created 1 directories
    created 0 symlinks
    created 0 devices
    created 0 fifos[/COLOR]
    # rm /var/wrapper.image
    Hier stehen wir jetzt am Scheideweg und müssen uns zusammenreißen, daß wir den sauberen Weg nehmen und nicht einfach mittels
    Code:
    # unsquashfs3 -d /var/rootfs /var/wrapper/filesystem_core.squashfs /bin/webdavcfginfo
    # mv /var/rootfs/bin/webdavcfginfo /var/media/ftp/firmware_06.20/decoder
    # rm -r /var/rootfs /var/wrapper
    das benötigte Programm aus dem Image kopieren, denn das wäre zwar eine Abkürzung, aber auch genau der bereits erwähnte Verstoß gegen die AVM-Lizenzbestimmungen.

    Das ist aber nicht notwendig, denn wir können ja einfach wieder das gesamte Root-Dateisystem in einem Format zusammenpacken (wenn wir es nicht gleich in der ausgepackten Form - auch dabei sind ja keine einzelnen AVM-Programme vom Rest der Firmware getrennt - weiter verwenden wollen, weil es schade um den vergeudeten Platz ist ... immerhin sind es bei einer 7490 ca. 56 MB, die das Root-Dateisystem auf die Waage bringt), welches unser neuer Kernel dann auch wieder mounten kann.
    Code:
    # unsquashfs3 -d /var/media/ftp/repackfs /var/wrapper/filesystem_core.squashfs
    [COLOR="#0000CD"]Filesystem on /var/wrapper/filesystem_core.squashfs is ZLIB compressed (3:0)
    Parallel unsquashfs: Using 2 processors
    3770 inodes (4278 blocks) to write
    [====================================\] 4278/4278 100%
    created 3175 files
    created 219 directories
    created 509 symlinks
    created 86 devices
    created 0 fifos[/COLOR]
    # mksquashfs4 /var/media/ftp/repackfs /var/media/ftp/firmware_06.20/rootfs.squashfs
    [COLOR="#0000CD"]Parallel mksquashfs: Using 2 processors
    Creating 4.0 filesystem on /var/media/ftp/firmware_06.20/rootfs.squashfs, block size 65536.
    [============================================================================\] 3683/3683 100%
    Exportable Squashfs 4.0 filesystem, xz compressed, data block size 65536
            compressed data, compressed metadata, compressed fragments, no xattrs
            duplicates are removed
    Filesystem size 18464.95 Kbytes (18.03 Mbytes)
            33.12% of uncompressed filesystem size (55749.34 Kbytes)
    Inode table size 31418 bytes (30.68 Kbytes)
            23.27% of uncompressed inode table size (134998 bytes)
    Directory table size 37300 bytes (36.43 Kbytes)
            40.04% of uncompressed directory table size (93150 bytes)
    Number of duplicate files found 1357
    Number of inodes 3989
    Number of files 3175
    Number of fragments 244
    Number of symbolic links  509
    Number of device nodes 86
    Number of fifo nodes 0
    Number of socket nodes 0
    Number of directories 219
    Number of ids (unique uids + gids) 1
    Number of uids 1
            root (0)
    Number of gids 1
            root (0)[/COLOR]
    # rm -r /var/wrapper /var/media/ftp/repackfs
    Das Packen mit "mksquashfs4" dauert zwar ein wenig (ca. 5 Minuten auf einer 7490), aber das gute Gefühl auch in Zukunft die AVM-Lizenzbedingungen einzuhalten, entschädigt uns dafür.

    Jetzt haben wir jedenfalls bei allen Varianten irgendwo (im Beispiel unter /var/media/ftp/firmware_06.20/rootfs.squashfs) ein Image liegen, das vom aktiven System gemountet werden kann und die Kommandos von diesem Punkt an, wären nach jedem Neustart der FRITZ!Box vor der Verwendung von "decode_passwords" auszuführen.

    -
  3. Mounten des Dateisystems unter irgendeinem Pfad in der Box
    Code:
    # mkdir /var/firmware_06.20
    # mount /var/media/ftp/firmware_06.20/rootfs.squashfs /var/firmware_06.20

    -
  4. Verlinken des im neu gemounteten Dateisystem enthaltenen "webdavcfginfo"-Binaries unter dem Namen "/var/decoder"
    Code:
    # ln -s /var/firmware_06.20/bin/webdavcfginfo /var/decoder

-Nun kann man das "decode_passwords"-Skript verwenden, als hätte das System selbst weiterhin eine passende "webdavcfginfo"-Version.
 
Zuletzt bearbeitet:
Servus aus Österreich,
Hallo PeterPawn,

Ich lesen nun seit tage/nächte alles in diesem forum und auch auf verlinkte seiten zu diesem thema, traue mich aber noch nicht mit der "tatsächen" umsetzung.
Ich bitte um kurze Antwort ob mein "Vorhaben" technisch möglich und realisierbar ist:

meine Konfiguration gestaltet sich wie folgt:

internet, tv und telefonie bekomme ich über einen lokalen Kabelanbieter in Ö.

Fakten:
> Modem ist eine Fritzbox 6490 mit der Firmware 6.50 - nicht gebrandet, keinerlei Einschränkungen seitens Anbieter (inkl. Nutzung von DVB-C Streaming)
> auf dem Modem ist die eigene Rufnummer registriert und das Telefonieren (über DECT) geht natürlich, die Einstellung sind nicht erkennbar (bis auf die Tel. Nummer)

das Modem steht aber im Kellergeschoß, daher habe ich noch weitere Fritzboxen (2x 7390 und eine 7490) als IP-Clinet boxen im Haus verstreut.

Mein Ziel:
Die SIP - Zugangsdaten über eine Sicherung von der 6490 (Sicherung kann direkt über das WEBIF der 6490 erstellt werden - mit passwort) auslesen.
Nach erfolgreichem Auslesen der Zugangsdaten würde ich danach die SIP - Einstellungen an den IP-Clinet Boxen einstellen - um auch von diesen Boxen aus mittels
DECT telefonieren zu können.

Dazu wollte ich wie folgt vorgehen:

> Sicherung aus der 6490 auf einer 7390 bzw. 7490 einspielen und die daten mittels deinem skript/programm decode_passwords auslesen

FRAGE:
- ist die Sicherung der 6490 überhaupt auf die 7390 bzw. 7490 flashbar?
- die 1. FritzBox 7390 ist noch auf einen alten Softwarestand: FRITZ.Box_7390.84.05.54.image
- die 2. FritzBox 7390 ist etwas neuer: FRITZ.Box_Fon_WLAN_7390.AnnexB.84.06.03.image

- die 3. Fritzbox ist die 7490: auf der habe ich die letzte Laborversion oben: FRITZ!OS:06.55-33130 BETA


würde anstelle deines skriptes auch die variante über allcfgconv -C auf meine 7390 gehen?

Über deine ausführliche Darstellung im letzen Artikel (Variante C) auf meine 7490 traue ich mich nicht so recht. abgesehen davon finde ich auch nicht benötigte firmware:
für die 7490 las downgrade.

Bitte um einen Ratschlag wie es gehen könnte!
 
Es gibt ja keine Einschränkungen, kann beliebig viele neue Nummer eintragen.
Nur die seitens Anbieter voreingestellte VoipNummer ist eben nicht einsehbar - Einstellungen können nicht bearbeitet werden, sind eben nicht sichtbar.
 
Moin


Eine Nummer vom Anbieter 1&1 zeigt mir beim Bearbeiten auch nicht alles an.
Erst wenn statt 1&1 Anderer Anbieter gewählt wird, naja, fast alles.
...schonmal probiert?
 
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.