Wissen Fritzbox / root access?

Dit is het probleem niet. Met wat @hbswn hier post kan je prima root toegang krijgen en ook de hele NAND uitlezen.

Maar je hebt meer nodig om volledige controle te hebben.

Yep. Uitlezen is wat anders dan het kunnen lezen om daarna te kunnen begrijpen.

Hmm, ik mag geen tekstbestanden uploaden: zeker gevaarlijk voor MS-Windows-klanten?

Inline dan maar:

Het resultaat van tools/push_firmware :

tools/push_firmware

  • Analyzing ‘images/7590_07.59.all_freetz-ng-24663-96cb533a55_20241010-224704.image’ 

  • Product: Fritz_Box_HW226 (FRITZ!Box 7590)
  • Using dos2unix binary: tools/dos2unix
  • Using tar binary: tools/tar-gnu
  • Using ftp binary: tools/ftp
  • Target host: 192.168.178.1
  • Outgoing IP: 192.168.178.20
  • Flash mode: ram-boot
  • Allowed memory size: 208 MB
  • Designated linux_fs_start:

!!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!!
!!! THERE IS NO WARRANTY AT ALL !!! USE AT YOUR OWN RISK !!!

  • Are you sure, that you want to flash this file to the device?
    images/7590_07.59.all_freetz-ng-24663-96cb533a55_20241010-224704.image
    Proceed? (y/[n]) y

  • You should now reboot your box (192.168.178.1). Waiting for shut down.
    Switch off, if reboot is not detected because it happens too quickly.
    Some newer bootloader versions allow to flash on power-cycle only.
    


  • No reply from box, assuming switch-off or restart. Trying to re-detect box.
    Waiting 
 found!

  • Reading ‘env’ file to /tmp/freetz_env_iCL
    Connected to 192.168.178.1.
    220 ADAM2 FTP Server ready
    331 Password required for adam2
    230 User adam2 successfully logged in
    Remote system type is AVM.
    Debugging on (debug=1).
    —> TYPE I
    200 Type set to BINARY
    —> SYST
    215 AVM EVA Version 1.3258 0x0 0x46409
    —> MEDIA SDRAM
    200 Media set to MEDIA_SDRAM
    local: /tmp/freetz_env_iCL remote: env
    —> PASV
    227 Entering Passive Mode (192,168,178,1,12,20)
    —> RETR env
    150 Opening BINARY data connection
    Timeout!!!
    ProductID: Fritz_Box_HW226
    HWRevision: 226
    HWSubRevision: 4
    memsize: 0x08000000
    linux_fs_start: 0

  • MAPSTART=0x80000000

  • FULLSIZE=0x0D000000 (208 MB)

  • MAPLIMIT=0x8d000000

  • FILESIZE=0x024ee900 (~36 MB)

  • ALIBYTES=0x00000000 (~0 kB)

  • FREESIZE=0x0ab11700 (~171 MB)

  • MTDSTART=0x8ab11700

  • Detected linux_fs_start: ‘0’

  • Designated linux_fs_start: 1

  • Box is back up again, initiating transfer.

Connected to 192.168.178.1.
220 ADAM2 FTP Server ready
331 Password required for adam2
230 User adam2 successfully logged in
Remote system type is AVM.
Debugging on (debug=1).
—> TYPE I
200 Type set to BINARY
—> MEDIA SDRAM
200 Media set to MEDIA_SDRAM
—> SETENV memsize 0x0ab11700
200 SETENV command successful
—> SETENV kernel_args_tmp mtdram1=0x8ab11700,0x8d000000
200 SETENV command successful
local: /tmp/freetz_rs2/ramboot.flash remote: 0x8ab11700 0x8d000000
—> PASV
227 Entering Passive Mode (192,168,178,1,12,25)
—> STOR 0x8ab11700 0x8d000000
150 Opening BINARY data connection
226 Transfer complete
38725888 bytes sent in 7.53 secs (4.9056 MB/s)
—> SETENV linux_fs_start 1
200 SETENV command successful
—> QUIT
221 Thank you for using the FTP service on ADAM2

done

Dit doet upload naar sdram:

Ik moet iets meer documentatie lezen, denk ik.

ADAM2 commands: TinyFTP - Network-Protocols - BoxMatrix

Ik heb nog geen Freetz op de Freedom Fritzbox :frowning:

Vreemd die timeout en dat 128MB memory wordt gemeld

In mijn (7590) techsupport staat: memsize 0x20000000 (= 512MB) gerapporteerd.

VroegĂ»h wel’s gespeeld en na recovery in/naar AVM mode om daarna op een 7360, OpenWrt er op te zetten. Hiervoor moest eerst een power-on-reset worden gedaan om daarna - via het adam-mechanisme - de andere firmware er op te krijgen.
tldr; dus in twee stappen: eerst ftp AVM mode, power-off-on en daarna de ftp van de andere firmware.

1 like

Dit lijkt erg op:
able to flash new image through Freetz interface, but not anymore with tools/push_firmware

Uit de push_firmware help info:

-mem Only ram-boot and fit-boot mode: Usable ram size in MB of your device.
Without this parameter, the default of 208 MB (FIT: 384) will be used.
Use ‘0’ to detect and use all available ram.

Dat werkte wel goed: nu Freetz-NG met Fritz OS 7.59 op de 7590 :slight_smile:

Hier is de push_firmware output:

tools/push_firmware -mem 0 

 * Analyzing 'images/7590_07.59.all_freetz-ng-24663-96cb533a55_20241010-224704.image' ... 
 * Product: Fritz_Box_HW226 (FRITZ!Box 7590)
 * Using dos2unix binary: tools/dos2unix
 * Using tar binary: tools/tar-gnu
 * Using ftp binary: tools/ftp
 * Target host: 192.168.178.1
 * Outgoing IP: 192.168.178.20
 * Flash mode: ram-boot
 * Allowed memory size: <detect>
 * Designated linux_fs_start: <other>

 !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!! WARNING !!!
 !!!  THERE IS NO WARRANTY AT ALL !!! USE AT YOUR OWN RISK   !!!

 * Are you sure, that you want to flash this file to the device?
   images/7590_07.59.all_freetz-ng-24663-96cb533a55_20241010-224704.image
   Proceed? (y/[n]) y

 * You should now reboot your box (192.168.178.1). Waiting for shut down.
   Switch off, if reboot is not detected because it happens too quickly.
   Some newer bootloader versions allow to flash on power-cycle only.
   ...........................................................
 * No reply from box, assuming switch-off or restart. Trying to re-detect box.
   Waiting ................................................... found!

 * Reading 'env' file to /tmp/freetz_env_Lfr
Connected to 192.168.178.1.
220 ADAM2 FTP Server ready
331 Password required for adam2
230 User adam2 successfully logged in
Remote system type is AVM.
Debugging on (debug=1).
---> TYPE I
200 Type set to BINARY
---> SYST
215 AVM EVA Version 1.3258 0x0 0x46409
---> MEDIA SDRAM
200 Media set to MEDIA_SDRAM
local: /tmp/freetz_env_Lfr remote: env
---> PASV
227 Entering Passive Mode (192,168,178,1,12,6)
---> RETR env
150 Opening BINARY data connection
Timeout!!!!!!!!!!!!!!!!!!
   ProductID:            Fritz_Box_HW226
   HWRevision:           226
   HWSubRevision:        4
   memsize:              0x08000000
   linux_fs_start:       1

 * Detected memsize: '0x08000000' (~128 MB)

 * MAPSTART=0x80000000
 * FULLSIZE=0x08000000   (128 MB)
 * MAPLIMIT=0x88000000
 * FILESIZE=0x024ee900   (~36 MB)
 * ALIBYTES=0x00000000   (~0 kB)
 * FREESIZE=0x05b11700   (~91 MB)
 * MTDSTART=0x85b11700

 * Detected linux_fs_start: '1'
 * Designated linux_fs_start: 0

 * Box is back up again, initiating transfer.

Connected to 192.168.178.1.
220 ADAM2 FTP Server ready
331 Password required for adam2
230 User adam2 successfully logged in
Remote system type is AVM.
Debugging on (debug=1).
---> TYPE I
200 Type set to BINARY
---> MEDIA SDRAM
200 Media set to MEDIA_SDRAM
---> SETENV memsize 0x05b11700
200 SETENV command successful
---> SETENV kernel_args_tmp mtdram1=0x85b11700,0x88000000
200 SETENV command successful
local: /tmp/freetz_Wst/ramboot.flash remote: 0x85b11700 0x88000000
---> PASV
227 Entering Passive Mode (192,168,178,1,12,10)
---> STOR 0x85b11700 0x88000000
150 Opening BINARY data connection
226 Transfer complete
38725888 bytes sent in 7.54 secs (4.8954 MB/s)
---> SETENV linux_fs_start 0
200 SETENV command successful
---> QUIT
221 Thank you for using the FTP service on ADAM2

done

Ik probeerde via ftp “quote REBOOT”, maar dat lijkt niet genoeg. Stekker er uit en weer er in hielp wel.

1 like

OK, dus ook hier tijdens/voor FTP een tussentijdse power-on.

Leuk dat ‘Freetz’ hier kan draaien wat nog (steeds) niet wegneemt dat de AVM bende, buiten hardware, closed source is en je als gebruiker niet kunt vaststellen wat tijdens normaal gebruik eyes-wide-shut gebeurd of wordt vastgelegd.

De “Freetz” modus opent wel de mogelijkheid om het ding fysiek te bricken door het Nand schoon te vegen. Hierna kan waarschijnlijk alleen nog via de JTAG methode, connectors solderen, er nog firmware op worden gezet.
NB: Nand residu uitlezen kan worden voorkomen door het Nand een paar keer (of 10) randomised te herschrijven.

NB: ding bricken vanuit AVM boot-modus maakt niet zeker dat de data daadwerkelijk weg is, hooguit dat het niet - meer - op te starten valt.

Ik draai zelf ook OpenWRT en ben blij met de €2 per maand reductie van Freedom omdat ik niets huur.

Er zijn al verschillende discussies geweest over dat mensen nog meer van Freedom verwachten op dat vlak en ik geloof dat we ook wat community leden kwijt zijn geraakt om die reden :cry:

Hopelijk ontstaan er aan de Freedom kant in de toekomst meer mogelijkheden om een apparaat met meer vrijheden aan te bieden, maar voorlopig kan je het beste kijken naar de topics rond OpenWRT. Ik zal proberen te reageren als ik enige nuttige hulp kan bieden.

In de tussentijd zou ik in dit topic de focus op Freetz-NG houden en het spelen met de ADAM2 ftp server, want daarmee kom je het dichtst bij het doel van de oorspronkelijke vraag.

@hbswn, mooi dat je het werkend hebt! @Drs_W ik ben ook benieuwd naar jouw voortgang :wink:

Als je alleen mtd5 en mtd6 overschrijft, zijn alle persoonlijke data weg en kun je via de ADAM2 bootloader gewoon weer een standard Fritz OS installeren.

cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00800000 00040000 "kernel"
mtd1: 00100000 00040000 "urlader"
mtd2: 00400000 00040000 "nand-tffs"
mtd3: 00800000 00040000 "reserved-kernel"
mtd4: 1eb00000 00040000 "ubi"
mtd5: 02c0d000 0003f000 "filesystem"
mtd6: 02c0d000 0003f000 "reserved-filesystem"
mtd7: 00237000 0003f000 "config"
mtd8: 17e2f000 0003f000 "nand-filesystem"
root@fritz:/var/mod/root# uname -a
Linux fritz.box 4.9.325 #1 SMP 2023-09-26 mips GNU/Linux

Weet je zeker dat hier niet ook persoonlijke data in zit? Of heb je getest met die twee schoonmaken en herinstalleren?

Ik moet het nog goed bekijken.

Hans

1 like

Het ophalen van flash partities kon ( uiteraard ) ook gewoon met ftp:

Flash-Partitionen von außen mit FTP sichern

( met ‘root’ shell toegang kon ik ze eenvoudig naar een USB-stick kopiĂ«ren )

Kopie van /dev/mtd5 en /dev/mtd6 gemaakt, kopie gemount en doorzocht op ‘freetz’.

root@fritz:/var/tmp/x# find . -type f -iname \*freetz\*
./etc/.freetz-ng-version
./etc/.freetz-version
./etc/freetz_info.cfg
./usr/mww/cgi-bin/freetz.cgi
./usr/share/style/mod/freetz-conf.css
./usr/www/cgi-bin/freetz_status

root@fritz:/var/tmp/x# find . -type f -print0 | xargs -0 grep -lwi freetz
. . .
# (  61 files, niet zo spannend )

mtd5 bevat ‘freetz’, mtd6 niet (dus die laatste is originele AVM-versie )

Het zou interessanter zijn om (in mtd6) de NANDs die niet in het file system zichtbaar zijn, te doorzoeken.

zijn die niet te mounten (en daarna te bekijken) ?

Kun je ongebruikte blocks mounten?

Het decoderen van niet-gebruikte blocks zal niet eenvoudig zijn, denk ik.

file mtd6
mtd6: Squashfs filesystem, big endian, version 4.0, xz compressed, 30949496 bytes, 11596 inodes, blocksize: 65536 bytes, created: Fri Dec 25 05:04:56 1970

xz-compressed file system, lijkt me niet eenvoudig daar data uit te halen als je de meeste blocks mist.

Ik zie alleen 0xFF bytes in die file. ( bladeren met ‘beav’ )

file mtd7   
mtd7: ISO-8859 text, with very long lines (65536), with no line terminators
1 like

Oplossing?

Wissen van reserve flash partition:

# 0x02C0D000 = 11277 × 4096
root@fritz:~# time dd if=/dev/urandom of=/dev/mtd6 count=11277 bs=4k
11277+0 records in
11277+0 records out
real    0m 26.41s
user    0m 0.01s
sys     0m 26.26s

Dan opnieuw Freetz installeren: gaat automagisch naar mtd6
Dan mtd5 overschrijven.

Blijft natuurlijk de vraag of er nog ergens iets staat in andere partities.

1 like

Dat zag er even was ernstig uit: ik wilde de random data van mtd6 kopiëren, maar dat leverde nul bytes op:

root@fritz:~# dd if=/dev/mtd6 of=/var/media/ftp/USB-SanDisk3-2Gen1-03/mtd6 count
=11277 bs=4k
0+0 records in
0+0 records out

Maar nieuwe Freetz install werkte en ging inderdaad naar mtd6, gevolgd door reboot. Daarna kon ik wel weer mtd6 kopiëren.

Zoals verwacht is nu mtd5 het reserve file system:

root@fritz:/var/mod/root# cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00800000 00040000 "reserved-kernel"
mtd1: 00100000 00040000 "urlader"
mtd2: 00400000 00040000 "nand-tffs"
mtd3: 00800000 00040000 "kernel"
mtd4: 1eb00000 00040000 "ubi"
mtd5: 02c0d000 0003f000 "reserved-filesystem"
mtd6: 02c0d000 0003f000 "filesystem"
mtd7: 00237000 0003f000 "config"
mtd8: 17e2f000 0003f000 "nand-filesystem"

Nu het vorige fs overschrijven met random data:

root@fritz:/var/mod/root# time dd if=/dev/urandom of=/dev/mtd5 count=11277 bs=4k
11277+0 records in
11277+0 records out
real    0m 26.32s
user    0m 0.02s
sys     0m 26.07s

Dan ook maar de reserve kernel overschrijven:

# 0x00800000 = 8 x 1M
root@fritz:/var/mod/root# time dd if=/dev/urandom of=/dev/mtd0 count=8 bs=1M
8+0 records in
8+0 records out
real    0m 4.93s
user    0m 0.00s
sys     0m 4.88s

Freetz vertelt me wel, wat het doet:

update action flash at '/var/updatestore/update_action_flash'
reset linux_fs_start to booted_slot 1 before modifying other_slot 0...
Erase mtd partitions 0 and 5 ...
info 0x0
{mtd_info} type 0x4
{mtd_info} size 0x800000
{mtd_info} erasesize 0x40000
{mtd_info} writesize 0x1000
{mtd_info} oobsize 0x80
[main] exit error 0
info 0x0
{mtd_info} type 0x7
{mtd_info} size 0x2c0d000
{mtd_info} erasesize 0x3f000
{mtd_info} writesize 0x1000
{mtd_info} oobsize 0x0
[main] exit error 0
Copy kernel image...
info 0x0
{mtd_info} type 0x4
{mtd_info} size 0x800000
{mtd_info} erasesize 0x40000
{mtd_info} writesize 0x1000
{mtd_info} oobsize 0x80

Het ubi file system:

/dev/ubi0_3 on /var/media/ftp type ubifs (rw,sync,relatime)

zou iets kunnen bewaren:

root@fritz:/var/mod/root# find /var/media/ftp -type f
/var/media/ftp/FRITZ/rrd/dev_guest.rrd
/var/media/ftp/FRITZ/rrd/dsliface_iptv.rrd
/var/media/ftp/FRITZ/rrd/ethgstats.rrd
/var/media/ftp/FRITZ/rrd/memory.rrd
/var/media/ftp/FRITZ/rrd/onlinemonitor0.rrd
/var/media/ftp/FRITZ/rrd/cpuusage.rrd
/var/media/ftp/FRITZ/rrd/dev_lan.rrd
/var/media/ftp/FRITZ/rrd/local.rrd
/var/media/ftp/FRITZ/rrd/dsliface_internet.rrd
/var/media/ftp/FRITZ/rrd/prio.rrd
/var/media/ftp/FRITZ/rrd/temps.rrd
/var/media/ftp/FRITZ/.mount_reserve
/var/media/ftp/FRITZ/voicebox/config
/var/media/ftp/FRITZ/mediabox/fritznasdb_part.db3
/var/media/ftp/FRITZ/mediabox/.start_indexation.mp3

Ik zag de mounts van mijn USB-stick daar.

# 98787 was iets te veel:
root@fritz:/var/media/ftp# time dd if=/dev/urandom of=random.bin count=98787 bs=4k
dd: error writing 'random.bin': No space left on device
93285+0 records in
93284+0 records out
Command exited with non-zero status 1
real    28m 13.35s
user    0m 0.56s
sys     27m 30.19s

root@fritz:/var/mod/root# df /var/media/ftp/
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/ubi0_3             363820    363812         0 100% /var/media/ftp

Meeste zal wel overschreven zijn.