PDA

View Full Version : D-Link DVA-5592 rev. HW A1 - Modem VDSL2 - Wi-Fi 802.11ac - Firmware mod


Bovirus
06-06-2018, 07:22
- Scopo di questo thread

Scopo di questo thread è di discutere espressamente ed esclusivamente di firmware modificati per il modem

D-Link DVA-5592 rev. HW A1

Questo thread non si occupa di altre richieste non relative ai firmware mod per il modem D-Link DVA-5592.

Per questo scopo esiste il thread generale per il modem D-Link DVA-5592 rev. HW A1

D-Link DVA-5592 revisione hardware A1 - Thread ufficiale (https://www.hwupgrade.it/forum/showthread.php?t=2842208)


- Foto interne modem - PIN console seriale

Thanks by palmerpalm

Tramite questo tool è possibile

- visualizzare la password del VOIP
- abilitare i menu nascosti
- abilitare upgrade/downgrade del firmware

Foto interne modem - PIN console seriale (https://www.hwupgrade.it/forum/showpost.php?p=45641729&postcount=31)


- adbtools2 - Tool per conversione file binario configurazione

thanks to palmerpalm (autore di adbtoosl2)

adbtools2 - info (https://www.hwupgrade.it/forum/showpost.php?p=45589624&postcount=9)

adbtools2 - Sorgenti (Github) (https://github.com/digiampietro/adbtools2)

adbtools2 - Download (Github) (https://github.com/digiampietro/adbtools2/archive/master.zip)

adbtools2 - Modalità d'uso (https://www.hwupgrade.it/forum/showpost.php?p=45662005&postcount=3301)


- Licenza Creative Commons

Il contenuto di questo post è rilasciato con licenza

Creative Commons Attribution-Noncommercial-Share Alike 2.5 (http://creativecommons.org/licenses/by-nc-sa/2.5/it/)

Bovirus
06-06-2018, 07:22
- Come diventare root nel modem

Thanks by palmerpalm

Come diventare root nel modem (https://www.hwupgrade.it/forum/showpost.php?p=45671691&postcount=50)


- Foto scheda modem

Thanks by palmerpalm

Foto by palmerpalm (https://www.hwupgrade.it/forum/showpost.php?p=45641729&postcount=31)

- Motherboard modem

Motherboard vista da sopra (http://va.ler.io/myfiles/dva/front.jpg)
Motherboard vista da sotto (http://va.ler.io/myfiles/dva/retro.jpg)

- PIN console seriale

Particolare dei pin dove è possibile collegare una seriale a livelli TTL.
È necessario saldare dei pin per connettere un cavetto seriale, di quelli che di solito vengono venduti per Arduino.
Si potrebbero avere difficoltà a rimuovere lo stagno dalla piazzola GND.
Da notare che le due strisce hanno gli stessi segnali, etichettati nello stesso modo, ma in sequenza diversa:

PIN console seriale (http://va.ler.io/myfiles/dva/pins.jpg)

- Particolari chip

Particolare del chip BCM8303 (http://va.ler.io/myfiles/dva/chip-bcm.jpg)

Particolare del chip BCM43217 (http://va.ler.io/myfiles/dva/chip-broadcom.jpg)

Particolare del chip MXIC (http://va.ler.io/myfiles/dva/chip-mxic.jpg)

Particolare del chip ZL88801 (http://va.ler.io/myfiles/dva/chip-zl.jpg)


- Imposatzioni Wifi 802.11ac - banda 160Mhz

thanks to hc900

Menu interfaccia fisica WiFi - Impostare Canale su Auto e larghezza di banda su 160MHz:

http://192.168.1.1/ui/dboard/settings/netif/wradio?if=2&backto=settings/phyif

Rete utente - Controllo delle velocità sui vari dispositivi WiFi

http://192.168.1.1/ui/dboard/homenet


- Licenza Creative Commons

Il contenuto di questo post è rilasciato con licenza

Creative Commons Attribution-Noncommercial-Share Alike 2.5 (http://creativecommons.org/licenses/by-nc-sa/2.5/it/)

..

lionhe
06-06-2018, 08:11
Grazie a Bovirus per aver aperto questo thread.
A giudicare da quanto riportato in alcuni post del thread principale sul DVA-5592 al momento non ci sono informazioni sufficiente per modificare il firmware. Però mi sembra, pur non essendo un esperto, che ci sia del margine per sbloccare funzionalità che apparentemente sono state solo rese non accessibili dall'interfaccia web.

Proseguendo la discussione con @BancoDeiPugni, gli vorrei chiedere se nel file system, che con binwalk si riesce ad aprire, esiste una directory
/etc/config
in cui ci sono i file di configurazioni tipo quelli di openwrt.
Da qualche parte avevo letto che il firmware del DVA-5592 era parzialmente basato su openwrt. Magari vedendo come sono fatti i file di configurazione si può riuscire a capire come "tradurre"/adattare le guide di openwrt a questo modem.

LionHe

Robertof_
06-06-2018, 10:27
Ciao ragazzi,

anche io mi sono messo a dare un'occhiata al FW di questo modem.
Tramite binwalk si riescono ad estrarre:

tre partizioni JFFS (una di boot che contiene il kernel, la seconda con la struttura base del sistema e la terza con ulteriori file misti)
un archivio compresso che all'interno contiene una cartella "boards", nella quale si trovano i seguenti file:
multi-boards-963138_VD5920.ZL88801_0.1_bcm416l05.ipk
multi-boards-963138_VD5920.ZL88801_0.1_bcm416l05.ipk.md5sum
multi-boards-963138_VP5920.ZL88801_0.1_bcm416l05.ipk
multi-boards-963138_VP5920.ZL88801_0.1_bcm416l05.ipk.md5sum
multi-boards-963138_VT5920.ZL88801_0.1_bcm416l05.ipk
multi-boards-963138_VT5920.ZL88801_0.1_bcm416l05.ipk.md5sum
multi-boards-963138_VU5920.ZL88801_0.1_bcm416l05.ipk
multi-boards-963138_VU5920.ZL88801_0.1_bcm416l05.ipk.md5sum
yaps-cm-optical_0.1_bcm416l05.ipk
yaps-cm-optical_0.1_bcm416l05.ipk.md5sum
Inoltre, ci sono le cartelle:
963138_VD5920.ZL88801
963138_VP5920.ZL88801
963138_VT5920.ZL88801
963138_VU5920.ZL88801
Che contengno all'interno di una subdir "pkg" un collegamento simbolico ad uno dei file ipk sopracitati.


Per quanto riguarda quel che si riesce a determinare dal filesystem, la shell utilizzata è "clish", che è open source: http://clish.sourceforge.net/
E si configura tramite file XML + script, che si trovano nella seconda partizione al path /etc/clish. Cosa interessante è che ci sono due config XML, una presente in prod (prod/startup.xml) che contiene comandi in più - tra cui il comando "system shell" che avvia una shell, e la config standard (senza il comando "system shell") che invece è startup.xml.

Per il resto sembra che nel router ci sia una parte di dati non inclusa nel firmware e che venga estratta in /tmp, ad esempio /etc/passwd è un symlink a /tmp/passwd, stessa cosa con diversi altri file.

Ultima cosa da notare è che questo firmware condivide certamente somiglianze e prende in prestito cose da OpenWrt, ho trovato diversi file con l'header di OpenWrt e pare ci sia anche il suo gestore di pacchetti in /bin!

EDIT: il firmware è "YAPS", ecco cosa c'è in /etc/banner:
___ ___ ___ ___
|\__\ /\ \ /\ \ /\ \
|:| | /::\ \ /::\ \ /::\ \
|:| | /:/\:\ \ /:/\:\ \ /:/\:\ \
|:|__|__ /::\~\:\ \ /::\~\:\ \ _\:\~\:\ \
/::::\__\ /:/\:\ \:\__\ /:/\:\ \:\__\ /\ \:\ \:\__\
/:/~~/~ \/__\:\/:/ / \/__\:\/:/ / \:\ \:\ \/__/
/:/ / \::/ / \::/ / \:\ \:\__\
\/__/ /:/ / \/__/ \:\/:/ /
/:/ / \::/ /
\/__/ \/__/ r41358.07b1b3a7
..................................................................
yet another purposeful solution by Advanced Digital Broadcast SA
..................................................................

EDIT: sembra essere un firmware molto simile a quello del ADB DV2200 (https://www.hwupgrade.it/forum/showthread.php?t=2640748)

lionhe
06-06-2018, 12:46
Nessuno ha una foto della board interna? Magari siamo fortunati e c'e' un accesso seriale, chissà.
Ho provato a cercare in rete, ma non sembra che molti provider lo adottino (ancora). C'e' una menzione di un modem ADB simile presso un provider serbo, mi pare.

@robertof_
C'e' la directory \etc\config\?

LionHe

Bovirus
06-06-2018, 12:52
@lionhe

La console seriale secondo me c'è sicuramente (c'è inq uasi tutti i modem).

bancodeipugni
06-06-2018, 19:52
Grazie a Bovirus per aver aperto questo thread.
A giudicare da quanto riportato in alcuni post del thread principale sul DVA-5592 al momento non ci sono informazioni sufficiente per modificare il firmware. Però mi sembra, pur non essendo un esperto, che ci sia del margine per sbloccare funzionalità che apparentemente sono state solo rese non accessibili dall'interfaccia web.

Proseguendo la discussione con @BancoDeiPugni, gli vorrei chiedere se nel file system, che con binwalk si riesce ad aprire, esiste una directory
/etc/config
in cui ci sono i file di configurazioni tipo quelli di openwrt.
Da qualche parte avevo letto che il firmware del DVA-5592 era parzialmente basato su openwrt. Magari vedendo come sono fatti i file di configurazione si può riuscire a capire come "tradurre"/adattare le guide di openwrt a questo modem.

LionHe
no non c'e'

c'e' una base openwrt o meglio alcuni pacchetti sembrano parenti ma ci sono molte cose diverse

basti pensare che l'interfaccia web è proprietaria e non luci (probabilmente una versione a partire da ma non luci)

comunque dal titolo della discussione sembra che esistano firmware mod invece uno entra e resta deluso perchè trova solo chiacchiere preliminari contenuti zero ancora :asd:
andrebbe modificato con "prove di modifica al firmware" perchè tanto dalla base di partenza della wind non ci si puo' schiodare :fagiano:

bancodeipugni
06-06-2018, 19:54
Nessuno ha una foto della board interna? Magari siamo fortunati e c'e' un accesso seriale, chissà.
Ho provato a cercare in rete, ma non sembra che molti provider lo adottino (ancora). C'e' una menzione di un modem ADB simile presso un provider serbo, mi pare.

@robertof_
C'e' la directory \etc\config\?

LionHe

l'adb è quello da cui questo router discerne come origine

tuttavia ne di quello ne di questo esiste una development board :rolleyes:

io volevo partire dalla pagina di apps per installare applicativi sul router
e da li provare ad inoculare delle modifiche per cominciare intanto a sbloccare la console: dopo da li si puo' partire, aggiungere cose modificarne altre...

palmerpalm
06-06-2018, 22:20
Cercando su internet mi ero imbattuto in un tool per convertire il file binario del backup della configurazione in file di testo in formato xml dove era possibile osservare una serie di impostazioni, compreso lo username e la password del VOIP, questo anche con il firmware più recente come il DVA-5592_A1_WI_20180405.

Ho fatto il fork di quel tool su github e penso di averlo perfezionato, è disponibile alla url https://github.com/digiampietro/adbtools2 sia in formato sorgente Python che in "compilato" .exe da poter far girare su Windows senza dover installare Python, i moduli aggiuntivi, il compilatore di Microsoft ecc.

Le istruzioni sono sul sito, in inglese perché così era il tool da cui sono partito e che ho modificato, ma in sostanza scaricando il file zip da github, decomprimendo tutto in una directory, mettendo nella stessa directory il backup della configurazione del firmware, si possono ottenere i due file .xml di configurazione che lo compongono con un comando simile al seguente:


d:\adbtools2> confbin2xml.exe download.pem upload.pem config_full_DVA-5592_2018-06-04T222624.bin conf.xml confcpe.xml


I due file che si ottengono sono conf.xml e confcpe.xml

In teoria dovrebbe essere possibile fare il percorso inverso, ossia modificare in modo consistente conf.xml e confcpe.xml e poi generare il file binario da poter caricare come nuova configurazione sul router, in modo da poter impostare parametri non disponibili normalmente da interfaccia web.

Nei prossimi giorni ci proverò a scrivere uno script che faccia questo.

Nel frattempo stavo analizzando il formato del firmware del router per vedere se fosse possibile "decomprimerlo" modificarlo e "ricomprimerlo" in un formato che possa piacere al router, ho però visto che il firmware ufficale sembra essere firmato con una firma digitale che viene verificata dall'eseguibile `/usr/sbin/sig_verify` che utilizza la libreria libgcrypt (https://www.gnupg.org/documentation/manuals/gcrypt/).

Da notare che alcuni eseguibili presenti nel file system del router, per architettura ARM Cortex-A9, possono essere fatti girare, con opportuni "chroot" su un RaspberryPI 2 che ha una architettura di processore simile ma, ovviamente, un hardware molto diverso.

bancodeipugni
06-06-2018, 22:36
era il tool per adb che avevo postato tempo fa provato a usare: bene se si riesce a far andare anche su questo !

bisognerebbe trovare la maniera di installare pacchetti aggiuntivi
la toolchain probabilmente va bene una di quelle di linaro (guardando un binario si dovrebbe capire come è stato compilato se non l'hanno strippato)

lionhe
07-06-2018, 17:30
In effetti ci sono molte similitudini con il router di fastweb. Un utente aveva tratto queste informazioni

https://www.hwupgrade.it/forum/showpost.php?p=43008773&postcount=872

bancodeipugni
07-06-2018, 18:09
lanadmin non esiste come parola sul firmware
se non è dentro qualche binario chiuso...

palmerpalm
17-06-2018, 00:58
Ho continuato a lavorare su adbtools2 (https://github.com/digiampietro/adbtools2) ora è disponibile la versione preliminare del programma principale, "confedit", sia in python che in .exe da far girare su Windows.

Per utilizzarla è sufficiente scaricare il file zip dal sito cliccando sul pulsante "Clone or Download", estrarre l'intero zip in una directory e poi lanciare il confedit.exe.

Al momento le principali funzioni già implementate sono le seguenti:

"file -> Open bin config" per caricare il file di configurazione del router ottenuto dal menu della sua interfaccia web cliccando su "Configurazione -> Sistema -> Copia il file di configurazione". Tale file cifrato include al suo interno due file xml di configurazione: il principale e quello chiamato CPE

"file -> Save as xml config" per salvare la configurazione principale in chiaro, interessante da osservare con un editor di testo

"file -> Save as CPE xml config" per la salvare la configurazione CPE, anche questa è interessante da osservare con un editor di testo

E' possibile modificare a mano i due file xml e poi ricaricarli nel confedit.exe con gli appositi menù e poi scegliere "File -> Save as bin config" per salvare i due file in formato binario cifrato pronto per essere caricato sul router. Da notare che questa è una operazione potenzialmente pericolosa che potrebbe portare a malfunzionamenti del router se i file vengono modificati in modo da "non piacere" al router.

E' funzionante anche l'opzione "Info -> Show passwords" e "Info -> Save passwords" per mostrare o salvare su file di testo le passwords presenti nella configurazione, incluse le password VOIP, senza più, quindi, la necessità di fare il downgrade del firmware per scoprire la password del VOIP.

Le altre voci di menù ci sono tutte, ma non sono state ancora implementate, le implementerò nei prossimi giorni o settimane.

Eventuali commenti e/o segnalazioni di bachi e suggerimenti sono ovviamente benvenuti.

bancodeipugni
17-06-2018, 17:06
qualcun altro ha nelle impostazione dns dinamico dlinkdns.com anzichè dlinkddns.com che è il nome risolto corretto ?

perchè tramite questo tool si puo' modificare (si dovrebbe poter modificare)

lupodrillo
18-06-2018, 09:21
sto provando questo tool ma mi dice che non è compatibile con la ver di win in uso.
sto provando con win 7 x86

palmerpalm
18-06-2018, 09:48
sto provando questo tool ma mi dice che non è compatibile con la ver di win in uso.
sto provando con win 7 x86Il confedit.exe l'ho generato su una versione a 64bit di Windows 7. Vedo se riesco a generare la versione x86 (a 32 bit)


Inviato dal mio Moto G (5S) Plus utilizzando Tapatalk

lupodrillo
18-06-2018, 09:58
magari, mi e ci faresti un favore

palmerpalm
18-06-2018, 16:19
magari, mi e ci faresti un favoreHo messo la versione a 32 bit: confedit-x86.exe. Io non l'ho potuta provare su un Windows a 32 bit, ma dovrebbe andare. Fammi sapere

Inviato dal mio Moto G (5S) Plus utilizzando Tapatalk

Bovirus
18-06-2018, 16:32
@palmerplam

Grazie per la modifica.
Personalmente io nominerei nel repository github i file .exe in questo modo

confedit.exe - versione 32bit
confedit-x64.exe - versione 64bit

Questo è lo standard che si usa generalmente.

Ho aggiotnato il primo post mettendo anche il link per il downlaod del file zippato da Github.

lupodrillo
18-06-2018, 16:39
Ho messo la versione a 32 bit: confedit-x86.exe. Io non l'ho potuta provare su un Windows a 32 bit, ma dovrebbe andare. Fammi sapere

Inviato dal mio Moto G (5S) Plus utilizzando TapatalkGrazie mille, sei un grande. Appena rientro provo e faccio sapere.

Inviato dal mio LG-D855 utilizzando Tapatalk

palmerpalm
18-06-2018, 23:57
@palmerplam

Grazie per la modifica.
Personalmente io nominerei nel repository github i file .exe in questo modo

confedit.exe - versione 32bit
confedit-x64.exe - versione 64bit

Questo è lo standard che si usa generalmente.

Ho aggiotnato il primo post mettendo anche il link per il downlaod del file zippato da Github.

Ti ringrazio del suggerimento e del link per il download.

Alla fine ho scelto un approccio più radicale: tutti gli exe in formato 32bit (x86), così girano sia su Windows a 32 bit che su Windows a 64.

Inizialmente li avevo generati a 64bit involontariamente, perchè ho usato il PC dove avevo installato la versione a 64bit di Python3 e la generazione del .exe con pyinstaller non corrisponde ad una compilazione, ma ad un semplice impacchettamento in un singolo file dell'interprete python3, del sorgente e di tutti i moduli da esso utilizzato, quindi l'eseguibile diventa a 64 bit se l'installazione di python è a 64 bit.

Per generare il file a 32 bit ho installato python3 a 32 bit su un PC cui ho accesso e d'ora in poi genero i .exe da lì, così dovrebbero essere a 32 bit.

Nel frattempo ho praticamente completato il confedit.exe, implementando anche le modifiche al file bin come

Abilitazione di impostazioni normalmente non accessibili, sia via web che via telnet
Abilitazione dell'upgrade/downgrade del firmware
Fix per il nome sbagliato da dlinkdns a dlinkddns
Ovviamente dopo aver modificato occorre salvare il file .bin e poi caricarlo sul router


Alcuni dei comandi che vengono abilitati sul firmware di maggio sono i seguenti:


Restricted web urls

http://192.168.1.1/ui/dboard/settings/voip/commonnumberingplan
http://192.168.1.1/ui/dboard/diagnostics/mirroring
http://192.168.1.1/ui/dboard/settings/management/users
http://192.168.1.1/ui/dboard/settings/management/webgui/permissions
http://192.168.1.1/ui/dboard/settings/management/webgui/localacl
http://192.168.1.1/ui/dboard/settings/management/webgui/remoteacl
http://192.168.1.1/ui/dboard/settings/management/tr069
http://192.168.1.1/ui/dboard/settings/netif/wradio/reg
http://192.168.1.1/ui/dboard/confwizard

Restricted CLI commands

clish/configure/management/webGui
clish/system/upgrade/fw_upgr_permitted
clish/system/customerDefault EnableButtonbackToFactory



L'abilitazione consiste nel cambiare sul file CPE XML come da esempio seguente:


<PagePath>dboard/settings/management/tr069</PagePath>
<Origin>CPE</Origin>
<Permissions>0000</Permissions>


viene modificato in


<PagePath>dboard/settings/management/tr069</PagePath>
<Origin>CPE</Origin>
<Permissions>2221</Permissions>


Le pagine che ho trovato più interessanti sono quelle del tr069 e del port mirroring.

Ovviamente i cambiamenti al file di configurazione avvenuti all'esterno dell'interfaccia web potrebbero creare problemi di instabilità e malfunzionamenti del router e persino la rottura del router stesso. Io ho provato sul mio e non ho avuto inconvenienti, ma questo non garantisce niente riguardo ai router degli altri.

XIRE
19-06-2018, 08:11
@palmerplam

Grazie per la condivisione del tuo prezioso lavoro.

Nella lista delle password dal file di configurazione CPE mi compare anche questa:

Device/X_ADB_ParentalControl/ServiceProvider
Name: BluePrintData
Username: xxxxxxxx
Password: xxxxx
Url http://aws1.blueprintdata.com/urlreview/api/urlLookup.do?

mai impostata da me, siccome che una parte dello username è un nome di persona italiano, mi chiedo se è un'impostazione di default oppure se qualcuno a mia insaputa è entrato in configurazione nel router.
Grazie.

Bovirus
19-06-2018, 08:59
@palmerpalm

Garzie per il tuo lavoro.

Condivido la scelta di usare la sola versione del programma a 32bit che funziona senza problemi sia con sistemi a 32bit che a 64bit.

palmerpalm
19-06-2018, 09:07
@palmerplam

Grazie per la condivisione del tuo prezioso lavoro.

Nella lista delle password dal file di configurazione CPE mi compare anche questa:

Device/X_ADB_ParentalControl/ServiceProvider
Name: BluePrintData
Username: xxxxxxxx
Password: xxxxx
Url http://aws1.blueprintdata.com/urlreview/api/urlLookup.do?

mai impostata da me, siccome che una parte dello username è un nome di persona italiano, mi chiedo se è un'impostazione di default oppure se qualcuno a mia insaputa è entrato in configurazione nel router.
Grazie.

È presente di default su tutti i firmware. Immagino sia l'account usato da Wind per utilizzare quel sito che fornisce informazioni sulla tipologia del sito (pericoloso, porno, violento ecc.) Ai fini del "parental control"

Inviato dal mio Moto G (5S) Plus utilizzando Tapatalk

lupodrillo
19-06-2018, 09:27
Perfetto, funziona benissimo anche su x86 adesso.
grazie davvero.

bancodeipugni
19-06-2018, 16:56
funzioni nuove da inserire ?

oltre ad aggiungere dei provider di dns dinamico e correggere quelli inclusi (quello dlink è sbagliato)

palmerpalm
19-06-2018, 18:29
funzioni nuove da inserire ?

oltre ad aggiungere dei provider di dns dinamico e correggere quelli inclusi (quello dlink è sbagliato)

L'opzione per correggere il dlinkdns in dlinkddns è già inserita e funzionante su "confedit".

La funzione di aggiungere altri provider di dns dinamico è possibile implementarla, a patto che utilizzino uno dei protocolli già implementati dal router, ho visto che il più gettonato è chiamato "dyndns2", ma è implementato anche "zoneedit".

dlp
20-06-2018, 19:33
@palmerpalm
Gran lavoro. Bravo

palmerpalm
22-06-2018, 02:05
Di seguito la URL alla schermata della sequenza del boot del router catturata collegandomi alla porta seriale presente nella motherboard (piedini etichettati come IN, OUT, GND, VCC)

http://va.ler.io/myfiles/dva/boot-dva-5592.txt

qui metto solo una parte:


Base: 4.16_05_114353_121572_132983_136203_142485
CFE version 1.0.38-118.3-S for BCM963138 (32bit,SP,LE) generic
Build Date: Wed Apr 11 12:28:32 CEST 2018 (l.fornalczyk@quelo)
Copyright (C) 2000-2015 Broadcom Corporation.

Boot Strap Register: 0x7dfffc2f
Chip ID: BCM63136B0, ARM Cortex A9 Dual Core: 1000MHz
Total Memory: 268435456 bytes (256MB)
NAND ECC BCH-4, page size 0x800 bytes, spare size used 64 bytes
NAND flash device: , id 0xc2da block 128KB size 262144KB
pmc_init:PMC using DQM mode
Board IP address : 192.168.1.1:ffffff00
Host IP address : 192.168.1.100
Gateway IP address :
Run from flash/host/tftp (f/h/c) : f
Default host run file name : vmlinux
Default host flash file name : bcm963xx_fs_kernel
Boot delay (0-9 seconds) : 1
Boot image (0=latest, 1=previous) : 0
Default host ramdisk file name :
Default ramdisk store address :
Board Id (0-9) : 963138_VD5920
Number of MAC Addresses (1-32) : 10
Base MAC Address : 00:10:18:00:00:00
PSI Size (1-128) KBytes : 24
Enable Backup PSI [0|1] : 0
System Log Size (0-256) KBytes : 0
Auxillary File System Size Percent: 0
MC memory allocation (MB) : 4
TM memory allocation (MB) : 20
DHD 0 memory allocation (MB) : 0
DHD 1 memory allocation (MB) : 0
DHD 2 memory allocation (MB) : 0
WLan Feature : 0x00
Voice Board Configuration (0-1) : ZL88801
Partition 1 Size (MB) :
Partition 2 Size (MB) :
Partition 3 Size (MB) :
Partition 4 Size (MB) (Data) : 1MB

*** Press any key to stop auto run (1 seconds) ***
Auto run second count down: 0
Booting from latest image (address 0x07f00000, flash offset 0x07f00000) ...
new kernel image format
Verifying kernel signature...
Signature OK
Decompression LZMA Image OK!
Entry at 0x00008000
Starting program at 0x00008000
[ 0.000000] Booting Linux on physical CPU 0
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 3.4.11-rt19 (l.fornalczyk@quelo) (gcc version 4.5.4 20120306 (prerelease) (Linaro GCC 4.5-2012.03) ) #1 SMP PREEMPT Wed Apr 11 12:39:45 CEST 2018
[ 0.000000] CPU: ARMv7 Processor [414fc091] revision 1 (ARMv7), cr=10c53c7d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine: BCM963138
[ 0.000000] Ignoring unrecognised tag 0x41000603
[ 0.000000] bootconsole [earlycon0] enabled
[ 0.000000] Memory policy: ECC disabled, Data cache writealloc
[ 0.000000] creating a MT_MEMORY_NONCACHED device at physical address of 0x0fe00000 to virtual address at 0xcfe00000 with size of 0x200000 byte for DSL
[ 0.000000] creating a MT_MEMORY_NONCACHED device at physical address of 0x0ea00000 to virtual address at 0xcea00000 with size of 0x1400000 byte for RDPA tm
[ 0.000000] creating a MT_MEMORY_NONCACHED device at physical address of 0x0e600000 to virtual address at 0xce600000 with size of 0x400000 byte for RDPA mc
[ 0.000000] On node 0 totalpages: 58880
[ 0.000000] free_area_init_node: node 0, pgdat c034bde0, node_mem_map c1000000
[ 0.000000] DMA zone: 32 pages used for memmap
[ 0.000000] DMA zone: 0 pages reserved
[ 0.000000] DMA zone: 4064 pages, LIFO batch:0
[ 0.000000] Normal zone: 480 pages used for memmap
[ 0.000000] Normal zone: 54304 pages, LIFO batch:15
[ 0.000000] pmc_init:PMC using DQM mode
[ 0.000000] pmc_init:fe1e 3620361 4b004b
[ 0.000000] L310 cache controller enabled
[ 0.000000] l2x0: 16 ways, CACHE_ID 0x410000c9, AUX_CTRL 0x6a450000, Cache size: 524288 B
[ 0.000000] PERCPU: Embedded 7 pages/cpu @c1204000 s5344 r8192 d15136 u32768
[ 0.000000] pcpu-alloc: s5344 r8192 d15136 u32768 alloc=8*4096
[ 0.000000] pcpu-alloc: [0] 0 [0] 1
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 58368
[ 0.000000] Kernel command line: console=ttyS0,115200 earlyprintk debug root=mtd:rootfs_1 rw rootfstype=jffs2
[ 0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Memory: 230MB = 230MB total
[ 0.000000] Memory: 229596k/229596k available, 32548k reserved, 0K highmem
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] vmalloc : 0xd0800000 - 0xff000000 ( 744 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
[ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)
[ 0.000000] .text : 0xc0008000 - 0xc02f1d04 (2984 kB)
[ 0.000000] .init : 0xc02f2000 - 0xc030d4e0 ( 110 kB)
[ 0.000000] .data : 0xc030e000 - 0xc034c940 ( 251 kB)
[ 0.000000] .bss : 0xc034c964 - 0xc037fcac ( 205 kB)
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] Dump stacks of tasks blocking RCU-preempt GP.
[ 0.000000] NR_IRQS:256
[ 0.000000] Cortex A9 MPCORE GIC init
[ 0.000000] DIST at fc01f000, CPU_IF at fc01e100
[ 0.000000] map_hw_timer_interrupt,132: interrupt_id 96
[ 0.000000] map_hw_timer_interrupt,132: interrupt_id 97
[ 0.000000] map_hw_timer_interrupt,132: interrupt_id 98
[ 0.000000] map_hw_timer_interrupt,132: interrupt_id 99
[ 0.000000] sched_clock: 32 bits at 1kHz, resolution 1000000ns, wraps every 4294967295ms
[ 0.000000] console [ttyS0] enabled, bootconsole disabled
[ 0.000000] console [ttyS0] enabled, bootconsole disabled
[ 0.002000] Calibrating delay loop... 1980.41 BogoMIPS (lpj=990208)
[ 0.010000] pid_max: default: 32768 minimum: 301
[ 0.011000] Mount-cache hash table entries: 512
[ 0.012000] --Kernel Config--
[ 0.013000] SMP=1
[ 0.014000] PREEMPT=1
[ 0.015000] DEBUG_SPINLOCK=0
[ 0.016000] DEBUG_MUTEXES=0
[ 0.017000] Initializing cgroup subsys cpuacct
[ 0.018000] Initializing cgroup subsys devices
[ 0.019000] Initializing cgroup subsys freezer
[ 0.020000] CPU: Testing write buffer coherency: ok
[ 0.022000] Broadcom Logger v0.1 Apr 11 2018 12:39:38
[ 0.036000] Setting up static identity map for 0x271498 - 0x2714cc
[ 0.057000] CPU1: Booted secondary processor
[ 0.065000] CPU1: Unknown IPI message 0x1
[ 0.065000] Brought up 2 CPUs
[ 0.065000] SMP: Total of 2 processors activated (3971.07 BogoMIPS).
[ 0.086000] NET: Registered protocol family 16
[ 0.112000] bcm63xx_pcie: setting resistor calibration value to 0xa
[ 0.118000] bcm63xx_pcie: applying serdes parameters
[ 0.178000] PCIE port 0 SSC Disabled
[ 0.706000] PCIE port 0 link-up
[ 0.713000] PCIE port 0 SSC Enabled
[ 0.714000] PCI host bridge to bus 0000:00
[ 0.715000] pci_bus 0000:00: root bus resource [mem 0x90000000-0x9fffffff]
[ 0.716000] pci 0000:00:00.0: [14e4:6313] type 01 class 0x060400
[ 0.718000] pci 0000:00:00.0: PME# supported from D0 D3hot
[ 0.719000] PCI: bus0: Fast back to back transfers disabled
[ 0.720000] pci 0000:01:00.0: [14e4:a8db] type 00 class 0x028000
[ 0.721000] pci 0000:01:00.0: reg 10: [mem 0x00000000-0x00007fff 64bit]
[ 0.722000] pci 0000:01:00.0: supports D1 D2
[ 0.723000] pci 0000:00:00.0: Checking PCIe ASPM for vendor 14e4 device a8db
[ 0.726000] PCI: bus1: Fast back to back transfers disabled
[ 0.727000] pci 0000:00:00.0: BAR 8: assigned [mem 0x90000000-0x900fffff]
[ 0.728000] pci 0000:01:00.0: BAR 0: assigned [mem 0x90000000-0x90007fff 64bit]
[ 0.729000] pci 0000:00:00.0: PCI bridge to [bus 01-01]
[ 0.730000] pci 0000:00:00.0: bridge window [mem 0x90000000-0x900fffff]
[ 0.731000] PCI: enabling device 0000:00:00.0 (0140 -> 0143)
[ 0.755000] bcm63xx_pcie: setting resistor calibration value to 0xa
[ 0.761000] bcm63xx_pcie: applying serdes parameters
[ 0.821000] PCIE port 1 SSC Disabled
[ 1.348000] PCIE port 1 link-up
[ 1.355000] PCIE port 1 SSC Enabled
[ 1.356000] PCI host bridge to bus 0001:00
[ 1.357000] pci_bus 0001:00: root bus resource [mem 0xa0000000-0xafffffff]
[ 1.358000] pci 0001:00:00.0: [14e4:6313] type 01 class 0x060400
[ 1.359000] pci 0001:00:00.0: PME# supported from D0 D3hot
[ 1.360000] PCI: bus0: Fast back to back transfers disabled
[ 1.361000] pci 0001:01:00.0: [14e4:4365] type 00 class 0x028000
[ 1.362000] pci 0001:01:00.0: reg 10: [mem 0x00000000-0x00007fff 64bit]
[ 1.363000] pci 0001:01:00.0: reg 18: [mem 0x00000000-0x007fffff 64bit]
[ 1.364000] pci 0001:01:00.0: reg 20: [mem 0x00000000-0x000fffff 64bit pref]
[ 1.365000] pci 0001:01:00.0: supports D1 D2
[ 1.366000] pci 0001:00:00.0: Checking PCIe ASPM for vendor 14e4 device 4365
[ 1.367000] pci 0001:00:00.0: Disabling PCIe ASPM for vendor 14e4 device 4365
[ 1.368000] PCI: bus1: Fast back to back transfers disabled
[ 1.369000] pci 0001:00:00.0: BAR 8: assigned [mem 0xa0000000-0xa0bfffff]
[ 1.370000] pci 0001:00:00.0: BAR 9: assigned [mem 0xa0c00000-0xa0cfffff 64bit pref]
[ 1.371000] pci 0001:01:00.0: BAR 2: assigned [mem 0xa0000000-0xa07fffff 64bit]
[ 1.372000] pci 0001:01:00.0: BAR 4: assigned [mem 0xa0c00000-0xa0cfffff 64bit pref]
[ 1.373000] pci 0001:01:00.0: BAR 0: assigned [mem 0xa0800000-0xa0807fff 64bit]
[ 1.374000] pci 0001:00:00.0: PCI bridge to [bus 01-01]
[ 1.375000] pci 0001:00:00.0: bridge window [mem 0xa0000000-0xa0bfffff]
[ 1.376000] pci 0001:00:00.0: bridge window [mem 0xa0c00000-0xa0cfffff 64bit pref]
[ 1.377000] PCI: enabling device 0001:00:00.0 (0140 -> 0143)
[ 1.381000] bio: create slab <bio-0> at 0
[ 1.383000] usbcore: registered new interface driver usbfs
[ 1.384000] usbcore: registered new interface driver hub
[ 1.386000] usbcore: registered new device driver usb
[ 1.387000] bcmhs_spi bcmhs_spi.1: master is unqueued, this is deprecated
[ 1.388000] skb_free_task created successfully
[ 1.389000] gbpm_do_work scheduled
[ 1.389000] BLOG v3.0 Initialized
[ 1.397000] BLOG Rule v1.0 Initialized
[ 1.398000] Broadcom IQoS v0.1 Apr 11 2018 12:39:42 initialized
[ 1.399000] Broadcom GBPM v0.1 Apr 11 2018 12:39:42 initialized
[ 1.400000] NET: Registered protocol family 8
[ 1.401000] NET: Registered protocol family 20
[ 1.402000] Switching to clocksource timer_cs
[ 1.404000] NET: Registered protocol family 2
[ 1.405000] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 1.406000] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[ 1.407000] TCP bind hash table entries: 8192 (order: 4, 98304 bytes)
[ 1.408000] TCP: Hash tables configured (established 8192 bind 8192)
[ 1.409000] TCP: reno registered
[ 1.411000] UDP hash table entries: 128 (order: 0, 4096 bytes)
[ 1.412000] UDP-Lite hash table entries: 128 (order: 0, 4096 bytes)
[ 1.413000] NET: Registered protocol family 1
[ 1.416000] jffs2: version 2.2 (NAND) (SUMMARY) (ZLIB) (LZMA) (RTIME) (c) 2001-2006 Red Hat, Inc.
[ 1.417000] msgmni has been set to 448
[ 1.419000] io scheduler noop registered (default)
[ 1.423000] printk_dump_dev: read_boot_params - mem_size = 0
[ 1.424000] printk_dump_dev: error in init_persistent_buffer - Invalid memory size
[ 1.425000] printk_dump_dev: error in printk_dump_dev_init - failed to create persistent memory buffer
[ 1.426000] brd: module loaded
[ 1.428000] loop: module loaded
[ 1.429000] >> nand_flash_init - entry
[ 1.430000] Broadcom NAND controller (BrcmNand Controller)
[ 1.431000] mtd->oobsize=0, mtd->eccOobSize=0
[ 1.432000] NAND_CS_NAND_XOR=00000000
[ 1.434000] B4: NandSelect=40000001, nandConfig=26152300, chipSelect=0
[ 1.435000] brcmnand_read_id: CS0: dev_id=c2da9095
[ 1.436000] After: NandSelect=00000001, nandConfig=26152300
[ 1.437000] DevId c2da9095 may not be supported. Will use config info
[ 1.438000] Spare Area Size = 16B/512B
[ 1.439000] Block size=00020000, erase shift=17
[ 1.440000] NAND Config: Reg=26152300, chipSize=256 MB, blockSize=128K, erase_shift=11
[ 1.441000] busWidth=1, pageSize=2048B, page_shift=11, page_mask=000007ff
[ 1.442000] ECC level changed to 4
[ 1.443000] OOB size changed to 16
[ 1.444000] BrcmNAND mfg 0 0 UNSUPPORTED NAND CHIP 256MB on CS0
[ 1.445000]
[ 1.445000] Found NAND on CS0: ACC=c3840010, cfg=26152300, flashId=c2da9095, tim1=65324458, tim2=80000e54
[ 1.446000] BrcmNAND version = 0x80000700 256MB @00000000
[ 1.447000] brcmnand_scan: B4 nand_select = 00000001
[ 1.448000] brcmnand_scan: After nand_select = 00000001
[ 1.449000] handle_acc_control: default CORR ERR threshold 3 bits
[ 1.450000] ACC: 16 OOB bytes per 512B ECC step; from ID probe: 16
[ 1.451000] page_shift=11, bbt_erase_shift=17, chip_shift=28, phys_erase_shift=17
[ 1.452000] Brcm NAND controller version = 7.0 NAND flash size 256MB @10000000
[ 1.453000] ECC layout=brcmnand_oob_bch4_2k
[ 1.454000] brcmnand_scan: mtd->oobsize=64
[ 1.455000] brcmnand_scan: oobavail=35, eccsize=512, writesize=2048
[ 1.456000] brcmnand_scan, eccsize=512, writesize=2048, eccsteps=4, ecclevel=4, eccbytes=7
[ 1.457000] -->brcmnand_default_bbt
[ 1.458000] brcmnand_default_bbt: bbt_td = bbt_slc_bch4_main_descr
[ 1.459000] Bad block table Bbt0 found at page 0001ffc0, version 0x01 for chip on CS0
[ 1.460000] Bad block table 1tbB found at page 0001ff80, version 0x01 for chip on CS0
[ 1.461000] brcmnand_reset_corr_threshold: default CORR ERR threshold 3 bits for CS0
[ 1.462000] nand_read_bbt: Bad block at 0x013c0000
[ 1.463000] nand_read_bbt: Bad block at 0x0c1e0000
[ 1.464000] nand_read_bbt: Bad block at 0x0ddc0000
[ 1.465000] nand_read_bbt: Bad block at 0x0f320000
[ 1.466000] rescanning ....
[ 2.493000] ----- Contents of BBT -----
[ 2.494000] Bad block at 13c0000
[ 2.495000] Bad block at c1e0000
[ 2.496000] Bad block at ddc0000
[ 2.497000] Bad block at f320000
[ 2.498000] ----- END Contents of BBT -----
[ 2.502000] ***** Found YAPS PartitionSplit Marker at 0x080FFF00
[ 2.503000] Creating 8 MTD partitions on "brcmnand.0":
[ 2.504000] 0x000000000000-0x000000020000 : "CFE"
[ 2.506000] 0x000007f00000-0x000008100000 : "bootfs_1"
[ 2.508000] 0x000008100000-0x00000fbc0000 : "rootfs_1"
[ 2.510000] 0x000000020000-0x000007ce0000 : "upgrade"
[ 2.512000] 0x00000fbc0000-0x00000fdc0000 : "conf_fs"
[ 2.513000] 0x00000fdc0000-0x00000fe00000 : "conf_factory"
[ 2.515000] 0x00000fe00000-0x000010000000 : "bbt"
[ 2.517000] 0x000000000000-0x000010000000 : "flash"
[ 2.520000] PPP generic driver version 2.4.2
[ 2.521000] PPP BSD Compression module registered
[ 2.522000] PPP Deflate Compression module registered
[ 2.523000] NET: Registered protocol family 24
[ 2.524000] brcmboard: brcm_board_init entry
[ 2.525000] SES: Button Interrupt 0x2 is enabled
[ 2.526000] WIFI: Button Interrupt 0x1 is enabled
[ 2.527000] SES: LED GPIO 0x8014 is enabled
[ 2.555000] DYING GASP IRQ Initialized and Enabled
[ 2.556000] Serial: BCM63XX driver $Revision: 3.00 $
[ 2.557000] Magic SysRq with Auxilliary trigger char enabled (type ^ h for list of supported commands)
[ 2.558000] ttyS0 at MMIO 0xfffe8600 (irq = 64) is a BCM63XX
[ 2.559000] ttyS1 at MMIO 0xfffe8620 (irq = 65) is a BCM63XX
[ 2.560000] GACT probability NOT on
[ 2.561000] Mirror/redirect action on
[ 2.562000] u32 classifier
[ 2.563000] input device check on
[ 2.564000] Actions configured
[ 2.566000] TCP: cubic registered
[ 2.567000] Initializing XFRM netlink socket
[ 2.568000] NET: Registered protocol family 17
[ 2.569000] NET: Registered protocol family 15
[ 2.570000] 8021q: 802.1Q VLAN Support v1.8
[ 4.176000] VFS: Mounted root (jffs2 filesystem) on device 31:2.
[ 4.182000] Freeing init memory: 108K
init started: BusyBox v1.17.3 (2018-04-11 12:29:54 CEST)
init: setting virtual memory limit 16777216 -1

starting pid 235, tty '': '/etc/init.d/rcS S boot'



Maggiori dettagli in seguito, ho già fatto troppo tardi

palmerpalm
23-06-2018, 19:24
Ho verificato che è possibile accedere alla shell linux su tale router, ma con due grossi inconvenienti:

si deve passare alla modalità "factory mode", in questa modalità si perde la configurazione attuale ed il router non è opertivo per il WiFi e l'accesso a Internet. Per tornare alla normale operatività occorre uscire dal "factory mode"
si accede come utente normale e non come utente root, non si possono quindi visualizzare tutti i files oltre a non poterli modificare


per accedere alla shell si può procedere nel seguente modo:

1. salvare il file di configurazione del router, servirà quando si tornerà alla normale modalità operativa per ricaricare la nostra configurazione che, nel frattempo, sarà stata cancellata

2. entrare nella modalità "factory mode" con i seguenti comandi, da notare che "factory-mode" non viene auto-completato e non appare nell'elenco dei comandi disponibili:

DLINK# factory
DLINK(factory)# factory-mode

a questo punto il router si resetterà ed entrerà in modalità factory mode, in questa modalità la configurazione è stata resettata, ci sono un paio di reti WiFi dal nome strano, non è attivo il DHCP server per cui per connettersi al router è consigliato utilizzare il cavo ethernet ed impostare un indirizzo tipo 192.168.1.201, l'indirizzo del router è quello di default 192.168.1.1. In qualche caso può essere necessario resettare il router premendo il relativo pulsantino con un spillo. Il router rimane in factory mode.
3. a questo punto si può accedere alla shell con il comando "system shell":

valerio@ubuntu-hp:~$ telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
Login: admin
Password:

********************************************
* D-Link *
* *
* WARNING: Authorised Access Only *
********************************************

Welcome
DLINK# system shell


BusyBox v1.17.3 (2018-04-11 12:29:54 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/root $



Questa possibilità è dovuta al fatto che quando si entra in "factory mode" il file di configurazione della shell "clish" dell'utente admin diventa /etc/clish/prod/startup.xml invece della solito /etc/clish/startup.xml in quello di factory mode c'è la seguente configurazione che permette il "system shell":

<COMMAND help="system" name="system" />
<COMMAND help="enters system shell" name="system shell">
<ACTION>exec /bin/ash</ACTION>
</COMMAND>


Mentre la possibilità di entrare in "factory mode" la si scopre guardando il normale file startup.xml che include le seguenti righe di configurazione:

<COMMAND name="factory-mode" help="hidden">
<ACTION>
cmclient DUMPDM FactoryData /tmp/cfg/FactoryData.xml > /dev/null
nvramUpdate Feature 0x2 > /dev/null
cmclient REBOOT > /dev/null
</ACTION>
</COMMAND>


Per uscire dalla modalità "factory mode" e tornare alla normalità è necessario uscire dalla shell linux e dare il comando "restore default-setting":

/root $ exit
DLINK# restore default-setting
Restore default-setting ... and reboot
OK
DLINK#

Sembra che non succeda nulla, ma occorre aspettare qualche minuto ed il router fa il reboot tornando alla modalità normale. A questo punto sarà necessario ricaricare la configurazione salvata al punto 1, perchè il router sembra tornare alla modalità normale, ma con la configurazione di default e non quella che era stata impostata da noi.

palmerpalm
06-07-2018, 22:16
Vedo che questo thread langue, provo a ravvivarlo postando qualche foto della motherboard del router.

Motherboard vista da sopra: http://va.ler.io/myfiles/dva/front.jpg
http://va.ler.io/myfiles/dva/front.jpg

Motherboard vista da sotto: http://va.ler.io/myfiles/dva/retro.jpg
http://va.ler.io/myfiles/dva/retro.jpg

Particolare dei pin dove è possibile collegare una seriale a livelli TTL, è necessario saldare dei pin per connettere un cavetto seriale, di quelli che di solito vengono venduti per Arduino. Io ho solo avuto difficoltà a rimuovere lo stagno dalla piazzola GND pur mettendo al massimo il mio economico saldatore a temperatura regolabile. Da notare che le due strisce hanno gli stessi segnali, etichettati nello stesso modo, ma in sequenza diversa: http://va.ler.io/myfiles/dva/pins.jpg
http://va.ler.io/myfiles/dva/pins.jpg

Particolare del chip BCM8303: http://va.ler.io/myfiles/dva/chip-bcm.jpg
http://va.ler.io/myfiles/dva/chip-bcm.jpg

Particolare del chip BCM43217: http://va.ler.io/myfiles/dva/chip-broadcom.jpg
http://va.ler.io/myfiles/dva/chip-broadcom.jpg

Particolare del chip MXIC: http://va.ler.io/myfiles/dva/chip-mxic.jpg
http://va.ler.io/myfiles/dva/chip-mxic.jpg

Particolare del chip ZL88801: http://va.ler.io/myfiles/dva/chip-zl.jpg
http://va.ler.io/myfiles/dva/chip-zl.jpg

palmerpalm
06-07-2018, 22:39
In questi giorni ho fatto un po' di attività per cercare di avere una shell di root sul router, ma, finora, senza riuscirci. In particolare ho:

- estratto il file system del router dal file del firmware con binwalk e jefferson

- creato un ambiente di emulazione con processore armv7 cortex-a9 e ambiente linux analogo a quello presente nel router, dove far girare qualche programma presente nel router. L'ambiente di emulazione l'ho realizzato con buildroot ed emulato con QEMU

- ho analizzato gli script di upgrade del firmware per capire se era possibile modificare il firmware originale, ma ho visto che il firmware è firmato digitalmente e che tali script utilizzano il programma /usr/sbin/sig_verify che verifica la correttezza della firma digitale del firmware. sig_verify ha la chiave pubblica per la verifica in delle costanti dentro al codice (i due interi di grosse dimensioni, modulo ed esponente). Ho anche ricostruito la chiave pubblica e ricostruito la verifica con openssl

- ho verificato che i due interi di grosse dimensioni che costituiscono la chiave pubblica sono anche presenti nel bootloader CFE e nel package manager il che fa ritenere che sia digitalmente firmato sia il kernel che i singoli pacchetti aggiunti con il package manager, che mi pare abbia lo stesso nome di quello presente in OpenWRT

- interrompendo la fase di boot per avere il prompt del bootloader CFE, dando il comando di help, sembrano non siano presenti i comandi per fare l'upload/download di firmware sulla memoria flash. L'help del CFE è il seguente:


CFE> help
Available commands:

x Change extra partitions size
wp Write pmc (previously loaded through JTAG to flash block 0.
go goto and execute from specefic address.
r Run program from flash image or from host depend on [f/h] flag
p Print boot line and board parameter info
c Change booline parameters
ddr Change board DDR config
a Change board AFE ID
b Change board parameters
reset Reset the board
closeavs pmc close avs cmd
cpufreq set CPU frequency
help Obtain help for CFE commands

For more information about a command, enter 'help command-name'

Bovirus
07-07-2018, 07:42
@plamerpalm

Grazie per le foto della mainboard
Metto il riferimento del tuo post nei primi post.

Per dissaldare i pin della console seriale (TTL 3.3V) serve un buon saldatore a punta fine ad alta temperatura e una pompetta dissaldante od una stazione di saldatura/dissaldatura (come quella che uso in ufficio):

Bisogna fare attenzione a non scaldare troppo e a non danneggiare le piste perchè la mainboard è mulistrato.

I pin più difficili da pulire sono quelli del VCC/GND.

Nota: se puoi io ti consiglio di ripostare l'immagine della seriale con indicati sopra i PIN VCC/GND/TX/RX.

Come programma terminale io uso Putty Portable.
Io uso una versione particolare di Putty (portatile) modificata da Jakub che non scrive dati nel registro ma in un file esterno.

Putty portable - mod by Jakub (http://jakub.kotrla.net/putty/)

Nota: la versione originale di Putty anche se portatile scrive nel Registry di Windows.

Per gli adattatori basta cercare su Ebay i prodotti con la chiave

RS232 TTL PL2303 - per cercare quelli con il chipl PL2303

Ebay - Adattatori USB console seriale TTL 3.3V - Chip PL2303 (https://www.ebay.it/sch/i.html?_from=R40&_sacat=0&_sop=15&_nkw=rs232%20ttl%20pl2303&rt=nc&LH_PrefLoc=3&_trksid=p2045573.m1684)

RS232 TTL CP2102 - per cercare quelli con il chipl CP2102

Ebay - Adattatori USB console seriale TTL 3.3V - Chip CP2102 (https://www.ebay.it/sch/i.html?_odkw=rs232+ttl+pl2303&LH_PrefLoc=3&_sop=15&_osacat=0&_from=R40&_trksid=m570.l1313&_nkw=rs232+ttl+CP2102&_sacat=0)

user80
13-07-2018, 15:49
Ciao palmerpalm.

Innanzitutto grazie mille per il tuo lavoro :ave:

A me interessa disabilitare il TR069, ma con il metodo del caricamento della configurazione di una versione di firmware precedente sparisce dalla pagina riepilogativa del modem l'interfaccia ottica (e compaiono le due relative all'ADSL) e si spegne sul modem il led "Internet". Tutto in realtà funziona regolarmente, ma preferisco la vista data dal default del firmware di aprile con l'indicazione della temperatura dell'SFP.

Grazie al tuo confedit ho la possibilità di riabilitare l'interfaccia web della gestione del TR069 :yeah:

Ho un solo dubbio: perché scrivi

Ovviamente i cambiamenti al file di configurazione avvenuti all'esterno dell'interfaccia web potrebbero creare problemi di instabilità e malfunzionamenti del router e persino la rottura del router stesso.

? In caso di caricamento di una configurazione "rotta" non basta resettare il router e tornare alla configurazione di default? C'è il pericolo che un errore nella configurazione blocchi definitivamente il router?

Ciao e grazie ancora

palmerpalm
13-07-2018, 16:59
Ciao palmerpalm.


? In caso di caricamento di una configurazione "rotta" non basta resettare il router e tornare alla configurazione di default? C'è il pericolo che un errore nella configurazione blocchi definitivamente il router?

Ciao e grazie ancora

È il solito avviso che si mette sempre di default in modo che anche se ti dovesse esplodere il router non potrebbe mai essere colpa mia che avevo chiaramente avvertito :)

In realtà, anch'io sono convinto che al più sia sufficientemente resettare il modem.

Inviato dal mio Moto G (5S) Plus utilizzando Tapatalk

mu95f
16-07-2018, 22:09
@palmerpalm
Complimenti per l'Eccelente lavoro.

Wolf_adsl
18-07-2018, 20:06
Ciao, c'è un HowTo, su come usare il tool per leggere le password e abilitare i menu nascosti?

Ciao e grazie W_A

mu95f
18-07-2018, 22:53
Ciao, c'è un HowTo, su come usare il tool per leggere le password e abilitare i menu nascosti?

Ciao e grazie W_A

E' tutto scritto qui:
https://www.hwupgrade.it/forum/showpost.php?p=45605308&postcount=2869

Bovirus
19-07-2018, 06:10
@Wolf_adsl

Per favore leggi sempre i primi post.

palmerpalm
19-07-2018, 08:59
E' tutto scritto qui:
https://www.hwupgrade.it/forum/showpost.php?p=45605308&postcount=2869

Ho provveduto ad aggiornare quel post a seguito dell'aggiornamento di confedit.exe che, adesso ha qualche funzione in più e permette di modificare il file di configurazione. Se dovessero esserci problemi e/o errori nel programma vi prego di segnalarmeli

Wolf_adsl
19-07-2018, 12:49
@palmerpalm grazie mille per l'HowTo completo linkato sopra.

Bovirus
19-07-2018, 14:55
@palmerpalm

Se sei d'accordo pensavo di mettere le indicazioni sul tuo tool nel thread del modem DVA-5592 in quanto mi sembra il posto più indicato (non riguarda il mod del frimware in quanto funziona anche con il fiemware standard),

Se sei d'accordo, copia il tuo post in uno nuovo nel thread del DVA-5592 e lo linko nei primi post.

palmerpalm
19-07-2018, 19:04
@palmerplam

Se sei d'accordo pensavo di mettere le indicazioni sul tuo tool nel thread del modem DVA-5592 in quanto mi sembra il posto più indicato (non riguarda il mod del frimware in quanto funziona anche con il fiemware standard),

Se sei d'accordo, copia il tuo post in uno nuovo nel thread del DVA-5592 e lo linko nei primi post.

Grazie @bovirus, certo che sono daccordo. Ho copiato il post nel thread del DVA-5592 il link è questo: https://www.hwupgrade.it/forum/showpost.php?p=45661881&postcount=3300

Bovirus
19-07-2018, 20:27
@palmerpalm

Grazie. Ho già messo il link al tuo post 3300 nei primi post.

Per favore dai un'occhiata al post 3301 dove ho ricopiato il tuo post evidenziando alcune parte secondo me importanti.
Dinmmi per favore cosa ne pensi.

Bovirus
22-07-2018, 10:21
@palmerpalm

Avrai una serie di proposte di modifica se possibili per adbtools2

Impostazione come percorso predefinito per load/save dei file della cartella da cui si lancia confeditor.exe

Aumento dell'altezza della finestra principale per avere una riga in più in "Router info" (vedi dopo andrebbero aggiunte due righe ma c'è già una riga vuota)

Aumneto nel riquadro "Router Info" della larghezza della colonna a sinistra (decsrizione valori) e riduzne della largehzza della coonna a destra (valori).
C'è spazio vuoto snella colonna a destra - il valore più lungo è il Serial Number.

Aggiunta nel titolo della finestra in alto a sinistra la versione di "ADB Config Editor". Es quella attuale "ADB Config Editor 0.5.13.4"

Nella sezione "Router Info"

Spostamento di "Router Customer ID" dop la riga "Model name"
Spostamento di "Router IP" dopo la riga "Serial Number"
Spostamento di "Router NetMask" dopo la riga "Router IP"

E qui finiscono i valori statici non modificabili
Ora passiamo ai valori modificabili da menu.

Modifica di "BSD GUI visible" in "Restricted web GUI visible" (per allnearlo come voce a quella del menu)

Aggiungta della riga "Restricted CLI command enabled" con relativo valore true/false (oggi la riga non c'è)

Spostamento di "Firmware upgrade allowed" dopo la riga "Restricted CLI command enabled"
Spostamento di "Firmware downgrade allowed" dopo la riga "Firmware upgrade allowed"

Ho usato "Firmware" al posto di "Fw" perchè credo ci stia.
Ho usato "allowed" al posto di "permitted" perchè credo sia più corretto.

Aggiunta della riga "Fix dlinkdns - dlinkddns" con relativio valore true/false (oggi la riga non c'è)

In questo modo i valori statici sono tutti nella prima parte della sezione "Router info".

Poi ci sono i valori modificabili con lo stesso ordine e nome del menu di sblocco.

Nel menu Edit la voce "Preferences" non essendo attiva sarebbe preferibile metterla in grigio (non attiva) o modificare il testo per evidenziare che non è attiva. Es."Prefernces (not yet implemented)".

Che ne dici?

palmerpalm
22-07-2018, 18:55
@palmerpalm

Grazie. Ho già messo il link al tuo post 3300 nei primi post.

Per favore dai un'occhiata al post 3301 dove ho ricopiato il tuo post evidenziando alcune parte secondo me importanti.
Dinmmi per favore cosa ne pensi.

Scusa del ritardo con cui ti rispondo, grazie dell'editing, adesso è assai più chiaro e si si segue più facilmente!

Bovirus
23-07-2018, 05:55
@palmerplan

Grazie. Figurati.

Puoi per favore dare un'occhiata all'elenco delle modifiche proposte nel mio post precedente? Grazie.

palmerpalm
23-07-2018, 23:03
@palmerpalm

Avrai una serie di proposte di modifica se possibili per adbtools2



Ti ringrazio per i suggerimenti, vedo se riesco ad implementarli, nel frattempo:

1. ho implementato la voce di menù "Edit -> Preferences" che permette di selezionare se si vuole o meno visualizzare i messaggi di debug sulla finestra della console (default è "yes") e se si vuole impostare la cartella di upload/download dei file di configurazione (il default è quella di impostarla all'ultima cartella utilizzata). La configurazione viene salvata in un file di nome .confedit.ini che si trova nella home dir dell'utente su Linux o nella directory APPDATA su Windows

2. la dimensione delle colonne sulla finestra Router Info purtroppo cambiano tra Linux e Windows: su Linux, dove modifico il programma, le dimensioni sono corrette, mentre su windows la seconda colonna risulta essere con parecchio margine. Per non differenziare tra le due versioni lascio così com'è, credo sia un problema minore

3. gli altri suggerimenti li devo ancora guardare

Bovirus
24-07-2018, 05:55
@palmerplam

Grazie per le modifiche (speriamo si possano fare tutte quelle indicate - alla fine per la maggior parte è solo un riordino/modifica delle voci visualizate).

Secondo me sarebbe preferibile

- che la cartella di default se non impostata nel file di configurazione sia la cartella dove c'è il comando confedit.

- che il file di configurazione sia memorizzato nella cartella locale dove c'è il comando confedit.

Questo per mantenre la portabilità dello strumento.

palmerpalm
25-07-2018, 22:50
Sono riuscito a diventare "root" sul modem e, quindi, potenzialmente a
poter modificare il firmware (cosa che non ho ancora fatto).

La procedura, passo passo, per diventare root e' la seguente:

1. entrare in modalita' "factory mode" per avere accesso, da utente
non privilegiato, ad una shell linux sul router. Da notare che il
comando "factory-mode" e' nascosto, non viene auto-completato
premendo tab

valerio@ubuntu-hp:~$ telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
Login: admin
Password:

********************************************
* D-Link *
* *
* WARNING: Authorised Access Only *
********************************************

Welcome
DLINK# factory
DLINK(factory)# factory-mode
DLINK(factory)#
DLINK(factory)# Connection closed by foreign host.
valerio@ubuntu-hp:~$
2. il router fa il reboot ed entra in "factory mode", in questa
modalita' la funzionalita' di accesso ad Internet viene persa, non
ci sono piu' le reti WiFi che avevamo impostato, non e' attivo il
DHCP server per cui dovremo impostare a mano l'indirizzo IP sul PC
per connetterci al router che ha il suo indirizzo di defautl
192.168.1.1. Anche eventuali altre configurazioni vengono perse

3. fare il login sul router ed entrare nella shell con il comando
"system shell"
valerio@ubuntu-hp:~$ telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
Login: admin
Password:

********************************************
* D-Link *
* *
* WARNING: Authorised Access Only *
********************************************

Welcome
DLINK# system shell


BusyBox v1.17.3 (2018-04-11 12:29:54 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/root $ ps -ef | egrep 'PID| cm'
PID USER VSZ STAT COMMAND
356 0 2560 S cm
4. sul router gira un processo "cm" (cm probabilmente sta per
Configuration Manager), gira con i diritti di root ed e' il
processo che fa praticamente tutto a livello di gestione del
router. Viene lanciato dagli script di startup e poi configurato
con il comando "cmclient". Inizialmente cmclient lo configura
indicandogli dove prendere i file xml che gli definiscono la
configurazione e successivamente viene utilizzato sia per
interrogare la configurazione attuale che per effettuare le
modifiche.

5. Una cosa interessante e' che per fare il lavoro "cm" si appoggia a
degli "helper scripts" che si trovano su /etc/ah/, gli helper
script da utilizzare gli sono indicati nei file xml di
configurazione iniziale, non hanno il path perche' cm li cerca su
/etc/ah/

6. Un altra cosa interessanti e' che cmclient gira da utente non
privilegiato, la cosa e' necessaria affinche' l'interfaccia web,
che gira come utente "nobody", e la CLI, che gira come utente che
ha fatto il login, tipicamente "admin", possano richiedere delle
modifiche di configurazione

7. Quello che e' piu' interessante e' che cmclient puo' dare dei
comandi di configurazione passando dei file xml che vanno a
sovrascrivere la configurazione corrente di cm e, quindi, andando
a modificare gli helper script, che sono degli script
shell. Probabilmente gli autori, aggiungendo il path /etc/ah a
ciascuno degli script presenti nei file xml, hanno trascurato la
possibilita' di impostare script su altri path grazie all'utilizzo
del doppio punto, che non viene filtrato, per passare ad altri
path. Ad esempio "/etc/ah/../../tmp/" equivale a "/tmp"

8. l'hack per avere l'accesso di root si basa, quindi, su una
riconfigurazione di uno dei file xml per far puntare ad un helper
script su /tmp (una delle poche directory dove l'utente admin puo'
scrivere), l'helper script, modificato da noi, verra' eseguito con
i diritti di "root" e, alla fine, andra' a modificare /tmp/passwd
(/etc/passwd e' un link a /tmp/passwd) e ci permettera' di avere i
diritti di root

9. quindi procediamo con il creare un file xml modificato che copiamo
dalla posizione originale a /tmp modificando il riferimento a
"Users.sh", a cui cm aggiunge il path /etc/ah/, con
"../../tmp/Users.sh". Potremmo copiare il file xml in /tmp e poi
modificarlo con vi oppure modificarlo con sed come da linea di
comando seguente:
/root $ cat /etc/cm/tr181/dom/Management.xml | \
sed 's/Users.sh/\.\.\/\.\.\/tmp\/Users.sh/g' > /tmp/Management.xml
10. poi copiamo lo script /etc/ah/Users.sh in /tmp/Users.sh e lo
modifichiamo aggiungendo la riga "cat /tmp/passwd > /tmp/pass1"
come da snippet seguente:
/root $ cp /etc/ah/Users.sh /tmp/Users.sh
/root $ vi /tmp/Users.sh

#!/bin/sh
cat /tmp/passwd > /tmp/pass1
USERS_DEBUG=0
AH_NAME="Users"
AH_VERSION="0.1"
...
11. adesso riconfiguriamo cm facendogli rileggere il file xml
modificato da noi e che fa riferimento a /tmp/Users.sh con il comando seguente
/root $ cmclient DOM Device /tmp/Management.xml
OK
12. a questo punto provochiamo l'esecuzione di /tmp/Users.sh, dando il
comandi di cmclient per aggiungere un utente:
/root $ cmclient ADD Device.Users.User
4
13. la risposta 4 indica che il comando ha avuto successo ed ha creato
il quarto utente (i primi 3 sono user, power e admin). Non ci
interessa assegnargli username, password e diritti, ma ci
interessa solo verificare che /tmp/pass1 e' stata creata:
/root $ cat /tmp/pass1
root:*:0:0:root:/root:/bin/ash
nobody:*:65534:65534:nobody:/var:/bin/false
daemon:*:65534:65534:daemon:/var:/bin/false
admin:$1$4Kwa.w2C$AWuAsp6svQLmxrbsBZyUL/:1001:100:admin:/root:/bin/clish
user:$1$CVaDxfNn$ijBcxzcdGTIpskomSOO9r.:1002:300:user:/root:/bin/clish
power:$1$jej2Kb5/$PI9O1eC9bqJnZRHUEjkQR1:1003:200:power:/root:/bin/clish
14. /tmp/pass1 e' dell'utente root, come utente admin abbiamo i
diritti di lettura, ma non quelli di scrittura e quindi non lo
possiamo modificare, allora lo copiamo in /tmp/pass2, che
modifichiamo togliendo '*' nel campo della password di root, in
modo che root non abbia password:
/root $ cp /tmp/pass1 /tmp/pass2
/root $ vi /tmp/pass2

root::0:0:root:/root:/bin/ash
nobody:*:65534:65534:nobody:/var:/bin/false
daemon:*:65534:65534:daemon:/var:/bin/false
admin:$1$4Kwa.w2C$AWuAsp6svQLmxrbsBZyUL/:1001:100:admin:/root:/bin/clish
user:$1$CVaDxfNn$ijBcxzcdGTIpskomSOO9r.:1002:300:user:/root:/bin/clish
power:$1$jej2Kb5/$PI9O1eC9bqJnZRHUEjkQR1:1003:200:power:/root:/bin/clish
15. a questo punto rimodifichiamo /tmp/Users.sh in modo da copiare
/tmp/pass2 su /tmp/passwd (cui punta /etc/passwd) in modo da poter
poi diventare root con "su". Commentiamo la riga usata
precedentemente ed aggiungiamo "cp /tmp/pass2 /tmp/passwd" come da
snippet seguente:
/root $ vi /tmp/Users.sh

#!/bin/sh
#cat /tmp/passwd > /tmp/pass1
cp /tmp/pass2 /tmp/passwd
USERS_DEBUG=0
AH_NAME="Users"
...
16. siamo pronti a far rieseguire /tmp/Users.sh con lo stesso comando
di cmclient che crea un altro utente:
/root $ cmclient ADD Device.Users.User
5
17. adesso che /tmp/passwd e' stata modificata finalmente possiamo
fare su a root senza che ci venga chiesta una password
~ $ su -


BusyBox v1.17.3 (2018-04-11 12:29:54 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

___ ___ ___ ___
|\__\ /\ \ /\ \ /\ \
|:| | /::\ \ /::\ \ /::\ \
|:| | /:/\:\ \ /:/\:\ \ /:/\:\ \
|:|__|__ /::\~\:\ \ /::\~\:\ \ _\:\~\:\ \
/::::\__\ /:/\:\ \:\__\ /:/\:\ \:\__\ /\ \:\ \:\__\
/:/~~/~ \/__\:\/:/ / \/__\:\/:/ / \:\ \:\ \/__/
/:/ / \::/ / \::/ / \:\ \:\__\
\/__/ /:/ / \/__/ \:\/:/ /
/:/ / \::/ /
\/__/ \/__/ r41358.07b1b3a7
..................................................................
yet another purposeful solution by Advanced Digital Broadcast SA
..................................................................
root@localhost:~#
root@localhost:~# id
uid=0(root) gid=0(root) groups=0(root),19(remoteaccess),20(localaccess)
root@localhost:~#
18. adesso che siamo root potremmo fare quello che vogliamo, compreso
modificare il file system di root jffs2; da notare, pero', che
tale file system, sebbene sia montato in rw, non viene mai
modificato dal firmware del router che, di fatto, lo considera
read only e lo scrive, unicamente, durante l'aggiornamento del
firmware. Io ho provato a modificarlo, apparentemente funziona, ma
poi sono comparse, sulla console seriale, degli errori di checksum
sul file system jffs2, per far sparire tali errori ho dovuto fare
l'upgrade del firmware.

19. la cosa che si puo' fare e-, analogamante alla procedura di upgrade
del firmware, ricaricare sulla memoria flash, con nandwrite, il file
system jffs2 di root oppurtunamente modificato. La procedura di
upgrade del firmware esegue i seguenti comandi:
dd if=/tmp/upgrade/fw.bin bs=256 skip=514 count=94720 | /usr/sbin/nandwrite -s 524288 /dev/mtd3 -
dd if=/tmp/upgrade/fw.bin bs=256 skip=2 count=512 | /usr/sbin/nandwrite /dev/mtd8 -
uesta e' l'attivita' che vorrei fare, ma mi ci vorra' un po' di tempo
per farla con ridotti rischi di mettere fuori uso il router. Inoltre, tempo permettendo,
mi piacerebbe anche descrivere il processo che mi ha portato a trovare questo hack
per diventare root su questo router

Bovirus
26-07-2018, 06:10
@palmerpalm

Grazie per la guida.
Inserito link al tuo post precedente nei primi post.


Per favroe quando puoi modifica il tools adbtools2.

dlp
27-07-2018, 07:21
@palmerpalm

Ciao, prima cosa grazie per il tuo prezioso lavoro. Una domanda... modificando il fw da root, come stai cercando di fare, consentirà poi di avere un immagine FW funzionante da caricare sul proprio router utilizzando il normale canale di upgrade o sarà comunque necessario effetttuare la procedura per diventare root?

palmerpalm
27-07-2018, 18:39
@palmerpalm

Ciao, prima cosa grazie per il tuo prezioso lavoro. Una domanda... modificando il fw da root, come stai cercando di fare, consentirà poi di avere un immagine FW funzionante da caricare sul proprio router utilizzando il normale canale di upgrade o sarà comunque necessario effetttuare la procedura per diventare root?

Il firmware ufficiale è firmato digitalmente con il meccanismo della chiave pubblica/chiave privata, la chiave pubblica è memorizzata dentro al comando /usr/sbin/sig_verify che verifica l'autenticità del firmware prima di procedere con l'upgrade/downgrade.

Senza prima diventare root ed alterare questo meccanismo, diventa impossibile aggiornare il firmware con uno non originale.

La mia idea, da verificare però, è quella di automatizzare con uno script la procedura per diventare root, alterare temporaneamente lo script di upgrade in modo da fargli saltare la verifica dell'autenticità del firmware e poi procedere con un normale upgrade di firmware modificato e con firma fasulla; ho visto che la procedura di upgrade fa una serie di passi per cui può essere rischioso alterare direttamente il firmware con nandwrite per questo è bene modificare direttamente il file di upgrade.

Bovirus
04-08-2018, 10:34
@palmerpalm

Ho visto che hai aggiornato il tool adbtools2.

Mi chiedevo se era possibile implementare le proposte indicate qui

https://www.hwupgrade.it/forum/showpost.php?p=45665086&postcount=45

Grazie.

Robertof_
05-08-2018, 15:57
Sono riuscito a diventare "root" sul modem e, quindi, potenzialmente a
poter modificare il firmware (cosa che non ho ancora fatto).
[snip]

I miei complimenti per essere arrivato fino a qui!! Purtroppo io ho dovuto abbandonare la mia ricerca per mancanza di tempo, ma sono contento che adesso ci si possa elevare a root.

Una cosa non mi è chiara: il filesystem JFFS è montato in modalità RW. Se modificare i file al suo interno produce degli errori di checksum sulla seriale (stoppano il boot o prosegue nonostante gli errori?), dove salva il router le impostazioni? /tmp penso sia soltanto shmfs/tmpfs, quindi non credo che valga come storage di dati, c'è forse un'altra partizione sempre RW dove viene salvato il tutto? E la modifica a /tmp/passwd (che è symlinkato ad /etc/passwd) persiste dopo il reboot?

Per quanto riguarda lo script per effettuare automaticamente la procedura di rooting, posso lavorarci anche io senza alcun problema, così ti alleggerirei un po' il carico :D

Cheers e grazie per il walkthrough!

palmerpalm
06-08-2018, 12:05
Una cosa non mi è chiara: il filesystem JFFS è montato in modalità RW. Se modificare i file al suo interno produce degli errori di checksum sulla seriale (stoppano il boot o prosegue nonostante gli errori?), dove salva il router le impostazioni? /tmp penso sia soltanto shmfs/tmpfs, quindi non credo che valga come storage di dati, c'è forse un'altra partizione sempre RW dove viene salvato il tutto? E la modifica a /tmp/passwd (che è symlinkato ad /etc/passwd) persiste dopo il reboot?

Per quanto riguarda lo script per effettuare automaticamente la procedura di rooting, posso lavorarci anche io senza alcun problema, così ti alleggerirei un po' il carico :D


Modificando il filesystem JFFS, nonostante gli errori sulla console che si ripetono periodicamente e continuamente, apparentemente tutto sembra funzionare normalmente, il boot continua ed il router sembra funzionare normalmente, anche se continua a scrivere messaggi di errore sulla console.
I file modificati, come /etc/passwd.orig, permangono comunque modificati anche dopo il reboot.

Sul router ci sono varie partizioni:

root@dlinkrouter:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
mtd:rootfs_1 125696 24620 101076 20% /
tmpfs 114852 460 114392 0% /tmp
tmpfs 128 8 120 6% /dev
tmpfs 64 0 64 0% /mnt
/dev/mtdblock4 2048 1408 640 69% /tmp/cfg
/dev/mtdblock5 256 256 0 100% /tmp/factory

root@dlinkrouter:~# cat /proc/mounts
rootfs / rootfs rw 0 0
mtd:rootfs_1 / jffs2 rw,relatime 0 0
proc /proc proc rw,relatime 0 0
tmpfs /tmp tmpfs rw,nosuid,nodev,relatime 0 0
tmpfs /dev tmpfs rw,relatime,size=128k 0 0
none /proc/bus/usb usbfs rw,relatime 0 0
none /dev/pts devpts rw,relatime,mode=600,ptmxmode=000 0 0
tmpfs /mnt tmpfs rw,relatime,size=64k 0 0
sysfs /sys sysfs rw,relatime 0 0
/dev/mtdblock4 /tmp/cfg yaffs rw,relatime 0 0
/dev/mtdblock5 /tmp/factory yaffs rw,relatime 0 0

root@dlinkrouter:~# cat /proc/mtd
dev: size erasesize name
mtd0: 00020000 00020000 "CFE"
mtd1: 00200000 00020000 "bootfs_1"
mtd2: 07ac0000 00020000 "rootfs_1"
mtd3: 07cc0000 00020000 "upgrade"
mtd4: 00200000 00020000 "conf_fs"
mtd5: 00040000 00020000 "conf_factory"
mtd6: 00200000 00020000 "bbt"
mtd7: 10000000 00020000 "flash"


La configurazione viene memorizzata nella partizione flash mtd4 montata su /tmp/cfg e con file system YAFFS (Yet Another Flash File System).

Riguardo allo script per automatizzare il "rooting", in realtà l'ho già fatto, è disponibile su github: https://github.com/digiampietro/adbtools2 e si chiama hack-script.sh. In pratica basta entrare in factory mode (come descritto in un precedente post) poi fare un "cat > /tmp/hack-script.sh" e fare un copia incolla del contenuto di quello script seguito dal "Ctrl-D" per terminare l'input, fare un "chmod a+x /tmp/hack-script.sh", eseguirlo e poi fare un "su -" e si diventa root.

Sono a buon punto anche con l'upgrade di un firmware modificato, che già gira sul mio router, in pratica quello che sarà possibile appena finisco è che utilizzando lo stesso script sopra (da modificare ancora), verrà reso possibile fare l'upgrade del firmware con uno non firmato e che conterrà le seguenti modifiche:
1. /usr/sbin/upgrade.sh modificato in modo da permettere l'upgrade di firmware non firmato digitalmente

2. /etc/clish/startup.xml modificato in modo da rendere possibile il comando "system shell" per accedere alla shell anche in modalità normale e non solo in factory mode come adesso

3. /etc/passwd.orig in modo da rendere possibile "su -" a root senza password

4. aggiunta di uno script su /etc/init.d in modo da montare su /opt una chiavetta USB con file system ext3 dove poter installare entware (https://github.com/Entware/Entware) e poter aggiungere vari pacchetti software, sulla chiavetta USB senza troppo interferire con il firmware modificato al minimo indispensabile

dlp
06-08-2018, 17:41
le seguenti modifiche:
1. /usr/sbin/upgrade.sh modificato in modo da permettere l'upgrade di firmware non firmato digitalmente

2. /etc/clish/startup.xml modificato in modo da rendere possibile il comando "system shell" per accedere alla shell anche in modalità normale e non solo in factory mode come adesso

3. /etc/passwd.orig in modo da rendere possibile "su -" a root senza password

4. aggiunta di uno script su /etc/init.d in modo da montare su /opt una chiavetta USB con file system ext3 dove poter installare entware (https://github.com/Entware/Entware) e poter aggiungere vari pacchetti software, sulla chiavetta USB senza troppo interferire con il firmware modificato al minimo indispensabile

Fantastico, già cosi poi si potranno personalizzare un sacco di cose. Grazie del tuo lavoro.

pimander
07-08-2018, 12:53
Bel lavoro palmerpalm ! :ave:

mi era già rassegnato a considerare il router un soprammobile...

Se leggo bene dal post sopra in /tmp c'è parecchio spazio che viene salvato in flash, eventuali pacchetti si potrebbero installare lì no ?

pimander
08-08-2018, 14:59
Ho gia cominciato ad esplorare le possibilità da root...

Mi rispondo da solo per quanto chiesto nel post precedente, forse si può, ma bisogna trovare il modo di salvare su flash (quale?), assieme a ciò che al boot viene copiato su /tmp, gli eventuali pacchetti.

E per quanto riguarda l'idea di palmerpalm di metterli su chiavetta, bisogna tener conto che il router monta automaticamente le chiavette su /mnt/sda1 e 2.

La prima cosa che avevo urgenza di ottenere è il famigerato wakeonlan...
In startup.xml al relativo comando non esegue niente, e come ho scoperto manco potrebbe.
Per avere il wakeonlan ci sono poche possibilità.
C'è l'applet ether-wake di busybox, che naturalmente non è stato configurato nel router, e che comunque dalle prove fatte richiede che sia eseguito da root.
C'è l'applet nc (netcat) che comunque non ha l'opzione -b (broadcast).
Rimane socat...

Mi sono fatto uno scriptino e l'ho salvato in /etc/wol, e ho copiato l'eseguibile di socat in /root.


#!/bin/sh
mac=$(printf '\x01\x02\xaa\xbb\xcc\xdd') # MAC = 01:02:aa:bb:cc:dd
wol_packet=$(printf "\xff\xff\xff\xff\xff\xff$mac$mac$mac$mac$mac$mac$mac$mac$mac$mac$mac$mac$mac$mac$mac$mac")
echo -n "$wol_packet" | /root/socat -u STDIO UDP-DATAGRAM:192.168.1.255:9,broadcast


Poi ho aggiunto a startup.xml i comandi shell e wol, sotto system


</ACTION></COMMAND><COMMAND name="shell" no-config-gen="true"><ACTION>
/etc/hack_script.sh
/bin/sh
</ACTION></COMMAND><COMMAND name="wol" no-config-gen="true"><ACTION>
/etc/wol


shell esegue prima lo script di palmerpalm, perché al riavvio bisogna ripetere il trucco.

Tra l'altro una configurazione salvata dopo aver eseguito hack-script.sh rimane invalida... sembra che per gli utenti parta da un /etc/passwd base e poi aggiunga gli altri utenti dalla configurazione.

Purtroppo non posso allegare il socat che ho compilato perché eccede il massimo consentito.

Infine, per chi volesse compilare socat o quant'altro ho usato buildroot-2018.02-rc2, con

Target Architecture (ARM (little endian))
Target Architecture Variant (cortex-A9)

Buon smanettamento...

pimander
08-08-2018, 17:18
Ho avuto la (pessima) idea di settare la password di root e poi copiare /tmp/passwd in /etc/passwd.orig, lasciando solo root,nobody e daemon, sperando che al boot lo copiasse in /tmp.

Ma non gli è piaciuto, o meglio, evidentemente il salt è diverso ad ogni riavvio, e ho dovuto modificare hack-script.sh per eliminare la password che avevo settato :muro:

In più sembra che il router si sia accorto di qualcosa e ha ripristinato startup.xml nonché ranzato i 2 script che avevo copiato in /etc.

Morale, qualche modifica al rootfs si può fare e la mantiene, ma bisogna andarci con i piedi di piombo :D

Update: in effetti non ha ripristinato startup.xml originale, il comando shell era ancora lì...
Pur avendo lavorato nel settore embedded secoli fa, non ho molta esperienza con i SoC, vado un po' a naso. Si direbbe che con i suoi tempi aggiorni la flash del rootfs (o di una sua copia ?). Facendo le prove ho riavviato varie volte e i file aggiunti/modificati erano rimasti. Ma quando ho sgarrato ha recuperato da qualcosa di già modificato.
Forse qualcuno più esperto di SoC ha la spiegazione...

Update2: per non dover eseguire ogni volta hack-script.sh dopo un riavvio ho semplicemente tolto l'asterisco da /etc/passwd.orig e pare che funzioni.
Per quanto riguarda lo "sgarro", ripensandoci, prima di avere la bella idea di settare la password di root avevo curiosato nelle partizioni mtd, montandone qualcuna. Forse è questo che ha fatto scattare qualcosa e ha provocato quel ripristino parziale del rootfs...

Update3: forse ho capito l'arcano... quando la prima volta sono passato in factory-mode mi ero dimenticato di togliere il cavo vdsl e tornando in modo normale con "restore defaultSettings" mi ha rifilato l'ultimo firmware... non avendo voglia di fare il downgrade ho pensato di tenerlo d'occhio ma per il momento di rimanere così. E però ho scoperto adesso per caso che è tornato magicamente al firmware DVA-5592_A1_WI_20170908. Pare che ne abbia una copia di emergenza a bordo e con qualche manovra inconsulta abbia scatenato il panic-mode. Solo non mi spiego come mai startup.xml avesse ancora il comando shell da me aggiunto...

palmerpalm
13-08-2018, 23:51
@palmerpalm

Ho visto che hai aggiornato il tool adbtools2.

Mi chiedevo se era possibile implementare le proposte indicate qui

https://www.hwupgrade.it/forum/showpost.php?p=45665086&postcount=45



E' nell'elenco delle cose da fare :)

Adesso stavo lavorando sulla modifica del firmware, a tempo ridotto perchè, essendo in ferie, gli impegni "vacanzieri" e familiari richiedono più tempo degli impegni lavorativi :)

palmerpalm
13-08-2018, 23:55
Bel lavoro palmerpalm ! :ave:

mi era già rassegnato a considerare il router un soprammobile...

Se leggo bene dal post sopra in /tmp c'è parecchio spazio che viene salvato in flash, eventuali pacchetti si potrebbero installare lì no ?

Su /tmp c'è un file system temporaneo di tipo tmpfs, ossia che risiede in memoria, e che viene azzerato ad ogni reboot.

Il posto migliore per mettere pacchetti aggiuntivi è utilizzare una chiavetta USB, mi manca poco per implementare un firmware modificato che permette di installare entware (https://github.com/Entware/Entware) su chiavetta USB e, tramite esso, installare pacchetti aggiuntivi già disponibili.

palmerpalm
14-08-2018, 00:00
E per quanto riguarda l'idea di palmerpalm di metterli su chiavetta, bisogna tener conto che il router monta automaticamente le chiavette su /mnt/sda1 e 2.


Mi pare, ma potrei sbagliarmi, che la chiavetta venga montata automaticamente solamente se è abilitata la relativa funzione di condivisione del contenuto della chiavetta tramite Samba. Se Samba non è abilitato la chiavetta non dovrebbe essere montata.

palmerpalm
14-08-2018, 00:06
H

Infine, per chi volesse compilare socat o quant'altro ho usato buildroot-2018.02-rc2, con

Target Architecture (ARM (little endian))
Target Architecture Variant (cortex-A9)



Anche io ho utilizzato buildroot, ma 2018.05, e qemu per emulare un sistema ARM cortex-A9 vagamente simile a quello del router ed ho utilizzato ampiamente qemu ed il debugger GDB per capire il funzionamento di alcuni eseguibili come sig_verify o cm. Spero di poter fare un post in futuro descrivendo anche questo setup, adesso vado in ordine di priorità puntando a trovare una strada non troppo complicata per installare un firmware modificato.

palmerpalm
14-08-2018, 00:14
Ho avuto la (pessima) idea di settare la password di root e poi copiare /tmp/passwd in /etc/passwd.orig, lasciando solo root,nobody e daemon, sperando che al boot lo copiasse in /tmp.

Ma non gli è piaciuto, o meglio, evidentemente il salt è diverso ad ogni riavvio, e ho dovuto modificare hack-script.sh per eliminare la password che avevo settato :muro:

In più sembra che il router si sia accorto di qualcosa e ha ripristinato startup.xml nonché ranzato i 2 script che avevo copiato in /etc.

Morale, qualche modifica al rootfs si può fare e la mantiene, ma bisogna andarci con i piedi di piombo :D

Update: in effetti non ha ripristinato startup.xml originale, il comando shell era ancora lì...
Pur avendo lavorato nel settore embedded secoli fa, non ho molta esperienza con i SoC, vado un po' a naso. Si direbbe che con i suoi tempi aggiorni la flash del rootfs (o di una sua copia ?). Facendo le prove ho riavviato varie volte e i file aggiunti/modificati erano rimasti. Ma quando ho sgarrato ha recuperato da qualcosa di già modificato.
Forse qualcuno più esperto di SoC ha la spiegazione...

Update2: per non dover eseguire ogni volta hack-script.sh dopo un riavvio ho semplicemente tolto l'asterisco da /etc/passwd.orig e pare che funzioni.
Per quanto riguarda lo "sgarro", ripensandoci, prima di avere la bella idea di settare la password di root avevo curiosato nelle partizioni mtd, montandone qualcuna. Forse è questo che ha fatto scattare qualcosa e ha provocato quel ripristino parziale del rootfs...

Update3: forse ho capito l'arcano... quando la prima volta sono passato in factory-mode mi ero dimenticato di togliere il cavo vdsl e tornando in modo normale con "restore defaultSettings" mi ha rifilato l'ultimo firmware... non avendo voglia di fare il downgrade ho pensato di tenerlo d'occhio ma per il momento di rimanere così. E però ho scoperto adesso per caso che è tornato magicamente al firmware DVA-5592_A1_WI_20170908. Pare che ne abbia una copia di emergenza a bordo e con qualche manovra inconsulta abbia scatenato il panic-mode. Solo non mi spiego come mai startup.xml avesse ancora il comando shell da me aggiunto...

Ho avuto la sensazione, ma non sono affatto sicuro, che se si aggiungono file sul root file system in JFFS2 non ci sono grossi problemi, se invece si modificano file esistenti iniziano ad apparire dei messaggi di checksum error sulla console.

Potrebbe anche essere che, a seguito di questi errori, alcuni nuovi nodi jffs2 che hanno sostituito i vecchi possano essere marcati errati e, quindi, al riavvio potrebbero riapparire vecchi nodi e vecchi files.

Riguardo all'upgrade il router utilizza la partizione mtd3 per caricare il firmware di upgrade; appena caricato, grazie ad un modulo proprietario, tale partizione viene divisa in due e create due nuove partizioni (mtd8 e mtd9) dove vanno il nuovo bootloader ed il nuovo root file system, al riavvio queste due partizioni diventano quelle attive ma, se per qualche ragione qualcosa non dovesse andare, il router fa un paio di reboot e ricarica la versione precedente funzionante ancora presente sulle vecchie partizioni e non ancora cancellata.

palmerpalm
14-08-2018, 00:25
Sul mio repository github adbtools2 (https://github.com/digiampietro/adbtools2) ho appena rilasciato un "Firmware Modification Kit" con istruzioni e script per generare un firmware modificato e poterlo caricare sul router, seppure con alcune limitazioni:

funiziona solo a partire dal firmware DVA-5592_A1_WI_20180405.sig
il firmware modificato non deve essere di dimensione maggiore di quello attuale. Questo vuol dire che si possono aggiungere sì dei files ma non più di qualche Mb
gira solamente in ambiente Linux


Nei prossimi giorni cerco di trovare un po' di tempo per fare un post un po' più articolato e di concludere con la installazione di entware (https://github.com/Entware/Entware).

Al momento il software modificato dal kit può essere ampiamente personalizzato, ma di default effettua solo 3 modifiche:

Permette, in modalità normale, l'utilizzo del comando "system shell" per avere una normale shell busybox
elimina l'asterisco nel campo della password dell'utente root in /etc/passwd.orig per permettere un "su" a root senza password
modifica gli script di upgrade in modo da permettere l'upgrade con un firmware non firmato

pecile
15-08-2018, 10:29
si riesce ad alzare la portante?

palmerpalm
15-08-2018, 22:44
si riesce ad alzare la portante?

Non credo.
Da quello che ho capito io, la velocità viene di fatto stabilita non dal router che si ha a casa, ma dal dispositivo che è installato nell'armadio.

pecile
15-08-2018, 23:36
Non credo.
Da quello che ho capito io, la velocità viene di fatto stabilita non dal router che si ha a casa, ma dal dispositivo che è installato nell'armadio.

Ok grazie!

pimander
16-08-2018, 17:20
Ciao,
stavo pensando di metter su una schedulazione per l'accesso da remoto, come avevo sul vecchio router.
Pensavo di usare il busybox che ho compilato che comprende crond e quando si tratta di abilitare/disabilitare usare il meccanismo del clish, visto che modifica le iptables e altre cose.
Se ho capito bene si tratta di eseguire /etc/ah/SSH.sh con dei parametri, come X_ADB_SSHServer.RemoteAccess.Enable = true/false. Ma non mi è chiaro se è un parametro o una (o più) variabile d'ambiente da settare prima di eseguirlo.
Tu sai come funziona ?

pimander
16-08-2018, 17:58
Mi rispondo da solo, bastava guardare hack-script.sh...

Bisogna dare in sequenza (?)


cmclient DOM Device /etc/cm/tr181/dom/Management.xml
OK
OK
cmclient SET X_ADB_SSHServer.RemoteAccess.Enable false/true
OK
OK


Non so se il primo sia necessario però.

Update: pare di no, ho riavviato ed è bastato il secondo. Dovrò però gestire lo stato al riavvio visto che così la configurazione non la salva, e anche salvandola è da gestire nel caso che per qualche ragione riavvi mentre non ci sono, per esempio se manca la luce abbastanza tempo da far morire l'UPS.

palmerpalm
16-08-2018, 18:18
Mi rispondo da solo, bastava guardare hack-script.sh...

Bisogna dare in sequenza (?)


cmclient DOM Device /etc/cm/tr181/dom/Management.xml
OK
OK
cmclient SET X_ADB_SSHServer.RemoteAccess.Enable false/true
OK
OK


Non so se il primo sia necessario però.

Update: pare di no, ho riavviato ed è bastato il secondo. Dovrò però gestire lo stato al riavvio visto che così la configurazione non la salva, e anche salvandola è da gestire nel caso che per qualche ragione riavvi mentre non ci sono, per esempio se manca la luce abbastanza tempo da far morire l'UPS.

No, il primo non è necessario perché viene eseguito dagli script di startup, che eseguono tutti i file presenti nella stessa directory dove si trova Management.xml.

Io però cercherei di usare il meno possibile le particolarità di tale firmware, tramite l'utilizzo di cmclient, perchè non sono documentate e talvolta potrebbero non fare quello che ci si aspetta. Io cercherei di utilizzare entware che è l'oggetto del mio prossimo post, che sto per fare.

pimander
16-08-2018, 18:26
Ma entware non è solo un repository di pacchetti con più o meno le stesse cose che ottieni con buildroot ?
Se si qualunque pacchetto bisogna vedere se non fa a pugni con ciò che già gira sul router, o pensi di escludere in qualche modo tutta la gestione che fa attualmente ?

palmerpalm
16-08-2018, 19:04
Rilasciato una nuova versione del firmware modificato (v0.8)

Sul mio repository GitHub (https://github.com/digiampietro/adbtools2), come avevo accennato in un post precedente, si trova un po' di documentazione su come diventare root sul router e su come modificare il firmware originale utilizzando il "Firmware Modification Kit" in ambiente Linux e disponibile sempre nello stesso repository (directory mod-kit).

Utilizzando questi tool ho generato una versione di firmware modificato che, rispetto a quello originale, ha le seguenti modifiche:



Permette, in modalità normale, l'utilizzo del comando "system shell" per avere una normale shell busybox. Nel firmware originale questa possibilita' esiste solo in modalita' "factory mode"

Elimina l'asterisco nel campo della password dell'utente root in /etc/passwd.orig per permettere, nella shell busybox, un "su" a root con password di default "no.wordpass" (nella versione v0.8, in quella precedente la password non era necessaria). Da notare che root non puo' comunque fare il login con telnet o ssh e tale accesso non e' comunque disponibile da Internet. Volendo, utilizzando il "mod-kit", e' possibile generare un proprio firmware in cui mettere una propria password all'utente root.

Ha gli script di upgrade modificati in modo da permettere, in futuro, l'upgrade con un firmware non firmato senza dover ricorrere all'hack descritto sotto e necessario per la prima installazione di un firmware non originale.

Permette l'installazione di entware (https://github.com/Entware/Entware) su una chiavetta USB pre-formattata con la prima o unica partizione con un file system linux ext2, ext3 o ext4. Entware e' un progetto che mette a disposizione migliaia di pacchetti pre-compilati, pronti da installare su dispositivi embedded, come i router, attraverso un package manager (opkg), simile a quello usato da OpenWRT, e che gestisce automaticamente le dipendenze. Entware cerca di dare "meno fastidio" possibile al firmware originale, si installa in /opt (dove e' stata montata la chiavetta USB) e installa sotto /opt anche le librerie che servono ai vari eseguibili, interferendo quindi pochissimo con il software gia' presente nel firmware. L'elenco dei pacchetti disponibili che vengono scaricati automaticamente da opkg per l'architettura armv7 Cortex-A9 (quella del nostro router DVA-5592) sono consultabili qui: http://bin.entware.net/armv7sf-k3.2/Packages.html



Per procedere alla installazione del firmware ed all'utilizzo di entware sono necessari i seguenti pre-requisiti:



procurarsi una chiavetta USB, creare una partizione (anche piu' di una volendo) con un file system linux ext2, ext3 o, preferibilmente, ext4. Nel caso di piu' partizioni, la prima e' quella che verra' utilizzata da entware e che dovra' essere formattata in questo modo. La cosa piu' facile e' effettuare questa formattazione in ambiente Linux con tools come gparted o analoghi; in ambiente Windows probabilmente esistono tools per fare la stessa cosa, ma io non li conosco.

per cercare di evitare violazioni del copyright e della proprieta' intellettuale di ADB, D-Link o Wind non e' opportuno mettere a disposizione l'intero file del firmware modificato in un sito web. Come alternativa sara' necessario scaricare:



il firmware originale su cui si basa il firmware modificato, scaricabile dal sito ufficiale D-Link: ftp://ftp.dlink.eu/Products/dva/dva-5592/driver_software/DVA-5592_A1_WI_20180405.zip ovviamente va utilizzato il file "unzippato"

il file contenente le differenze rispetto al file originale (1,6Mb contro 24Mb) generato utilizzando xdelta3 (http://xdelta.org/) e disponibile su un mio sito alla url: http://va.ler.io/myfiles/dva/DVA-5592_A1_WI_20180405-mod-v0.8.sig.xdelta

il software xdelta3; in ambiente Linux e' solitamente disponibile nel software repository standard e, ad esempio, su Ubuntu si installa con:

$ sudo apt-get install xdelta3

in ambiente windows si puo' scaricare da https://www.romhacking.net/utilities/598/

generare il firmware modificato sotto linux con un comando simile al seguente:

$ xdelta3 -d -s DVA-5592_A1_WI_20180405.sig DVA-5592_A1_WI_20180405-mod-v0.8.sig.xdelta DVA-5592_A1_WI_20180405-mod-v0.8.sig

sotto windows il comando e' analgo, dopo aver scaricato xdelta3:

C:\> xdelta -d -s DVA-5592_A1_WI_20180405.sig DVA-5592_A1_WI_20180405-mod-v0.8.sig.xdelta DVA-5592_A1_WI_20180405-mod-v0.8.sig



scaricare lo script hack-script.sh dal repository adbtools2, lo si puo' fare cliccando su https://raw.githubusercontent.com/digiampietro/adbtools2/master/hack-script.sh e salvando il relativo file di testo. Questo script servira' per fare il copia/incolla, quando si e' in telnet sul router, per creare lo script che permette di "hackerare" il router.



Una volta che si ha a disposizione il file del firmware modificato (DVA-5592_A1_WI_20180405-mod-v0.8.sig) e' necessario procedere ad "hackerare" il router per permettere l'installazione di un firmware non originale e non firmato digitalmente dal costruttore.

Nell'ambito di questa procedura la configurazione del router viene azzerata e riportata alla configurazione di fabbrica, e' bene, pertanto, prima di procedere salvare la configurazione esistente in modo da poterla ricaricare alla fine della procedura.

Inoltre durante la durata della procedura la funzionalita' normale de router viene meno, non funzionera' ne' l'accesso WiFi ne' l'accesso ad Internet fino al completamento della procedura che, di solito, richiede 15-30 minuti.

Da tenere presente le solite avvertenze del caso: si sta per effettuare una operazione che non solo non e' supportata da chi ci ha fornito il router, ma che aggira le protezioni che il costruttore del router ha messo in atto per impedirci proprio di effettuare questa operazione. Essendo una operazione che modifica il firmware del router l'utente che la effettua lo fa a proprio rischio e pericolo, nessuna responsabilita' potra' essere attribuita all'autore di questa procedura, neanche qualora la procedura di modifica, o il firmware modificato dovessero procurare danneggiamenti al router e/o persino all'ambiente circostante.

Io posso solo dire che, nel mio personalissimo caso, ho installato il firmware modificato senza inconvenienti e che, volendo, posso sempre ritornare ad installare il firmware originale.

Per modificare il firmware occorre eseguire i seguenti passi:



collegarsi con telnet al router ed entrare in modalita' "factory mode" per avere accesso, da utente non privilegiato, ad una shell Linux sul router. Da notare che il comando "factory-mode" e' nascosto, non viene auto-completato premendo tab


valerio@ubuntu-hp:~$ telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
Login: admin
Password:

********************************************
* D-Link *
* *
* WARNING: Authorised Access Only *
********************************************

Welcome
DLINK# factory
DLINK(factory)# factory-mode
DLINK(factory)#
DLINK(factory)# Connection closed by foreign host.
valerio@ubuntu-hp:~$


il router fa il reboot ed entra in "factory mode", in questa modalita' la funzionalita' di accesso ad Internet viene persa, non ci sono piu' le reti WiFi che avevamo impostato, non e' attivo il DHCP server per cui dovremo impostare a mano l'indirizzo IP sul PC per connetterci al router che ha il suo indirizzo di default 192.168.1.1. Anche eventuali altre configurazioni vengono perse

fare il login sul router, entrare nella shell con il comando "system shell" ed "hackerare" il router con hack-script.sh


valerio@ubuntu-hp:~$ telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
Login: admin
Password:

********************************************
* D-Link *
* *
* WARNING: Authorised Access Only *
********************************************

Welcome
DLINK# system shell


BusyBox v1.17.3 (2018-04-11 12:29:54 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/root $ cat > /tmp/hack-script.sh
fare un copia incolla dello script sul terminale
dare un CTRL-D per terminare la copia

/root $ chmod a+x /tmp/hack-script.sh
/root $ /tmp/hack-script.sh



a questo punto si e' "hackerato" il router: si puo' dare il comando "su -" e diventare root (cosa che non ci serve adesso) ed inoltre, fintanto che non si riavvia il router, e' possibile caricare dalla normale interfaccia web, il firmware modificato. Questo e' reso possibile dal fatto che:



si e' copiato il file /usr/sbin/upgrade.sh in /tmp/upgrade.sh

si e' modificato /tmp/upgrade.sh in modo che continui la procedura di upgrade anche quando il risultato del controllo della firma del file del firmware e' negativo

si e' "virtualmente" sostituito /usr/sbin/upgrade.sh con /tmp/upgrade.sh tramite il comando, eseguito da root:

mount --bind /tmp/upgrade.sh /usr/sbin/upgrade.sh



procedere, tramite interfaccia web, a caricare il firmware modificato DVA-5592_A1_WI_20180405-mod-v0.8.sig. L'interfaccia web in "factory mode" e' leggermente diversa ed occorre selezionare la modalita' avanzata per avere il menu' che permette l'aggiornamento del firmware.

se tutto procede come previsto il firmware modificato viene installato con successo sul router ed il router fa il reboot con il nuovo firmware rimanendo sempre in "factory mode"

a questo punto e' necessario uscire dal "factory mode" con il comando "restore default-setting"


valerio@ubuntu-hp:~$ telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
Login: admin
Password:

********************************************
* D-Link *
* *
* WARNING: Authorised Access Only *
********************************************

Welcome
DLINK# restore default-setting


dopo qualche minuto il router fa il reboot e rientra in modalita' normale, se si vuole ripristinare la normale operativita' a questo punto e' possibile ricaricare la configurazione che era stata salvata in precedenza

e' possibile verificare che il nuovo firmware e' realmente installato facendo un telnet al router e dando il comando "system shell" e poi "su -", password di default "no.wordpass", verificando cosi' che si e' in grado di diventare root:


valerio@ubuntu-hp:~$ telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
Login: admin
Password:

********************************************
* D-Link *
* *
* WARNING: Authorised Access Only *
********************************************

Welcome
DLINK# system shell


BusyBox v1.17.3 (2018-04-11 12:29:54 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/root $ su -


BusyBox v1.17.3 (2018-04-11 12:29:54 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

___ ___ ___ ___
|\__\ /\ \ /\ \ /\ \
|:| | /::\ \ /::\ \ /::\ \
|:| | /:/\:\ \ /:/\:\ \ /:/\:\ \
|:|__|__ /::\~\:\ \ /::\~\:\ \ _\:\~\:\ \
/::::\__\ /:/\:\ \:\__\ /:/\:\ \:\__\ /\ \:\ \:\__\
/:/~~/~ \/__\:\/:/ / \/__\:\/:/ / \:\ \:\ \/__/
/:/ / \::/ / \::/ / \:\ \:\__\
\/__/ /:/ / \/__/ \:\/:/ /
/:/ / \::/ /
\/__/ \/__/ r41358.07b1b3a7
..................................................................
yet another purposeful solution by Advanced Digital Broadcast SA
..................................................................
root@dlinkrouter:~#


a questo punto e' possibile inserire la chiavetta USB formattata con il file system Linux ext2, ext3 o ext4 e procedere alla installazione di entware con il comando seguente (viene mostrato anche l'output nel caso che tutto vada a buon fine):


root@dlinkrouter:~# /etc/init.d/entware.sh install alternative
entware.sh: fstype: ext3
entware.sh: module ext2 already loaded
entware.sh: module mbcache already loaded
entware.sh: module jbd already loaded
entware.sh: module jbd2 already loaded
entware.sh: module ext3 already loaded
entware.sh: module ext4 already loaded
entware.sh: /opt/etc/init.d/rc.unslung not found
entware.sh: entware software not found on /opt
entware.sh: Entware Installation
entware.sh: downloading http://bin.entware.net/armv7sf-k3.2/installer/alternative.sh
Connecting to bin.entware.net (81.4.123.217:80)
alternative.sh 100% |***************************************************************************************************************************| 2031 0:00:00 ETA
entware.sh: installing entware, executing /tmp/alternative.sh
Info: Checking for prerequisites and creating folders...
Warning: Folder /opt exists!
Info: Opkg package manager deployment...
Connecting to bin.entware.net (81.4.123.217:80)
opkg 100% |***************************************************************************************************************************| 131k 0:00:00 ETA
Connecting to bin.entware.net (81.4.123.217:80)
opkg.conf 100% |***************************************************************************************************************************| 190 0:00:00 ETA
Connecting to bin.entware.net (81.4.123.217:80)
ld-2.27.so 100% |***************************************************************************************************************************| 135k 0:00:00 ETA
Connecting to bin.entware.net (81.4.123.217:80)
libc-2.27.so 100% |***************************************************************************************************************************| 1218k 0:00:00 ETA
Connecting to bin.entware.net (81.4.123.217:80)
libgcc_s.so.1 100% |***************************************************************************************************************************| 50840 0:00:00 ETA
Connecting to bin.entware.net (81.4.123.217:80)
libpthread-2.27.so 100% |***************************************************************************************************************************| 92648 0:00:00 ETA
Info: Basic packages installation...
Downloading http://bin.entware.net/armv7sf-k3.2/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/entware
Installing busybox (1.28.3-2) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/busybox_1.28.3-2_armv7-3.2.ipk
Installing libc (2.27-8) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/libc_2.27-8_armv7-3.2.ipk
Installing libgcc (7.3.0-8) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/libgcc_7.3.0-8_armv7-3.2.ipk
Installing libssp (7.3.0-8) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/libssp_7.3.0-8_armv7-3.2.ipk
Installing librt (2.27-8) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/librt_2.27-8_armv7-3.2.ipk
Installing libpthread (2.27-8) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/libpthread_2.27-8_armv7-3.2.ipk
Configuring libgcc.
Configuring libc.
Configuring libpthread.
Configuring libssp.
Configuring librt.
Configuring busybox.
Installing entware-opt (227000-3) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/entware-opt_227000-3_all.ipk
Installing libstdcpp (7.3.0-8) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/libstdcpp_7.3.0-8_armv7-3.2.ipk
Installing entware-release (1.0-2) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/entware-release_1.0-2_all.ipk
Installing zoneinfo-asia (2018e-1) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/zoneinfo-asia_2018e-1_armv7-3.2.ipk
Installing zoneinfo-europe (2018e-1) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/zoneinfo-europe_2018e-1_armv7-3.2.ipk
Installing findutils (4.6.0-1) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/findutils_4.6.0-1_armv7-3.2.ipk
Installing terminfo (6.1-1) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/terminfo_6.1-1_armv7-3.2.ipk
Installing locales (2.27-8) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/locales_2.27-8_armv7-3.2.ipk
Installing grep (2.26-1) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/grep_2.26-1_armv7-3.2.ipk
Installing libpcre (8.41-2) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/libpcre_8.41-2_armv7-3.2.ipk
Installing opkg (2011-04-08-9c97d5ec-17b) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/opkg_2011-04-08-9c97d5ec-17b_armv7-3.2.ipk
Installing entware-upgrade (1.0-1) to root...
Downloading http://bin.entware.net/armv7sf-k3.2/entware-upgrade_1.0-1_all.ipk
Configuring terminfo.
Configuring libpcre.
Configuring grep.
Configuring locales.
Entware uses separate locale-archive file independent from main system
Creating locale archive - /opt/usr/lib/locale/locale-archive
Adding en_EN.UTF-8
Adding ru_RU.UTF-8
You can download locale sources from http://pkg.entware.net/sources/i18n_glib227.tar.gz
You can add new locales to Entware using /opt/bin/localedef.new
Configuring entware-upgrade.
Upgrade operations are not required
Configuring opkg.
Configuring zoneinfo-europe.
Configuring zoneinfo-asia.
Configuring libstdcpp.
Configuring entware-release.
Configuring findutils.
Configuring entware-opt.
Info: Congratulations!
Info: If there are no errors above then Entware was successfully initialized.
Info: Add /opt/bin & /opt/sbin to your PATH variable
Info: Add '/opt/etc/init.d/rc.unslung start' to firmware startup script for Entware services to start

This is an alternative Entware installation. We recomend to install and setup Entware version of ssh server
and use it instead of a firmware supplied one. You can install dropbear or openssh as an ssh server
root@dlinkrouter:~#


riguardo ad entware gli eseguibili vengono installati in /opt/bin e /opt/sbin pertanto queste due directory e' opportune aggiungerle al PATH quando si fa il login, la cosa si puo' fare anche facendo il "source" di /opt/etc/profile come, ad esempio:

root@dlinkrouter:~# . /opt/etc/profile

solo che in questo caso /opt/bin e /opt/sbin sono le prime due directory del PATH ed hanno la precedenza nel caso di comandi con lo stesso nome di comandi presenti nel firmware. Talvolta questo puo' non essere quello che ci si aspetta.

una volta messo tali directory nel path e' possibile avere la lista del software dipsonibile con "opkg list"


root@dlinkrouter:~# opkg list
25volt - 1.0.5-1 - 25volt - A lightweight tool for monitoring APC Smart-UPS and Powercom WOW UPSs
3proxy - 0.8.12-1 - 3proxy is universal proxy server. It can be used to provide internal users
with fully controllable access to external resources or to provide external
users with access to internal resources.
Note: SSL plugin requires libopenssl to be installed.
6relayd - 2013-12-10.1-0381cf15e9721054f902354e9c3b9fb0201bab7f - 6relayd is a daemon for serving and relaying IPv6 management protocols to
configure clients and downstream routers.

6relayd provides server services for RA, stateless DHCPv6, DHCPv6-PD and can
be used to relay RA, DHCPv6 and NDP between routed (non-bridged) interfaces
in case no delegated prefixes are provided by the upstream router.
accel-ppp - 1.11.2-1 - The ACCEL-PPP is high performance PPTP/L2TP/PPPoE server for Linux. Userspace
daemon has its own PPP implementation, so it does not uses pppd and one process
(multi-threaded) manages all connections.
acl - 20180121-1 - Access control list support
This package provides ACL manipulation utilities
- chacl
- getfacl
- setfacl
adb - android.5.0.2_r1-1 - Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with an emulator instance or connected Android-powered device.

......


maggiori informazioni su opkg si possono avere con "opkg" senza argomenti:


root@dlinkrouter:~# opkg
opkg must have one sub-command argument
usage: opkg [options...] sub-command [arguments...]
where sub-command is one of:

Package Manipulation:
update Update list of available packages
upgrade Upgrade installed packages
install <pkgs> Install package(s)
configure <pkgs> Configure unpacked package(s)
remove <pkgs|regexp> Remove package(s)
flag <flag> <pkgs> Flag package(s)
<flag>=hold|noprune|user|ok|installed|unpacked (one per invocation)

Informational Commands:
list List available packages
list-installed List installed packages
list-upgradable List installed and upgradable packages
list-changed-conffiles List user modified configuration files
files <pkg> List files belonging to <pkg>
search <file|regexp> List package providing <file>
find <regexp> List packages whose name or description matches <regexp>
info [pkg|regexp] Display all info for <pkg>
status [pkg|regexp] Display all status for <pkg>
download <pkg> Download <pkg> to current directory
compare-versions <v1> <op> <v2>
compare versions using <= < > >= = << >>
print-architecture List installable package architectures
depends [-A] [pkgname|pat]+
whatdepends [-A] [pkgname|pat]+
whatdependsrec [-A] [pkgname|pat]+
whatrecommends[-A] [pkgname|pat]+
whatsuggests[-A] [pkgname|pat]+
whatprovides [-A] [pkgname|pat]+
whatconflicts [-A] [pkgname|pat]+
whatreplaces [-A] [pkgname|pat]+

Options:
-A Query all packages not just those installed
-V[<level>] Set verbosity level to <level>.
--verbosity[=<level>] Verbosity levels:
0 errors only
1 normal messages (default)
2 informative messages
3 debug
4 debug level 2
-f <conf_file> Use <conf_file> as the opkg configuration file
--conf <conf_file>
--cache <directory> Use a package cache
-d <dest_name> Use <dest_name> as the the root directory for
--dest <dest_name> package installation, removal, upgrading.
<dest_name> should be a defined dest name from
the configuration file, (but can also be a
directory name in a pinch).
-o <dir> Use <dir> as the root directory for
--offline-root <dir> offline installation of packages.
--add-arch <arch>:<prio> Register architecture with given priority
--add-dest <name>:<path> Register destination with given path

Force Options:
--force-depends Install/remove despite failed dependencies
--force-maintainer Overwrite preexisting config files
--force-reinstall Reinstall package(s)
--force-overwrite Overwrite files from other package(s)
--force-downgrade Allow opkg to downgrade packages
--force-space Disable free space checks
--force-postinstall Run postinstall scripts even in offline mode
--force-remove Remove package even if prerm script fails
--force-checksum Don't fail on checksum mismatches
--noaction No action -- test only
--download-only No action -- download only
--nodeps Do not follow dependencies
--nocase Perform case insensitive pattern matching
--size Print package size when listing available packages
--force-removal-of-dependent-packages
Remove package and all dependencies
--autoremove Remove packages that were installed
automatically to satisfy dependencies
-t Specify tmp-dir.
--tmp-dir Specify tmp-dir.
-l Specify lists-dir.
--lists-dir Specify lists-dir.

regexp could be something like 'pkgname*' '*file*' or similar
e.g. opkg info 'libstd*' or opkg search '*libop*' or opkg remove 'libncur*'




Da notare che da root non e' opportuno modificare il file system di root formattato in jffs2, ho notato che il firmware originale, sebbene monti tale file system in modalita' read/write, in realta' non lo modifica mai e lo tratta come se fosse di sola lettura. Andando a modificare tale file system ho notato che iniziano ad apparire dei messaggi di "jffs2 checksum error" sulla console del router (la console seriale collegandosi alle piazzole etichettate IN, OUT, GND, VCC, sulla motherboard), tali messaggi sono disponibili anche con il comando "dmesg" che recupera gli ultimi messaggi di log da un buffer circolare tenuto in memoria.

E' bene disabilitare l'aggiornamento automatico del firmware, altrimenti tutto quello che si e' ottenuto con il firmware non ufficiale viene rimosso dal firmware ufficiale che potrebbe anche aver corretto le vulnerabilita' e non essere piu' "hackerabile" con il metodo utilizzato qui.

pimander
16-08-2018, 20:17
Ho tenuto d'occhio dmesg dopo che ho messo su la schedulazione, e quindi aver copiato busybox e gli script, ma non c'è stato nessun errore di checksum...

E comunque, il rootfs è uno di quei layered filesystem, con lo strato di sotto tipicamente readonly (qua parrebbe rw, ma non so se ci sia da fidarsi) e quello sopra in ram. Quale abbiano usato dei vari disponibili non è dato sapere, ma potrebbe essere una versione ad hoc, già che anche l'opkg è taroccato.
Molti di questi filesystem non toccano proprio lo strato sottostante e salvano le differenze a parte per poi ripristinarle al mount.
E in effetti jffs2 sarebbe un panico da gestire in rw, non è proprio fatto per lavorare così.

pimander
18-08-2018, 13:03
Ho compilato un programmino per il wakeonlan, in allegato.


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int main(int argc, char **argv)
{

int fd; // file descriptor for the connected socket
unsigned char buf[512];
struct sockaddr_in servaddr; // server's address
socklen_t slen = sizeof(servaddr);
int broadcastOn = 1;


if(argc != 3)
{
printf("usage: %s subnet macaddress\n", argv[0]);
return 1;
}
int m[6];
if(4 != sscanf(argv[1], "%d.%d.%d.%d", &m[0], &m[1], &m[2], &m[3]))
{
printf("invalid subnet\n");
return 1;
}

if(6 != sscanf(argv[2], "%02x:%02x:%02x:%02x:%02x:%02x", &m[0], &m[1], &m[2], &m[3], &m[4], &m[5]))
{
printf("invalid macaddress\n");
return 1;
}

memset((char*)&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(9);
if(inet_aton(argv[1] , &servaddr.sin_addr) != 1)
{
fprintf(stderr, "inet_aton() failed\n");
return 1;
}

if((fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0)
{
perror("cannot create socket");
return 1;
}

int i;
for(i = 0; i < 6; i++)
buf[i] = 0xff;
for(i = 0; i < 6; i++)
buf[i + 6] = m[i];
for(i = 0; i < 15; i++)
memcpy(&buf[12 + 6 * i], &buf[6], 6);
buf[102] = 0;

setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &broadcastOn, 4);

int ret = 0;
if (sendto(fd, buf, 102, 0, (const struct sockaddr *)&servaddr, slen) == -1)
{
perror("cannot sendto()");
ret = 1;
}
close(fd);
return ret;
}




Una volta copiato sul router dovete renderlo eseguibile con:

chmod a+x wakeonlan

e poi, a meno che non vogliate divertirvi a ricavare i parametri da Startup.xml per piazzare il comando sotto (cfg-mngt-hosts-host), potete semplicemente aggiungere, per esempio sotto system, tanti comandi per quanti host volete, dando come comando:

/path-dove-lo-avete-messo/wakeonlan 192.168.1.255 aa:bb:cc:dd:ee:ff

sostituendo la sottorete e il macaddress.

shik
20-08-2018, 00:11
Complimenti e grazie palmerpalm per l'operazione di hacking e pimander per il primo utilizzo pratico.
Sarebbe utile, se qualcuno avesse tempo, una guida con esempi comuni e pratici per estendere le funzioni del router (es. DLNA).
Per accedere ai pacchetti scaricati, una volta installato Entware, per esempio come bisogna fare? Entware presenta una UI e come si vede la UI dei pacchetti che la prevedono?

Ps. Sono curioso di conoscere la storia della scoperta della falla appena torni dalle vacanze. Tuttavia i già prolissi dettagli sulla tecnica predispongono a una rapida chiusura di tale falla nei prossimi fw...

pimander
20-08-2018, 12:36
Sarebbe utile, se qualcuno avesse tempo, una guida con esempi comuni e pratici per estendere le funzioni del router (es. DLNA).
Per accedere ai pacchetti scaricati, una volta installato Entware, per esempio come bisogna fare? Entware presenta una UI e come si vede la UI dei pacchetti che la prevedono?


Per il dlna dovresti, dopo averlo installato, configurarlo modificando il file minidlna.conf, che a seconda di come lo installi potrebbe essere sotto /etc o /opt/etc.

Non ci sono GUI, i pacchetti bisogna installarli con opkg, da cui puoi anche ottenere informazioni sui pacchetti disponibili, installati e sui files che compongono un pacchetto, vedi il post di palmerpalm. Ma tutto questo si fa da telnet, una volta loggati come root.

E' un router, non un pc :cool:

Volendo si potrebbero installare le libs necessarie per poi accedere con vnc o cose simili :sofico: , ma non credo che sia il caso...

palmerpalm
20-08-2018, 21:05
Ps. Sono curioso di conoscere la storia della scoperta della falla appena torni dalle vacanze. Tuttavia i già prolissi dettagli sulla tecnica predispongono a una rapida chiusura di tale falla nei prossimi fw...

Vorrei descrivere in dettaglio quello che ho fatto, ma scrivere richiede molto tempo ed e' meno divertente di "hackerare" :)

Comunque molto in breve:

Ho comprato su ebay un altro router DVA-5592 per non disturbare il resto della famiglia durante le mie prove :) , per continuare ad avere accesso ad Internet anche quando ero in "factory mode" e per non rischiare di perdere l'accesso ad Internet qualora avessi trasformato il router in un ferma-porta a causa di qualche modifica riuscita male :)

Ho estratto il file system, dal file del firmware ufficialmente disponibile, con binwalk (https://github.com/ReFirmLabs/binwalk) e jefferson (https://github.com/sviehb/jefferson)

Ho aperto il router e, dopo averlo fotografato ed aver postato le foto su questo forum, mi sono collegato alla console tramite interfaccia seriale come descritto in un altro post

Dalle informazioni del boot visibili dalla seriale e dalle analisi del file system, ho avuto conferma di quello che era gia' stato scritto su questo forum, ossia che il router aveva una CPU della famiglia armv7 cortex-A9 con kernel 3.4.11-rt19, con uClibc 0.9 ecc.

Per analizzare i vari eseguibili, estratti con binwalk, ed eseguirli eventualmente con il debugger gdb, ho cercato di ricreare un ambiente di emulazione (una macchina virtuale eseguibile con Qemu) ragionevolmente simile a quella del router, ossia con la stessa CPU, con la stessa versione del kernel, con le stesse librerie (anche si di versioni successive), con le librerie compilate con tutte le informazioni per il debugging, anche se gli eseguibili del router sono privi di tali informazioni, con l'emulazione della memoria flash, grazie al componente del kernel "nandsim" e molto altro. Ho utilizzato buildroot (https://buildroot.org/) e Qemu per questo scopo

Inizialmente mi sono concentrato sulla procedura di upgrade analizzando il file upgrade.sh insieme all'output sulla seriale catturato durante un upgrade, l'idea era che si sarebbe potuto modificare il file system modificando il file di upgrade del firmware. In questa analisi ho visto che il file del firmware, prima di essere processato, e' verificato da un eseguibile, sig_verify, che, analizzandolo nell'ambiente emulato, va a verificare che il file del firmware sia digitalmente firmato. La chiave pubblica per la verifica (i due interi di grosse dimensioni) e' inserita direttamente dentro l'eseguibile sig_verify.

Avevo sperato in una qualche ingenuita' degli autori del firmware ed ho sperato che la chiave privata, usata per firmare il firmware, si trovasse in /etc/certs/, ho pertanto estratto la chiave pubblica e verificato se corrispondesse ad una delle chiavi private disponibili su /etc/certs, ma la risposta e' stata negativa. A questo punto ho capito che c'era bisogno di un'altra strada

Ho cercato, su Google, le vulnerabilita' sia, genericamente, del software Epicentro di ADB che dei vari componenti principali come busybox nella versione, piuttosto vecchia, presente nel router. Le vulnerabilita' che ho trovato, pero', o erano state corrette o facevano riferimento a configurazioni che non erano sfruttabili nel caso specifico

Ho iniziato allora ad analizzare l'interfaccia da riga di comando basata su Clish (che e' un progetto open source), mi sono messo ada analizzare il suo file di configurazione ed ho fortunosamente scoperto la possibilita' di entrare in "factory mode", possibilita' che nel file di configurazione era etichettata come "hidden" e, quindi, da provare

Entrando in factory mode, ho scoperto che era possibile avere un accesso, non privilegiato ossia non come utente root, alla shell /bin/ash di busybox

A questo punto ho iniziato a concentrarmi sui vari processi che erano in esecuzione come "root", tra questi quello che e' sembrato piu' interessante e' stato "cm"

Parallelamente ho iniziato ad analizzare i vari script eseguiti al boot ed ho visto come "cm", e la sua parte client "cmclient", fosse centrale nella gestione del router

Inizialmente mi sono concentrato a capire come vengono creati i nuovi utenti sperando in una eventuale possibilita', utilizzando direttamente cmclient, di creare un utente forzando l'UID a zero e quindi renderlo equivalente a root, ma ho verificato che questa possibilita' era preclusa

Le analisi del punto precedente, pero', mi hanno fatto capire come "cm", eseguito con il debug anche in ambiente virtualizzato, utilizza i file di configurazione xml per decidere quali script shell, in /etc/ah, eseguire e con quali parametri.

Ho quindi provato ad alterare, in ambiente virtualizzato e da normale utente admin in factory mode, con "cmclient" i file di configurazione XML di "cm" per fargli eseguire un mio script; dopo una serie di tentativi ed a seguito di una analisi piu' accurata degli escript eseguiti al boot, ho capito come alterare un file XML e riconfigurare "cm" per fargli eseguire un mio script

Siccome "cm" gira con i diritti di root, il mio script e' diventato in grado di alterare il file /tmp/passwd (/etc/passwd e' un link ad esso) e permettermi di diventare root

Dal punto precedente in poi, tutto il resto e' stato piu' o meno complicato, ma senza piu' insormontabili ostacoli.

Yramrag
20-08-2018, 21:14
@palmerpalm:
Complimenti per il lavorone :cincin:

Seguo di striscio il thread, non ho nemmeno il modem in questione, ma lo trovo veramente interessante!
(E se lo Zyxel fosse stato così blindato non ne avrei cavato un ragno dal buco :asd:)

palmerpalm
28-08-2018, 17:43
@palmerpalm

Avrai una serie di proposte di modifica se possibili per adbtools2

Impostazione come percorso predefinito per load/save dei file della cartella da cui si lancia confeditor.exe

Aumento dell'altezza della finestra principale per avere una riga in più in "Router info" (vedi dopo andrebbero aggiunte due righe ma c'è già una riga vuota)

Aumneto nel riquadro "Router Info" della larghezza della colonna a sinistra (decsrizione valori) e riduzne della largehzza della coonna a destra (valori).
C'è spazio vuoto snella colonna a destra - il valore più lungo è il Serial Number.

Aggiunta nel titolo della finestra in alto a sinistra la versione di "ADB Config Editor". Es quella attuale "ADB Config Editor 0.5.13.4"

Nella sezione "Router Info"

Spostamento di "Router Customer ID" dop la riga "Model name"
Spostamento di "Router IP" dopo la riga "Serial Number"
Spostamento di "Router NetMask" dopo la riga "Router IP"

E qui finiscono i valori statici non modificabili
Ora passiamo ai valori modificabili da menu.

Modifica di "BSD GUI visible" in "Restricted web GUI visible" (per allnearlo come voce a quella del menu)

Aggiungta della riga "Restricted CLI command enabled" con relativo valore true/false (oggi la riga non c'è)

Spostamento di "Firmware upgrade allowed" dopo la riga "Restricted CLI command enabled"
Spostamento di "Firmware downgrade allowed" dopo la riga "Firmware upgrade allowed"

Ho usato "Firmware" al posto di "Fw" perchè credo ci stia.
Ho usato "allowed" al posto di "permitted" perchè credo sia più corretto.

Aggiunta della riga "Fix dlinkdns - dlinkddns" con relativio valore true/false (oggi la riga non c'è)

In questo modo i valori statici sono tutti nella prima parte della sezione "Router info".

Poi ci sono i valori modificabili con lo stesso ordine e nome del menu di sblocco.

Nel menu Edit la voce "Preferences" non essendo attiva sarebbe preferibile metterla in grigio (non attiva) o modificare il testo per evidenziare che non è attiva. Es."Prefernces (not yet implemented)".

Che ne dici?

@bovirus Dovrei averle implementate tutte, a parte il cambio di nome di "BSD GUI visible", in quando "BSD" sta per Band Steering, attualmente viene mostrato lo stato, ma non c'e' la possibilita' di cambiarlo. Da notare che sul firmware di aprile e' sempre abilitato, mentre era disabilitato sul firmware di ottobre 2017. Versione aggiornata sempre sul mio github: https://github.com/digiampietro/adbtools2.

Ho implementato anche la possibilita' di memorizzare il file delle preferenze nella stessa directory di dove si trova confedit.exe (o confedit.py), di default viene memorizzato nella home directory dell'utente.

Bovirus
28-08-2018, 20:10
@palmerplam

Grazie per le modifiche.

Io nel frattempo ho trovato come "localizzare" gli script usando le stringhe in un file esterno in stile .po (Poedit).

Ho usato lo stesso sistema che ho suato per il programma DDT4ALL.
Basta sostiture le stringhe "xx" con _("xxx"). Esempiio

"Cancel" diventa _("Cancel")

Poi usando il coando xgettext si crea un file esterno di riferimento (adbtools2.pot = template).

In questo modo si possono tradurre tutte le stringhe (menu e stringhe).
Io direi di alsciare in ingelse le stringhe usate nei file di log che registrano le operazioni effettuate.
Che ne pensi?

Come si trasformano i file .py in eseguibile?

pimander
30-08-2018, 20:01
@palmerpalm

Volevo chiederti una cosa, come hai fatto a modificare l'immagine del firmware ?

E' possibile montarla su linux, ma è un jffs2 modificato, che usa lzma come compressione e non è nello standard, mi sembra che l'abbiano modificato quelli di open-wrt.
Per poter modificare un file che sia più grosso di qualche decina di bytes ci va il modulo del kernel modificato.

Hai usato open-wrt sotto qemu ?
E mi potresti dare qualche dritta su come mettere su un'ambiente del genere ?

Pare che tra poco rilasceranno una nuova versione del firmware e non mi stupirei se avessero sistemato la falla che hai trovato, quindi l'unica è agire prima e modificarlo.

palmerpalm
31-08-2018, 22:29
@palmerpalm

Volevo chiederti una cosa, come hai fatto a modificare l'immagine del firmware ?

E' possibile montarla su linux, ma è un jffs2 modificato, che usa lzma come compressione e non è nello standard, mi sembra che l'abbiano modificato quelli di open-wrt.
Per poter modificare un file che sia più grosso di qualche decina di bytes ci va il modulo del kernel modificato.

Hai usato open-wrt sotto qemu ?
E mi potresti dare qualche dritta su come mettere su un'ambiente del genere ?

Pare che tra poco rilasceranno una nuova versione del firmware e non mi stupirei se avessero sistemato la falla che hai trovato, quindi l'unica è agire prima e modificarlo.

Chiedo scusa del ritardo, in questi giorni ho pochissimo tempo e non riesco a rispondere tempestivamente ed in dettaglio, mi riprometto di farlo in seguito. Molto in breve:


L'immagine l'ho modificata con il "firmware-modification-kit" come documentato sul mio repository github: https://github.com/digiampietro/adbtools2
In pratica non si riesce a montare l'immagine su un normale Linux Desktop come Ubuntu, sia perche' JFFS2 e' strettamente legato ad un driver di flash memory (a differenza dei "normali" file system) e sia perche' il kernel deve avere la patch per la compressione LZMA del file system
Su Desktop si puo' estrarre JFFS2 con jefferson, ma ha un paio di problemi: trova un nodo duplicato e genera erroneamente due file system che vanno rimessi insieme rimettendo nelle opportune directory i file del secondo file system erroneamente generato (cosa che fa il mio mod-kit); inoltre non attribuisce correttamente i diritti di accesso ai file, neanche se lo si fa girare con "fakeroot"
Per vedere "realmente" il contenuto del file system ho usato buildroot per compilare un kernel con la patch per il supporto alla compressione lzma di JFFS2, con l'opzione "nandsim" per simulare una memoria nand-flash, e poi ho usato cancellazione della nand e nandwrite in modo analogo a come e' utilizzato sul router

Appena ho un po' di tempo scrivero' un post con il dettaglio di come ho configurato l'ambiente di emulazione.

pimander
01-09-2018, 11:50
Grazie Valerio :mano:
ho compilato senza problemi il mkfs.jffs2.

Adesso si tratta di mettere le mani sul prossimo firmware, e dargli un'occhiata. Non so ancora se poi lo modificherò e userò, dipende da cosa hanno sistemato, ammesso che non sia come finora, cioè togliere/nascondere o altre cose losche :D

Magari lo hai già scoperto nel forum, nel caso che distribuiscano il firmware solo attraverso l'acs si può usare questo pacchetto

https://github.com/bemre/honeything

per ottenerlo senza fare l'upgrade.

palmerpalm
03-09-2018, 10:53
Grazie Valerio :mano:

Magari lo hai già scoperto nel forum, nel caso che distribuiscano il firmware solo attraverso l'acs si può usare questo pacchetto

https://github.com/bemre/honeything

per ottenerlo senza fare l'upgrade.

Non conoscevo tale pacchetto, gli ho dato uno sguardo, sembra molto interessante.

Ho notato che da ADB (gli autori del firmware) hanno acceduto al mio repository Github, infatti nella sezione, visibile all'autore, relativo al traffico verso il repository si vede come sito di "referral": http://jira.adbglobal.com/browse/TAVV-512

adbglobal.com è il sito degli autori del firmware, jira.adbglobal.com è sicuramente un sito interno, infatti il DNS non viene risolto su Internet, ed è assai probabile si tratti di uno dei loro sistemi di "issue tracking" per cui avranno aperto un ticket, con codice TAVV-512, per correggere l'exploit da me descritto su github (https://github.com/digiampietro/adbtools2) ed hanno messo un link a tale repository dentro al loro sistema di "issue tracking".

C'è da aspettarsi un prossimo aggiornamento del firmware che blocchi questa possibilità di modifica e di manipolazione del file di configurazione.

Chi vuole mantenere questa possibilità dovrebbe disabilitare l'aggiornamento automatico del firmware.

Bovirus
03-09-2018, 11:02
Qualcuno è risucito a scaricare (magari tramite honeything) ilf rimware di Agosto 2018?

Wolf_adsl
03-09-2018, 12:51
Non conoscevo tale pacchetto, gli ho dato uno sguardo, sembra molto interessante.

Ho notato che da ADB (gli autori del firmware) hanno acceduto al mio repository Github, infatti nella sezione, visibile all'autore, relativo al traffico verso il repository si vede come sito di "referral": http://jira.adbglobal.com/browse/TAVV-512

adbglobal.com è il sito degli autori del firmware, jira.adbglobal.com è sicuramente un sito interno, infatti il DNS non viene risolto su Internet, ed è assai probabile si tratti di uno dei loro sistemi di "issue tracking" per cui avranno aperto un ticket, con codice TAVV-512, per correggere l'exploit da me descritto su github (https://github.com/digiampietro/adbtools2) ed hanno messo un link a tale repository dentro al loro sistema di "issue tracking".

C'è da aspettarsi un prossimo aggiornamento del firmware che blocchi questa possibilità di modifica e di manipolazione del file di configurazione.

Chi vuole mantenere questa possibilità dovrebbe disabilitare l'aggiornamento automatico del firmware.

Ciao, quindi è bene salvarsi una copia del file di configurazione del firmware attuale per utilizzi futuri.

Ciao W_A

pimander
03-09-2018, 12:57
Qualcuno è risucito a scaricare (magari tramite honeything) ilf rimware di Agosto 2018?

Non ci ho ancora provato perché probabilmente il firmware di test a Carciofone lo hanno dato direttamente.
Dopo i vari brikkati ci andranno piano prima di dare in giro qualcosa di non ben testato :D

pimander
03-09-2018, 13:19
Ho notato che da ADB ...

Ci spiano di sicuro, e magari recuperano pure qualche idea se non addirittura del codice :D

Spero che usino il mio programmino per il wol :sofico:

Bovirus
05-09-2018, 09:48
Grazie al contributo di palmerpalm ora il tools adbtools2 (per lo sblocco del file configurazione D-LINK DVA-5592) è ora sia in inglese che in italiano.

Vedi primi post.

bancodeipugni
12-09-2018, 21:58
bene grande lavoro appena ho tempo daro' un occhiata a tutto e installare il firmware per avere la shell sbloccata

a quel punto una delle prime cose che faro' spero di riuscire a installare un paio di script per un qos decente dato che praticamente il router non ce l'ha...

bancodeipugni
12-09-2018, 22:01
Ho compilato un programmino per il wakeonlan, in allegato.


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int main(int argc, char **argv)
{

int fd; // file descriptor for the connected socket
unsigned char buf[512];
struct sockaddr_in servaddr; // server's address
socklen_t slen = sizeof(servaddr);
int broadcastOn = 1;


if(argc != 3)
{
printf("usage: %s subnet macaddress\n", argv[0]);
return 1;
}
int m[6];
if(4 != sscanf(argv[1], "%d.%d.%d.%d", &m[0], &m[1], &m[2], &m[3]))
{
printf("invalid subnet\n");
return 1;
}

if(6 != sscanf(argv[2], "%02x:%02x:%02x:%02x:%02x:%02x", &m[0], &m[1], &m[2], &m[3], &m[4], &m[5]))
{
printf("invalid macaddress\n");
return 1;
}

memset((char*)&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(9);
if(inet_aton(argv[1] , &servaddr.sin_addr) != 1)
{
fprintf(stderr, "inet_aton() failed\n");
return 1;
}

if((fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0)
{
perror("cannot create socket");
return 1;
}

int i;
for(i = 0; i < 6; i++)
buf[i] = 0xff;
for(i = 0; i < 6; i++)
buf[i + 6] = m[i];
for(i = 0; i < 15; i++)
memcpy(&buf[12 + 6 * i], &buf[6], 6);
buf[102] = 0;

setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &broadcastOn, 4);

int ret = 0;
if (sendto(fd, buf, 102, 0, (const struct sockaddr *)&servaddr, slen) == -1)
{
perror("cannot sendto()");
ret = 1;
}
close(fd);
return ret;
}




Una volta copiato sul router dovete renderlo eseguibile con:

chmod a+x wakeonlan

e poi, a meno che non vogliate divertirvi a ricavare i parametri da Startup.xml per piazzare il comando sotto (cfg-mngt-hosts-host), potete semplicemente aggiungere, per esempio sotto system, tanti comandi per quanti host volete, dando come comando:

/path-dove-lo-avete-messo/wakeonlan 192.168.1.255 aa:bb:cc:dd:ee:ff

sostituendo la sottorete e il macaddress.

questo l'ho visto adesso

servaddr.sin_port = htons(9);
metti il parametro della porta cosi' è fisso sulla 9 se no qualche scheda potrebbe avere da fare

adesso pero' ti tocca anche modificare la pagina web "rete utente" aggiungendo la possibilità di risvegliare l'host giu :sofico:

pimander
13-09-2018, 12:56
:D Non so se la porta sia gestita davvero dalle schede capaci di WOL, la cosa importante è il flag Broadcast nel pacchetto.
Se qualcuno avrà dei problemi lo modifichero...

E per spegnere, beh, cosa lo svegli a fare un pc se poi non ti ci connetti con vnc o desktop remoto ? Stai fresco che provo a modificare quella web gui :D

bancodeipugni
13-09-2018, 17:14
non hai capito
accendere: chiaramente a spegnere uno s'arrangia

mi sembra di ricordare che il fratello 5582 aveva questa funzione nella gui a comparsa che del resto è tutta uguale

ad avercene, basterebbe "copiarla"
i firmware credo siano parecchio simili tra di loro

pimander
13-09-2018, 17:53
Sarebbe sicuramente più facile farlo nel clish, ti eviti quei template strani.
Ma non mi sembra proprio il caso, che hai una rete aziendale ?
:sofico:

bancodeipugni
14-09-2018, 21:47
no

ma perchè non hanno ereditato il codice dal sorgente del 5582 ? :mbe:
è uguale a questo praticamente ma senza 35b scp e usb 3.0

se si riuscisse a copiare probabilmente funzionerebbe

potto685
18-09-2018, 20:08
Ciao, scusatemi non vorrei andare troppo OT
Potreste condividere i file .ipk in qualche modo?
Vorrei provare a flasharli da recovery visto che non trovo un firmware che venga accettato ed è da mesi che sono costretto a tenermi sto router che si è brickato con il loro aggiornamento da remoto :cry:
(Non mi cambiano il router perchè non riescono ad attivarmi la fibra.... evito di dilungarmi :muro: )

Bovirus
18-09-2018, 20:25
@potto685

Di quale file .ipk stai parlando?

Devi usare il firmware originale, estratto dal file compresso e caricato con il mdoem in modo recovery.

Il modem va collegato al pc con scheda di rete etherenet con ip statico 192.168.2.

potto685
18-09-2018, 21:55
@Bovirus
Mi sembrava di aver capito che siete riusciti ad estrarre dei file relativi alle partizioni del router e speravo si potessero flashare dalla modalità recovery.. Forse ho solo interpretato male..
Comunque il mio problema è che dalla recovery ottengo sempre 'Image uploading failed. The selected file contains an illegal image.'
Sia passando lo zip che il .sig
Se invece seleziono una partizione dal menù a tendina prima di caricare il file, dice upload in corso ma poi non fa nulla..
Sapresti indicarmi un modo per provare a resuscitare questo router?

bancodeipugni
20-09-2018, 17:45
ci va in idle come i netgear ? da spento tener premuto il reset e avviare tenendolo sempre premuto ? dovrebbero lampeggiare 2 led

dlp
23-09-2018, 08:20
Con questo firmware DVA-5592_A1_WI_20180823 il confedit nom sembra più in grado di abilitare la possibilità di fare il downgrade del firmware. Vi risulta?

pimander
23-09-2018, 10:03
Non ho ancora avuto tempo di analizzare bene il firmware, per cui è da prendere con le molle, ma a occhio hanno aggiornato quasi tutto, kernel, busybox e gli altri eseguibili. Anche la parte dell'upgrade è stata modificata, gestendo anche un "secure version" o qualcosa del genere, poi hanno tolto la cartella cmws dalla web gui, il che mi fa pensare che ci vogliono far credere che il tr069 sia disabilitato mentre non lo è.
Conoscendo la tradizione non mi stupirei se stavolta avessero fatto in modo che non sia più possibile tornare a versioni precedenti. Ho letto qualcuno che ha detto che adbtools funziona e che le pagine web sono sbloccate, ma bisognerebbe anche controllare se la password del voip è ancora visibile, nonché se il trucco trovato da palmerpalm funziona ancora :boh:

dlp
23-09-2018, 10:27
Tutti i menu della Gui che erano sbloccati prima lo sono anche con il nuovo firmware però alcuni non fanno ciò che devono. Ad esempio il failover è in sola lettura anche se viene impostato read/write quindi non è disabilitabile. La sensazione è che ad ogni aggiornamento si concentrino più sul togliere che sul risolvere. Il Nat loopback non funziona ancora ed è presente nei router di fascia infima da oltre 10 anni. Mah staremo a vedere.

Bovirus
23-09-2018, 11:33
@dlp

Ti confermo che adbtools2, usando il file impostazioni salvato con il firmware di agosto 2018, non è in grado di abilitare il downgrade del firmware.

Un'altro bug minore di adbtoosl2 è che salvando il file (xml o bin) non imposta l'esetensione del file e bisogna ricordarsi di aggiungerla manualmente.

pimander
23-09-2018, 11:36
La sensazione è che ad ogni aggiornamento si concentrino più sul togliere che sul risolvere.

Direi che è proprio così :D

A questo punto bisognerebbe ancora verificare se hanno tappato la falla scoperta da palmerpalm...

bancodeipugni
23-09-2018, 22:02
aggiornato il kernel ? :mbe:
questa sarebbe una novità

sarebbe il primo router broadcom di questi col 35b che lascia il 3.4.11

che versione c'e' adesso ?

pimander
24-09-2018, 08:03
Non è detto che sia cambiata la versione, solo i vari moduli sono diversi come dimensione e data.

palmerpalm
24-09-2018, 09:08
Non è detto che sia cambiata la versione, solo i vari moduli sono diversi come dimensione e data.

Non ho ancora analizzato, né provato il nuovo firmware DVA-5592_A1_WI_20180823 sul router, ma, estraendo il file system con binwalk, "decomprimendo" il kernel che si trova nel file vmlinux.lz e guardando le stringhe che ci sono dentro (con il comando 'strings') si vede la seguente stringa identificativa:

Linux version 3.4.11-rt19 (l.fornalczyk@quelo) (gcc version 4.5.4 20120306 (prerelease) (Linaro GCC 4.5-2012.03) ) #1 SMP PREEMPT Thu Aug 23 11:05:53 CEST 2018


Il che ci dice che la versione del kernel è rimasta la stessa, magari il kernel lo hanno recompilato con qualche cambio nella configurazione.

P.S. se a qualcuno interessa, il kernel l'ho decompresso con il seguente script:


#!/bin/bash
# from ADB vmlinux.lz to his components
# usage: extract-vmlinux.lz.sh /path/to/vmlinux.lz
#
KER=$1
dd if=$KER bs=1 skip=0 count=4 of=1-loadoffset.bin
dd if=$KER bs=1 skip=4 count=4 of=2-entrypoint.bin
dd if=$KER bs=1 skip=8 count=4 of=3-compressedsize.bin
dd if=$KER bs=1 skip=12 count=8 of=4-magic.bin

v=`xxd -p 3-compressedsize.bin`
HEXSIZE=`echo ${v:6:2}${v:4:2}${v:2:2}${v:0:2}`
LZSIZE=`echo $((0x${HEXSIZE}))`

dd if=$KER bs=1 skip=20 count=$LZSIZE of=5-compressed.bin
cat 5-compressed.bin | lzcat > 6-uncompressed.bin

palmerpalm
24-09-2018, 21:19
@dlp

Ti confermo che adbtools2, usando il file impostazioni salvato con il firmware di agosto 2018, non è in grado di abilitare il downgrade del firmware.

Un'altro bug minore di adbtoosl2 è che salvando il file (xml o bin) non imposta l'esetensione del file e bisogna ricordarsi di aggiungerla manualmente.

Ho capito perche' si verifica, se pero' si carica un file di configurazione salvato con la vecchia versione, in cui il downgrade era abilitato, dovrebbe ancora essere possibile fare il downgrade.

Comunque con la vecchia versione, quando il downgrade era disabilitato, sul file di configurazione del CPE decriptato c'erano le seguenti righe, nella sezione "DeviceInfo":


<X_ADB_TR098Ready>true</X_ADB_TR098Ready>
<X_DLINK_fw_upgr_permitted>false</X_DLINK_fw_upgr_permitted>
<X_DLINK_customer_ID>WI</X_DLINK_customer_ID>
<X_DLINK_BsdGuiVisible>true</X_DLINK_BsdGuiVisible>
<X_DLINK_AllowFirmwareDowngrade>false</X_DLINK_AllowFirmwareDowngrade>
<X_ADB_PowerManagement>


il programma confedit per abilitare il firmware upgrade/downgrade modificava il relativo "false" in "true". Con il nuovo firmware, salvando il file di configurazione e decifrandolo in modo analogo invece ci sono le seguenti righe:


<X_ADB_TR098Ready>true</X_ADB_TR098Ready>
<X_DLINK_customer_ID>WI</X_DLINK_customer_ID>
<X_DLINK_BsdGuiVisible>true</X_DLINK_BsdGuiVisible>
<X_ADB_PowerManagement>


Ossia le opzioni di X_DLINK_fw_upgr_permitted e X_DLINK_AllowFirmwareDowngrade mancano completamente e l'attuale versione di confedit non le modifica. Se pero' si aggiungono (e l'ho provato modificando a mano tale file) il downgrade risulta abilitato.

Nei prossimi giorni conto di implementare questa modifica su confedit.

bancodeipugni
24-09-2018, 21:31
allora per stavolta siamo salvi

si' il kernel evidentemente lo ha buttato fuori la broadcom una volta sola poi hanno girato intorno le varie modifiche i vari brand...

è un kernel anche abbastanza datato siamo sui livelli del 2011

io ho ancora il 2017 se ci sono novità interessanti di sviluppo potrei anche aggiornare

palmerpalm
24-09-2018, 22:09
Confermo che anche con la nuova versione del firmware (DVA-5592_A1_WI_20180823.sig) si puo' entrare in "factory mode" e funziona il mio hack per diventare root. Non funziona il caricamento del firmware non ufficiale, perche' lo vede come un downgrade, ma copiando /usr/sbin/custom-upgrade-check.sh in /tmp, modificandolo e poi usando il "mount --bind" si riesce lo stesso a caricare il firmware non ufficiale.

Nei prossimi giorni modifichero' l'hack-script per fare la cosa in automatico e modifichero' il "firmware modification kit" per farlo funzionare con l'ultima versione del firmware.

Wolf_adsl
25-09-2018, 16:20
Ciao, con il tool si riesce ad abilitare il pannello del TR69 per abilitare/disabilitare la gestione remota del provider (firmware 2018_04)?

Ciao W_A

dlp
25-09-2018, 16:39
Ciao, con il tool si riesce ad abilitare il pannello del TR69 per abilitare/disabilitare la gestione remota del provider (firmware 2018_04)?

Ciao W_A

Si il pannello si attiva. Una volta attivato lo trovi a questo indirizzo: http://192.168.1.1/ui/dboard/settings/management/tr069?backto=settings/management

palmerpalm
25-09-2018, 21:27
@dlp

Ti confermo che adbtools2, usando il file impostazioni salvato con il firmware di agosto 2018, non è in grado di abilitare il downgrade del firmware.

Un'altro bug minore di adbtoosl2 è che salvando il file (xml o bin) non imposta l'esetensione del file e bisogna ricordarsi di aggiungerla manualmente.

Ho aggiornato adbtools2 (https://github.com/digiampietro/adbtools2/archive/master.zip) in modo da abilitare il downgrade/upgrade del firmware anche con l'ultimo firmware DVA-5592_A1_WI_20180823.sig.

L'altro bug minore non l'ho corretto perche' si verifica con il .exe compilato, ma non mi si verifica con lo script python eseguito sotto Linux, dove normalmente "opero".

Ho anche aggiornato "hack-script.sh" per permettere il caricamento di firmware non ufficiale e non firmato, anche quando tale firmware dovesse essere di una versione inferiore rispetto all'ultimo firmware caricato del 23 agosto 2018.

Totix92
26-09-2018, 01:09
sarebbe il primo router broadcom di questi col 35b che lascia il 3.4.11

No, il Fritz!Box 7581 (Broadcom) già con la prima beta del firmware 6.98 è passato al kernel 4.1.38
e penso sia l'unico modem/router con il Broadcom ad avere un kernel più recente del 3.4.11

dlp
26-09-2018, 17:10
Ho aggiornato adbtools2 (https://github.com/digiampietro/adbtools2/archive/master.zip) in modo da abilitare il downgrade/upgrade del firmware anche con l'ultimo firmware DVA-5592_A1_WI_20180823.sig.

L'altro bug minore non l'ho corretto perche' si verifica con il .exe compilato, ma non mi si verifica con lo script python eseguito sotto Linux, dove normalmente "opero".

Ho anche aggiornato "hack-script.sh" per permettere il caricamento di firmware non ufficiale e non firmato, anche quando tale firmware dovesse essere di una versione inferiore rispetto all'ultimo firmware caricato del 23 agosto 2018.

Grazie. Ne ho approfittato per tornare a gambe levate al firmware DVA-5592_A1_WI_20180405

bancodeipugni
26-09-2018, 17:43
No, il Fritz!Box 7581 (Broadcom) già con la prima beta del firmware 6.98 è passato al kernel 4.1.38
e penso sia l'unico modem/router con il Broadcom ad avere un kernel più recente del 3.4.11

è anche ora :D

bisogna vedere se ha la stessa board e monta processore analogo (dubito)

poi non ha l'scp il che lo strozza già in partenza

Totix92
26-09-2018, 19:01
è anche ora :D

bisogna vedere se ha la stessa board e monta processore analogo (dubito)

poi non ha l'scp il che lo strozza già in partenza

stesso SoC
BCM63136V
variante del BCM63138 con supporto al voip.
Ovviamente il resto dell'hardware è diverso, ma è pur sempre lo stesso Broadcom medesimo di altri apparati con supporto al 35b
Il D-Link tra l'altro ha anche tutti i moduli Broadcom persino più vecchi di quelli presenti nello Zyxel VMG-8823, driver xdsl compreso.
Volendo potrebbero aggiornali senza problemi, kernel compreso, ma dubito si sbatteranno per farlo :D continueranno sicuramente sempre sulla base attuale, gli unici che aggiornano frequentemente il tutto sono Asus con il DSL-AC88U e AVM con il 7581, ma anche Zyxel con il firmware non brandizzato del VMG-8823 ( quest'ultima almeno la parte driver xdsl, il resto no. )

palmerpalm
29-09-2018, 22:58
Qualcuno nel forum aveva chiesto come ero arrivato a trovare la vulnerabilità sul router che ha permesso di diventare root, mi ero ripromesso di documentarlo ed ho iniziato a farlo. La documentazione è ancora largamente incompleta ma è su GitHub dove ho creato un altro repository: [buildroot-armv7](https://github.com/digiampietro/buildroot-armv7) che, al momento, contiene:



Tutto il necessario (scripts, file di configurazione ecc.) per creare, su Linux, l'ambiente di emulazione dove far girare gli eseguibili del router.

L'ambiente utilizza una vecchia versione del 2014 di buildroot (necessario per avere la stessa versione di uClibc, di libgcrypt e altre librerie usate nel router).

Tale versione di buildroot non la si riesce a far girare in una versione recente di Ubuntu (provato ma da molteplici errori di compilazione che non spariscono neanche provando versioni più vecchie di gcc), pertanto è stato necessario ricorrere a Docker per creare una immagine basata su Debian Wheezy, che è una distribuzione uscita nel 2013.

In Buildroot viene utilizzato un "external tree", tramite la variabile BR2_EXTERNAL.

Nell' "external tree" sono stati inclusi i file di configurazione (di "defconfig") sia di Buildroot, del kernel che di uClibc ed i file di patch del kernel per aggiungere, principalmente ma non solo, il supporto al file system JFFS2 con la compressione LZMA che non fa parte del kernel standard.

Il root file system, generato da Buildroot, viene poi emulato in Qemu. La macchina emulata, oltre ad avere un processo ARM v7 Cortex-A9, ha anche uClibc, libgcrypt ed altre librerie della stessa versione, o versioni compatibili, rispetto a quelli presenti nel router. E' incluso anche il modulo "nandsim" del kernel per emulare una NAND flash memory dove caricare l'immagine del file system JFFS2 (non ancora documentato sul repository come fare, ma lo farò a breve)

Tutte gli eseguibili e le librerie del root file system della macchina virtuale sono stati compilati con tutte le informazioni di debugging in modo che, almeno le chiamate alle librerie, possano essere facilmente comprese quando si utilizza gdb (Gnu Debugger) per fare del "reverse engineering" sugli eseguibili del router.

Nel root file system della macchina emulata, nelle cartelle /dva-root e /dva-firm, sono stati inclusi i files del router ed i file del firmware e le immagini JFFS2 del root e boot file system del router.

A titolo di esempio è illustrato l'utilizzo di gdb per fare il "reverse engineering" dell'eseguibile sig_verify che verifica la firma digitale del firmware in fase di caricamento. Questo esempio, sebbene non utile al fine di diventare "root" sul router, è comunque interessante perchè si riesce a verificare esattamente cosa fa l'eseguibile e persino a ricostruire il certificato con la chiave pubblica per fare la stessa verifica con OpenSSL.



Questa configurazione utilizzata ha richiesto una notevolissima quantità di tempo per essere messa a punto, a causa dei numerosi tentativi, problemi incontrati e correzioni effettuate. Inizialmente, ad esempio, avevo provato con versioni più recenti di Buildroot, ma i binari del router davano errori perchè non trovavano le librerie che si aspettavano; ho allora provato a prendere versioni più vecchie di Buildroot, ma queste non mi si compilavano sulla mia versione di Ubuntu e, dopo molteplici tentativi, ho capito che avrei dovuto usare Docker con una immagine basata su una versione più vecchia di Linux. Poi, dopo aver abilitato la compilazione con i simboli per il debugging, questa impostazione veniva ignorata da uClibc. Ho allora configurato, con "menuconfig" uClibc per utilizzare i simboli di debugging, ma questa impostazione dava degli errori irrisolvibili (almeno da me) in fase di compilazione, ho allora dovuto usare dei workaround che descriverò in seguito sul repository. Una volta compilato uClibc con i simboli per il debugging, il break sulle funzioni di libreria "open" e "read" sembravano essere ignorate, anche qui ho poi trovato un workaround.

dlp
30-09-2018, 08:33
Una domanda prima cimentarmi nel rooting.....non ho capito se una volta ottenuti i permessi di root attraverso hack-script.sh (senza fare le successive modifiche al firmwere) riavviato il router e risettato la configurazione è possibile accedere alla shell root durante il funzionamento normale? Basta digitare System shell da CLI?

palmerpalm
30-09-2018, 10:42
Una domanda prima cimentarmi nel rooting.....non ho capito se una volta ottenuti i permessi di root attraverso hack-script.sh (senza fare le successive modifiche al firmwere) riavviato il router e risettato la configurazione è possibile accedere alla shell root durante il funzionamento normale? Basta digitare System shell da CLI?
Se non si modifica il firmware, al riavvio, tutto torna come prima. Le modifiche effettuate da hack-script.sh sono temporanee, permangono fino al prossimo riavvio. Per ottenere modifiche permanenti occorre modificare il file system possibilmente caricando il firmware non ufficiale.

dlp
30-09-2018, 12:24
Grazie

maryx
08-10-2018, 14:26
Salve a tutti , vi chiedo un consiglio attualmente ho il firmware DVA-5592_A1_WI_20180823 volevo passare al 2017 vale la pena o resto dove sono?
se si ho visto un video di come farlo su youtube
https://www.youtube.com/watch?v=IjoAxkpfUgw
Posso seguirlo ho esiste un altro modo ?
mi affido a voi grazie mille dei vostri consigli e eventuali guide.:)

Bovirus
08-10-2018, 15:07
@maryx

Perchè vuoi fare il downgrade?

Devi abilitare inoltre nel firmware il downgrade.

Questo lo puoi fare

- salvando il file di configurazione
- modificare il file di configurazioen cona dbtools abilitando ild owngrade
- ricaricando quindi il file di configurazione modificato nel mdoem.

maryx
08-10-2018, 16:19
@maryx

Perchè vuoi fare il downgrade?



perchè ho visto che si può aumentare la potenza del wi-fi modificando tramite telnet lo lo stato (da italia a USA) e per poter bloccare l'aggiornamento automatico .

però se mi dici che non ha senso lascio com'è!

maryx
08-10-2018, 17:40
Come non detto ho fatto con dbtools !! fantastico:D :D


per quanto riguarda il firmware a questo punto posso lasciare quello attuale il 20180405 ?
o mi consigliate uno diverso?

Bovirus
09-10-2018, 05:55
@maryx

Mettere il Wifi come USA può aumentare la potenza in uscita ma non è garantito che aumenti la portata.

Inoltre gli standard sono diversi e potersti riscontrare più problemi.
Io lascerei il firmware attuale.

palmerpalm
06-11-2018, 22:06
Se a qualcuno dovesse interessare, il 3 e 4 dicembre a Firenze c'è una conferenza su Linux embedded e non solo (dettagli su https://2018.linux-lab.it/).

Ci sarò anche io a presentare "Introduction To IoT Reverse Engineering with an example on a home router" dove l'esempio sull'home router è relativo a adbtools2 ed alla modifica del firmware del DVA-5592 come documentato su https://github.com/digiampietro/adbtools2 e su https://github.com/digiampietro/buildroot-armv7

Se qualcuno è interessato me lo faccia sapere, ho ancora un paio di biglietti gratuiti.

bancodeipugni
07-11-2018, 13:02
ah perchè se paga pure ? :mbe:

voglio dire l'argomento è di nicchia, non siamo a un concerto di fabri fibra... quindi non mi capacito la cosa :mbe:

palmerpalm
07-11-2018, 21:05
ah perchè se paga pure ? :mbe:

voglio dire l'argomento è di nicchia, non siamo a un concerto di fabri fibra... quindi non mi capacito la cosa :mbe:

Premesso che non ho nessuna relazione con gli organizzatori dell'evento, ho semplicemente risposto al loro "Call For Papers" proponendo l'argomento; in realtà non mi sembra così strano, il loro target, oltre agli studenti per cui c'è un costo ridotto, e agli appassionati è, soprattutto, i vari sviluppatori linux del mondo aziendale.

Inoltre l'evento è ben organizzato (io ho partecipato, qualche anno fa, ad un paio di eventi su Python organizzati sempre da loro), devono recuperare il costo della location nell'albergo ed inoltre il biglietto include pranzo e coffe breaks.

Parecchi speakers sono dei protagonisti del mondo Linux e del mondo embedded Linux come Jonathan Corbet, noto sviluppatore del Kernel Linux e vari Device Drivers oltre che editore di LWN.net, Nic Jackson, autore di “Building Microservices in Go”, Thomas Gleixner, un altro sviluppatore del kernel Linux, Thomas Petazzoni, principale mantainer di Buildroot e altri personaggi noti agli appassionati del mondo Linux.

xool
17-01-2019, 13:21
Ciao a tutti, ho letto qua e là il thread e sono sincero non ho capito molto dove si è arrivati con il mod.
Io ho questo router come ferma carte per via di una disattivazione di infostrada e mi piacerebbe smanettarci... Magari per sbloccarlo e utilizzarlo con altre linee.
Come siamo messi?

Bovirus
17-01-2019, 13:27
@xool

Non serve nessuna mod. Il modem non è bloccato.

È usabile con qualsiasi provider inserendo i dati che ti deve dare il provider.

xool
17-01-2019, 13:36
Caspita! avevo inteso che fossero bloccati e che non fosse possibile impostare i parametri di connessione del VOIP ad esempio.

bancodeipugni
17-01-2019, 16:58
no piuttosto se ti si pianta che si brikka non si riesce a recuperare con l'interfaccia di ripristino di recovery

non si capisce in che formato vuole il firmware, se diviso in 3, se unito, in che formato...
glieli ho provati a dare in pasto tutti, usando il tool di estrazione del firmware e ricompressione in lzma, ma senza esito

sull'altro forum io e un altro utente stiamo provando da tempo a trovare un modo per caricargli i file per ripristinarlo, anche aprendolo e collegandolo pin to pin via seriale, ma pare che il bootloader comandi manuali per l'upload diretto non ne abbia...

c'e' quest'interfaccia su http://192.168.1.1 sul quale pare si possano caricare i files immagine ma non glie ne va bene neanche uno

se cosi' fosse, male, perchè chi si arrischia di mettere un firmware con delle modifiche se in caso di errore (e capita di sicuro) non si riesce più a recuperare il router ?

abbiamo provato a mandare messaggi e mail a palmer che ci aveva trafficato su parecchio con un router aggiuntivo preso apposta per smanettare, ma pare che dopo il vernissage di cui sopra non si sia più sentito

jaky75
03-02-2019, 17:56
Guardando la foto della board è molto probabile che j201 sia il connettore jtag

Bovirus
03-02-2019, 18:06
@jaky75

Di quali foto stai parlando?

jaky75
03-02-2019, 21:58
Mi riferisco alle foto interne del router dove si vedono anche i pin della seriale.

giulio3x
03-02-2019, 22:31
e oggi voip down, ho chiamato infostrada e mi hanno riavviato questo modem da remoto e poi senza dirmi nulla (me ne sono accorto dopo) mi hanno anche aggiornato il modem all'ultima release di agosto...
se almeno me lo diceva... vabbè spero solo non peggiori le condizioni questo aggiornamento...

Bovirus
04-02-2019, 05:40
Mi riferisco alle foto interne del router dove si vedono anche i pin della seriale.

In quale post sono le foto della board?

jaky75
04-02-2019, 06:59
In quale post sono le foto della board?

Sono le foto di palmerpalm del post 31 segnalate anche in prima pagina.

Motherboard vista da sopra: http://va.ler.io/myfiles/dva/front.jpg
http://va.ler.io/myfiles/dva/front.jpg

Bovirus
04-02-2019, 08:00
@palmerpalm

Le resistenze


R102
R226
R227


che portano i segnali


VCC
TX
RX

sono saldate o le relative piazzole sono vuote?

jaky75
04-02-2019, 23:07
@palmerpalm

Le resistenze


R102
R226
R227


che portano i segnali


VCC
TX
RX

sono saldate o le relative piazzole sono vuote?

Sono presenti altrimenti non funzionerebbe la seriale....

loa-ash
11-02-2019, 09:41
ciao ragazzi, sono l'utente a cui si riferisce @bancodeipugni, per circa 1 mese e mezzo ho provato tramite Arduino a cercare di ripristinare questo router ma ancora non c'è stato verso, ho provato a contattare palmer, che a quanto pare è http://va.ler.io/, sia via mail che su facebook ma nessuna risposta.. aspetto fiducioso!

MaxiStarling
27-02-2019, 20:26
Scusate l' ignoranza ma qualcuno è per caso riuscito ad installare un qualche firmware alternativo e libero come OpenWRT o similare?

Bovirus
28-02-2019, 05:51
@MaxiStarling

Se non trovi indicazioni nei primi post la risposta è ovvia: no.

Poi mi spiegherai quali vantaggi ha installare un firmware tipo OpenWRT che come abbiamo già discusso in passatato, non sfruta tutte le funzionalità dei nuovi chispet dei modem.

Bovirus
26-03-2019, 08:24
@UltimateBou

Secondo me non è una domanda per il thread del firmware modding ma per il thread ufficiale del modem.


Io ho un Xiaomi Mi A1 (con Android 9), uso Netflix e Amazon Prime e con questo modem D-Link non ho nessun problema.

Secondo me non c'è necessità di fix di questo tipo.

MYRKO
03-04-2019, 17:36
Se volessi installare antene esterne del wifi 2.4 quali sono ?
Grazie

Bovirus
03-04-2019, 19:25
@MYRKO

Come le monti le antenne esterne?

MYRKO
04-04-2019, 14:51
con prolunga mini pci attacco sulla scheda a incasto e poi fine del cavo l antenna nel posizione piu ottimale..ma vorrei consigli!!
Per il firmware mod si puo potenziare da menu?
Grazie

Bovirus
04-04-2019, 15:04
@MIRKO

Non ci ho capito niente in merito alle antenne esterne.
Non esiste firmware mod.

MYRKO
04-04-2019, 16:04
Io ho l'ultimo firmware vorrei solo cambiare regione al modem per aumentare la portata del wifi..ma mi sa che si deve per forza tornare al firmware 2017 e.poi riconfigurare il voip

Bovirus
04-04-2019, 16:10
@MIRKO

Secondo me cambiare la potenza di uscita cambiando regione (continente) nel mdoem non è la soluzione migliore.

In qaunto si potrebbero verificare problemi di compatibilità.

Il problema della scarsa portata non si risolve aumentando la potenza ma migliorando la sensibilità dei ricevitori con diverse tecniche (es. orientamento antenne e/o uso repetear).

MYRKO
05-04-2019, 16:37
quindi se privo a mettere le antenne esterne al modem non risolvo nulla?
Grazie

misterx12
27-05-2019, 17:09
ragazzi ho questo modem sbloccato vorrei usarlo come reapeter wireless ho spulciato tra le impostazioni ma non mi pare aver trovato nulla avete qualche info sulla fattibilità
__________________

Fede T.
02-06-2019, 09:14
ragazzi ho questo modem sbloccato vorrei usarlo come reapeter wireless ho spulciato tra le impostazioni ma non mi pare aver trovato nulla avete qualche info sulla fattibilità
__________________


Leggi qui (https://www.dlink-forum.info/index.php?topic=4000.0) ;)

Prof. Nerpiolini
11-06-2019, 06:03
Una domandina al volo... anzi 2

1)
Avendo un problema con la linea e dovendo richiedere l'assistenza di Wind, dovrei riabilitare il TR069 (e tutto il resto), ma vorrei anche essere sicuro di poterlo disabilitare dopo risolto il problema.
Con l'ultimo firmware (che sicuramente il tecnico Wind mi metterà d'ufficio), si può ancora, con il vecchio file di configurazione, riabilitare le funzionalità Telnet e ribloccare il TR069 ?
Anche mantenendo l'ultimo firmware, volendo... non è che mi sono fissato con quello del 2017, ma mi da parecchio "fastidio" che un qualunque "esterno" (chiunque esso sia) abbia la possibilità di smanettare a suo comodo dentro il (quasi) mio rouiter :eh:

2)
Eventualmente, questo adbtools2 funzia anche con Windows o solo con Linux ?

Grazie.

Bovirus
11-06-2019, 06:09
adbtools2 è compatibile con Windows.

skintek-skintek
11-06-2019, 14:32
Una domandina al volo... anzi 2

1)
Avendo un problema con la linea e dovendo richiedere l'assistenza di Wind, dovrei riabilitare il TR069 (e tutto il resto), ma vorrei anche essere sicuro di poterlo disabilitare dopo risolto il problema.
Con l'ultimo firmware (che sicuramente il tecnico Wind mi metterà d'ufficio), si può ancora, con il vecchio file di configurazione, riabilitare le funzionalità Telnet e ribloccare il TR069 ?
Anche mantenendo l'ultimo firmware, volendo... non è che mi sono fissato con quello del 2017, ma mi da parecchio "fastidio" che un qualunque "esterno" (chiunque esso sia) abbia la possibilità di smanettare a suo comodo dentro il (quasi) mio rouiter :eh:

2)
Eventualmente, questo adbtools2 funzia anche con Windows o solo con Linux ?

Grazie.

Ciao a tutti,
ti invito ad andare a leggere la mia esperienza con l'ultimo fw e la mia volontà di stare con fw DVA-5592_A1_WI_20180405 in quanto, per la mia situazione, è più stabile. Salva la tua config per poterla ricaricare.
Molti dicono che l'ultimo fw sia il migliore, io sono l'eccezione ......
https://www.hwupgrade.it/forum/showthread.php?t=2842208&page=234
post 4669

Ciao a tutti.
Eros

Prof. Nerpiolini
11-06-2019, 15:47
Ciao Eros, e grazie veramente per il link e la procedura descritta :cincin:

Due domande:
* - Tu all'inizio avevi il ^DVA-5592_A1_WI_20180823^ (che dovrebbe essere ancora l'ultimo, se non sbaglio, e hai downgradato al ^DVA-5592_A1_WI_20180405^) giusto ?
* - Con il downgrade a questo "mediano", hai a disposizione tutti i "vecchi" comandi Telnet, come se lo riportassi al + vecchio ^DVA-5592_A1_WI_20170908^ ?

Non per altro, visto che con il vecchio del 2017 mi trovo bene e non ho nessun problema di sorta, ma se con il ^20180405^, oltre che bloccare il TR069 (per me prioritario) si avesse ripristinati anche i comandi Telnet, ci farei un pensiero a provarlo.


@ chiunque

Con questo "adbtools2-master.zip" è possibile abilitare la gestione del TR069 e ripristinare i vecchi comandi Telnet anche nel ultimo firmware ^DVA-5592_A1_WI_20180823^ senza per forza downgradare a nessun altro firmware ?

Grazie.

skintek-skintek
12-06-2019, 15:03
ciao a tutti

@Prof. Nerpiolini:
si, sono passato dall'ultimo 20180823 al 20180405 per problemi di tenuta della linea che è una 200/20 della 3.
Il TR069 hai la possibilità di disabilitarlo (non so se anche nella 20180823) nel mio caso nella 20180405 altrimenti ti ritrovi con l'ultima release installata.
Non ti so dire se sono abilitati tutti i comandi telnet ma molti nascorti risorgono.
Presumo che più vai indietro come release più sei libero di fare quello che vuoi.

Ti faccio presente che a me basta che non mi vada down la linea ogni 2 x 3, altre prove non ne ho fatte.

ciao a tutti.
Eros

palmerpalm
05-10-2019, 16:19
Forse a qualcuno può interessare sapere che a RomHack 2019, conferenza sulla sicurezza tenutasi a Roma sabato scorso, ho fatto un intervento, in italiano, sulla introduzione al reverse engineering di dispositivi IoT con un esempio di hacking su questo router, dove ho descritto brevemente (avevo solo 45 minuti a disposizione), come sono diventato root e come ho modificato il firmware di questo router.
Il link al video è questo: https://www.youtube.com/watch?v=2T_1UeK3h8M
Il link al sito di RomHack è: https://www.romhack.io/

P.S. sono l'autore di adbtools2 (https://github.com/digiampietro/adbtools2)

lillo2k1
17-10-2019, 15:23
Forse a qualcuno può interessare sapere che a RomHack 2019, conferenza sulla sicurezza tenutasi a Roma sabato scorso, ho fatto un intervento, in italiano, sulla introduzione al reverse engineering di dispositivi IoT con un esempio di hacking su questo router, dove ho descritto brevemente (avevo solo 45 minuti a disposizione), come sono diventato root e come ho modificato il firmware di questo router.
Il link al video è questo: https://www.youtube.com/watch?v=2T_1UeK3h8M
Il link al sito di RomHack è: https://www.romhack.io/

P.S. sono l'autore di adbtools2 (https://github.com/digiampietro/adbtools2)

Notevole....45 minuti molto interessanti!!.

Anto

smx
27-11-2019, 01:24
Ciao a tutti

Ho conttatato la Free Software Foundation e ho ottenuto il rilascio di parte del codice GPL del DVA-5592: https://dlink-gpl.s3.amazonaws.com/GPL1900072/DVA-5592_GPLv2.zip

Ci sono comunque voluti molti mesi, non è stato immediato.


L'archivio contiene, oltre alla base openwrt, anche un'immagine "gpl" flashabile sul device
Ciò premesso, ho controllato tale immagine ed è sicuramente molto basilare.

Non vi garantisco che contenga il codice per inizializzare la porta ethernet o SSH

Il Readme dice chiaramente che dovrete usare CFE per ripristinare il firmware originale.
Probabilmente potete anche farlo da Linux scrivendo la mtd, ma vi servirà comunque una UART/seriale

Non ho verificato se funziona, quindi provate a vostro rischio e pericolo.
Per ripristinare potrebbe essere necessaria la connessione UART

Non aspettatevi comunque un server http ne tantomeno xdslctl.
Se il modem lo usate come principale e non ne avete uno di scorta, lasciate perdere.

Per il rilascio GPL sembra abbiano tolto tutti o quasi tutti i componenti della ADB, compresi gli script di avvio.
Sono anche stati tolti i pezzi di codice GPL modificato da ADB (che sarebbero dovuti rientrare nel rilascio GPL, ad esempio cmclient in busybox...)

mefoto1079
31-01-2020, 03:48
Scusate se mi intrometto...
Questo significa che possiamo finalmente farlo girare con OpenWrt o Lede?
Io ho anche un Netgear WNDR3700 con DD-WRT (e che stavo per rimpiazzare con OpenWrt o Lede), ma da quando mi arrivato sto D-Link, il NetGear è rimasto nel dimenticatoio. Che vantaggi ne potrei ottenere se li collego insieme?

Per fare lo share locale vorrei collegarci nelle porte USB 3.0 del D-link una pendrive USB 3.0 ed un HD Sata 3.5'' tamite un adattatore SATA > USB 3.0.
Ho letto velocità pietose qui nel forum, roba del tipo 4/5 mbps con un disco USB 3.0, ma non si è capito se c'èra qualche problema. Non esiste proprio una roba del genere e vorrei sperare se con un custom firmware si possa sfruttare le piene capacità della pendrive e HD sata.

Ho anche un vecchio computer vicinissimo al D-Link. Se compro una scheda ethernet gigabit (1000 Mbps giusto?) , la monto nel computer e poi la collego al modem tramite cavo ethernet potrei sperare che vada davvero a 1000 Mbps?
Ho letto pure che con il cavo adatto può raggiungere i 2.5 Gb
E' possibile?

Cosa mi consigliate? Tra una pendrive USB 3.0, un HD sata collegato all' USB 3.0 tramite adattatore ed una scheda Gigabit, quali tra questi 3 mi garantirebbe maggiore velocità ??

Un grazie a tutti

Bovirus
31-01-2020, 08:13
@smx

A me risulta che il codice GPL era da tempo disponibile nel sito web D-LINK.

@mefoto1079

Sconsiglio vivamente flash con firmware alternativi.
Il codice sorgente non è completo.
Le funzionalità delll'eventuale firmware compilato sono inferiori al firmware attuale e i rischi molto alti del brick del modem ne sconsigliano l'uso.

Cosa pensi di ottenere con un firmware OperWRT o Llide in più rispetto al firmware attuale?

mefoto1079
31-01-2020, 12:03
Mhhh...vabbè, se era disponibile da tempo o meno l'importante è che ci sia.
Solo che mi stai dicendo proprio quello che non volevo sentire.
Nessuno che abbia compilato il codice facendo il reverse engineering per le funzionalità mancanti?
Ho controllato, ma essendo questo un device appioppato per maggior parte a noi italiani, ho trovato quasi nulla sui siti ufficiali dei custom firmware.

Bè, se quanto dicono nel link qui sotto è vero speravo innanzitutto di non essere costretto a buttarlo nel cestino perchè è impensabile una roba del genere:
https://www.hwupgrade.it/forum/showpost.php?p=45516795&postcount=1902
Voglio dare per scontato che sia qualche dimenticanza dell'utente perchè se fosse davvero così saremmo nell'assurdo.

Stabilito quanto sopra, sembra che, pur di evitare i custom firmware, i geni che lo hanno modificato, abbiano assegnato risorse molto limitate alla USB in favore della gestione della fibra senza considerare che buona parte degli utenti, come il sottoscritto, non hanno la fibra dove vivono e quindi c'è ben poco da gestire quando da Internet scarico al massimo a 12 mb/s.
https://www.hwupgrade.it/forum/showpost.php?p=45516801&postcount=1903
https://www.hwupgrade.it/forum/showpost.php?p=45517563&postcount=1914
Dato che con la stessa CPU, in altri modem con firmware un pò più sensato, vanno a velocità ben superiori e questo, suppongo, dovendo gestire anche la fibra, con un custom firmware dovrei in teoria aspettarmi molto di più in considerazione della porta per la fibra vuota e piena di ragnatele.

Con il firmware mod di giampietro si potrebbe riuscire ad intervenire sulla gestione delle risorse o qualcosa di simile?
Mi piacerebbe molto sapere cosa ne pensa anche lui.
Grazie mille per l'aiuto

Bovirus
31-01-2020, 13:30
@mefoto1079

Per sua natura qualsiasi modem (questo incluso) deve gestione la fibra e il Wifi e deve obbligatoriamente dare maggiore priorità ai servizi base come fibra e Wifi.

La funzionalità USB è una funzionalità accessoria.

Il modem non è un NAS.
Non ha nè le caratteristiche hardware ne un software studiato come quello di un NAS che deve solo fare la condivisone di rete.

Modem e NAS sono due prodotti diversi per funzionalità diverse.

Per questo non ci può aspettare da un modem chissà quali prestazioni a livello USB/condivisione come un NAS che è nato per altro scopo.

Le priorità sono assegnate a livello di kernel quindi per quello che mi risulta nessuno firmware può cambiare le priorità assegnate ai processi.

Se vuoi usare a livello serio le funzionalità di condivisione devi usare un NAS. Non un modem.

mefoto1079
31-01-2020, 20:38
Ahia, che martellata che mi dai! Ma meglio così piuttosto che continuare a sbattersi per poi alla fine arrivare a non concludere nulla.

Quello che mi rode è che a me non servirebbe nulla di serio tanto da arrivare ad un NAS. Sarebbe un unico device ad accedere alla condivisione, un'unica connessione che userei per transferire dei file a scopo di backup e che rimarrebbero li zitti e buoni.
Il fatto di essere costretto a delle velocità limitate per garantire delle risorse che non uso è veramente dura da digerire, ma se avviene tutto a livello di kernel bisogna che ingoio il rospo e basta.

Sto parlando con un altro utente e sembra che lui sia riuscito a farlo andare a 600 Mpbs in 5Ghz e per me andrebbe bene (oddio, quasi bene! Me lo farei bastare, a forza, ma me lo farei bastare!!):
https://www.dlink-forum.info/index.php?topic=3963.0
Scusate, ma voi a quanto va la condivisione? Perchè a uno va a 4/5 mbps, ad un altro a 600 mbps, ad un altro ancora a 800 mbps.

Mi sono dimenticato di specificarlo e non so se questo influisca sulla velocità, ma a me la condivisione serve solo a livello locale e non so mica se di default finisce anche su Internet (e se c'è il modo di impostarla a livello locale).

A sto punto mi domandavo se bypassando l'USB ed entrando direttamente in ethernet con una scheda Gigabit posso sperare nei 1000 Mpbs.
Sul manuale parlano di 2000 Mbps, ma non è ben chiaro a cosa si riferiscano.

Il firmware mod mi interessa comunque. E' ancora attivo il suo sviluppo? Su Gihub vedo che non ci sono commits da molto e la sezione dei commenti è vuota. Voi lo state usando? E per che cosa?

Bovirus
31-01-2020, 21:23
@mefoto1079

Per velocità 600Mbit/800Mbit questa la limite è la velocità del Wifi.
Non della porta USB.

La velocità del WiFi dipende da una serie di fattori personali legati al client/distanze/disturbi/etc.

Il modem è un AC2000 (= 802.11ac 1733Mbit + 802.11n 300mbit)
La velocità è la somma.

Se non hai un client AC1200 o superiore e un pc almeno i7 con disco SSD non vedrai mai velocità superiori ai 500Mbit.

mefoto1079
03-02-2020, 15:14
La velocità che mi da quando apro wifi-status è di 866 Mbps (5Ghz, Wi-Fi 5 - 802.11ac)). La scheda è una "Marvell AVASTAR Wireless-AC Network Controller"
Questo messo così a caso senza prendermi cura della posizione e tutti gli altri fattori. L'hard disk è un SSD, ma il il processore un i3 (ahia!).
Quindi se ho ben capito ci rientro per il rotto della cuffia, dico bene?
Anche fossero 500 Mbit, la differenza comincia a farsi sentire rispetto ai 180 che l'altro utente del forum mi ha prospettato in USB.

Quindi con l'USB del modem è una battaglia persa e questo vale anche se collego un HD con adattatore USB 3.0. Non vedrei alcuna differenza, giusto?

Attualmente la condivisione la sto facendo gestire ad un computer linux con installato samba. La velocità con la quale trasferisco col device wireless di cui sopra è di 12 Mb/s (il computer dove c'è samba ha una fast ethernet, per cui oltre i 100 Mbps non manda).
Quindi, rimpiazzando la fast ethernet con una gigabit dovrebbe iniziare a sparare di brutto, dico bene?
Purtroppo la fast ethernet non è l'unica cosa d'altri tempi, lo è l'intero computer! Tuttavia l'HD lo fa girare bene alla massima velocità senza dare noie. Io spero che l'SSD e l'i7 non sia necessario anche qui, altrimenti sono fregato!:cry:

Bovirus
03-02-2020, 15:18
PC con i3 non andrai molto lontano.

E anche con il pc linux o altro non è solo un problema di scheda di rete ma di tutti gli elementi che devono essere adeguai.

mefoto1079
04-02-2020, 01:52
Con una fast ethernet i 100Mbps mi arrivanno tutti. Suppongo che quindi abbia ancora un bel pò da inviare se ci fosse una scheda che lo consenta.

Solo che se alla fine mi ritrovo ad avere la stessa velocità di un HD collegato all'USB del modem tramite adattatore (che dicono andare più forte) preferisco di gran lunga l'adattatore piuttosto che dover tenere un computer acceso.

Tu cosa sceglieresti tra le due opzioni?

Bovirus
04-02-2020, 05:49
@mefoto1079

Un adatattatore collegato ad un pc vale come risorsa locale e non condivisa.
Le performance di trasferimento dipende anche dalle risorse hardware del PC.

hc900
04-02-2020, 06:38
Una impostazione poco conosciuta permette di raddoppiare la larghezza di banda della Wi-Fi AC del modem router.
Solitamente la larghezza è su 80MHz per una Wi-Fi a 833Mbps.
Lasciando la scelta del canale su Auto compare la possibilità di raddoppiare i valori cui prima riportato.

In pratica serve avere i dispositivi connessi a 5GHz capaci di sfruttare una larghezza di banda di 160MHz.
Attualmente ce ne sono pochi di questi moduli Wi-Fi e sono ancor meno interessanti in vista delle nuove Wi-Fi di tipo AX in arrivo sul mercato.

hc900
04-02-2020, 09:22
Loggarsi sul modem e poi andare su questi link per modificare i parametri della WiFi AC su 160MHz di larghezza di banda ed utilizzare tutti e 4 gli stream WiFi

Menu di interfaccia fisica WiFi, per impostare Canale su Auto e larghezza di banda su 160MHz:

http://192.168.1.1/ui/dboard/settings/netif/wradio?if=2&backto=settings/phyif


Rete Utente, per controllo delle velocità sui vari dispositivi WiFi:

http://192.168.1.1/ui/dboard/homenet

mefoto1079
04-02-2020, 11:13
@mefoto1079

Un adatattatore collegato ad un pc vale come risorsa locale e non condivisa.
Le performance di trasferimento dipende anche dalle risorse hardware del PC.

Forse non mi sono spiegato bene io. Cerco di chiarire anche per quelli che si troveranno ad affrontare lo stesso problema.
Per adattatore "HD > USB 3.0" intendevo dire di quelli con alimentatori che non usano alcuna connessione con il computer.
Tipo questo per intenderci:
https://images-na.ssl-images-amazon.com/images/I/61qZ3PE%2B5UL._AC_SX425_.jpg
Mi dicono che così andrebbe molto più forte di una pendrive, ma io non mi spiego come possa essere dato che le risorse assegnate alla USB dal modem sono sempre quelle. In altre parole, anche arrivasse un'enorme flusso di dati dall'HD, poi ci penserebbe l'USB a frenare il tutto e ad abbassare la velocità riducendola alla stessa di una pendrive.
Dico bene o sbaglio?
Così evitiamo che le persone si facciano idee sbagliate.

Invece per quanto riguarda la connessione col computer. Quella in cui in pratica si bypassa l'USB e relativo sistema integrato di condivisione del modem lasciando che sia il computer con installato samba (e connesso al modem in ethernet) ad agire da server e gestire la condivisione.
In tal caso, come dici tu, sarebbe una risorsa locale e a quel punto il modem non interverrebbe più a correggere e ridurre il flusso di dati come avviene con l'USB. In questo caso, l'unico limite è quello delle risorse hardware del pc. Nel mio caso la scheda di rete limitata a 100Mbps (che conto di sostituire con una gigabit) ed eventualmente processore, tipo di hard disk etc etc.
Oltre che ovviamente anche le risorse del client (capacità di invio/ricezione etc etc).
Suppongo che anche per questo non hai dato cifre perchè anche con una gigabit, poi bisogna vedere come reagisce il resto dell'hardware.
Comunque possiamo confermare a chiunque legga che è così?
Avrebbe perfettamente senso, ma nell'altro forum mi dicono che non è così e pertanto sto ancora nel dubbio.

Bovirus
04-02-2020, 11:17
@mefoto1079

Diciamo che il discorso sarebbe comunque OT qui.

Quell'adattatore collegato alla porta USB del modem non cambierebbe nulla.

Perchè se anche l'adattatore fosse più veloce poi sempre dalla porta USB del modem (e relativa CPU/memoria etc) devi passare.

mefoto1079
04-02-2020, 11:45
Loggarsi sul modem e poi andare su questi link per modificare i parametri della WiFi AC su 160MHz di larghezza di banda ed utilizzare tutti e 4 gli stream WiFi

Menu di interfaccia fisica WiFi, per impostare Canale su Auto e larghezza di banda su 160MHz:

http://192.168.1.1/ui/dboard/settings/netif/wradio?if=2&backto=settings/phyif


Rete Utente, per controllo delle velocità sui vari dispositivi WiFi:

http://192.168.1.1/ui/dboard/homenet

Grazie infinite per questa informazione preziosa. Confermo quanto dici sugli 80 Mhz e consequenti 833 Mpbs in wifi. Infatti io, senza toccare nulla, in 5ghz sono attorno agli 866 Mbps.
Dubito di rientrare tra la lista dei pochi fortunati e per me non farebbe differenza perchè come hai visto dai miei commenti, sto cercando di capire il modo migliore per farceli arrivare i dati a questa velocità.
Quindi, da quanto mi sembra di capire, non è poi così assurdo quando il manuale parla di 2000 Mpbs.
E se non erro, dando per scontato che non rientro nella lista dei fortunati, con 866 sono già al limite hardware e a parte ottimizzare la posizione, non c'è altro modo di intervenire sul modem per renderli più stabili a parte che ricorrere ad antenne esterne. Dico bene?
Ho dato un occhiata ai nuovi ax e sembra raggiungano i 3000 Mbps. Incredibile, ma chissà dove andremo a finire con la salute a forza di potenziare in continuazione. Di certo, se fanno danni, non lo sapremo certamente ora.

mefoto1079
04-02-2020, 12:08
@mefoto1079

Diciamo che il discorso sarebbe comunque OT qui.

Quell'adattatore collegato alla porta USB del modem non cambierebbe nulla.

Perchè se anche l'adattatore fosse più veloce poi sempre dalla porta USB del modem (e relativa CPU/memoria etc) devi passare.

Infatti, proprio quello che credevo fin dall'inizio!
Quindi diciamo a tutti che se collegate un HD in USB credendo di ovviare alle velocità patetiche che ho visto un pò ovunque lamentare nei pendrive 3.0, buttate via soldi e tempo.
Diverso è il discorso se lo fate per comodità o maggior sicurezza dei dati rispetto a una pendrive che un bel giorno potrebbe alzarsi con la luna storta e chiedere di essere formattata!

L'unica alternativa, per chi mira alle prestazioni, è quella che ho illustrato sopra e che non vado ad approfondire sia perchè quanto scritto è più che sufficiente, sia per non andare off-topic.

Bovirus, semmai un giorno ci dovessimo incontrare, bisogna che almeno qualche birra te la lasci offrire perchè hai fatto chiarezza su alcuni punti essenziali consentendo me e tutti quanti leggeranno di fare scelte consapevoli in base alle loro esigenze ;)

hc900
04-02-2020, 13:28
E se non erro, dando per scontato che non rientro nella lista dei fortunati, con 866 sono già al limite hardware e a parte ottimizzare la posizione, non c'è altro modo di intervenire sul modem per renderli più stabili a parte che ricorrere ad antenne esterne. Dico bene?
Finora con pochi accorgimenti inerenti i canali e la posizione fisica del modem, tutto si è risolto, senza andare su router con antenne esterne.

Per caso hai configurato la larghezza di banda a 160MHz ?
(Giusto per capire come agganciano i dispositivi connessi a 5GHz)

hc900
04-02-2020, 13:31
@mefoto1079

Diciamo che il discorso sarebbe comunque OT qui.

Quell'adattatore collegato alla porta USB del modem non cambierebbe nulla.

Perchè se anche l'adattatore fosse più veloce poi sempre dalla porta USB del modem (e relativa CPU/memoria etc) devi passare.
Qui si può connettere qualcosa alle porte Ethernet con migliori risultati, perché le 2 porte USB3.0 sono molto lente, pure in lettura il risultato è scarso anche con memorie che leggono a 200Mbps non si va lontano da quelle da 10Mbps.

mefoto1079
04-02-2020, 18:26
Finora con pochi accorgimenti inerenti i canali e la posizione fisica del modem, tutto si è risolto, senza andare su router con antenne esterne.

Per caso hai configurato la larghezza di banda a 160MHz ?
(Giusto per capire come agganciano i dispositivi connessi a 5GHz)

Meglio poco che niente!
In 160Mhz ho fatto qualche test veloce e succede che la connessione cala subito a 100 Mbps e poi, dopo una trentina di secondi, si disconnette. Riesco a riconnettermi, ma ricomincia questo loop.
Questo in 5Ghz, in 2.4 non ho provato perchè anche dovesse diventare stabile, suppongo che a 2.4 in 160 sia comunque inferiore che a 5 in auto.
Sulla pagina che hai linkato non sono riuscito a trovare alcun link che mi consenta di impostare le velocità. Sarà per questo che la connessione è andata in panico in questo modo? Oppure, più semplicemente, come sospettavo prima, io non appartengo alla lista dei fortunati!

mefoto1079
04-02-2020, 18:49
Qui si può connettere qualcosa alle porte Ethernet con migliori risultati, perché le 2 porte USB3.0 sono molto lente, pure in lettura il risultato è scarso anche con memorie che leggono a 200Mbps non si va lontano da quelle da 10Mbps.


Qui si può connettere qualcosa alle porte Ethernet...
Stavi cercando di mettere un link?
Quello che ho visto con i miei occhi sono 180 Mbps che sono comunque pochi per un USB 3.0:
https://i.postimg.cc/HjGkFLZN/5592-usb.png

Scusate, ma che memorie usate per andare a quei 10, 20 o 50 Mpbs che siano?
https://usb3speed.nirsoft.net/

hc900
04-02-2020, 19:20
In effetti è un mio refuso, Mbps con MBps, di fatto il limite di velocità è quello che ci hai fatto vedere.

Con questa USB non si va lontano:
https://www.amazon.it/SanDisk-Extreme-Solido-velocità-lettura/dp/B01MU8TZRV/ref=sr_1_14?adgrpid=54134454953&gclid=EAIaIQobChMIja6uo8y45wIVGeJ3Ch1TVAfyEAAYASAAEgJpevD_BwE&hvadid=255147098304&hvdev=t&hvlocphy=1008870&hvnetw=g&hvpos=1t1&hvqmt=e&hvrand=12179424261090108354&hvtargid=aud-835703821869%3Akwd-27864526&hydadcr=26584_1828092&keywords=sandisk+usb&qid=1580843323&sr=8-14

Al punto che ne ho messe 2 USB Sandisk più lente.
Per trasferire dati più rapidamente mi collego un disco sulle porte Ethernet del modem, mentre sul desktop ho una WiFi AC1200 a doppia antenna (433+433Mbps teorici)

Bovirus
04-02-2020, 20:28
@hc900
@mefoto1079

Credo che tutto questo discorso su USB/interfacce/etc qui sia OT.

hc900
04-02-2020, 20:51
Ineccepibile.

mefoto1079
04-02-2020, 22:44
In effetti è un mio refuso, Mbps con MBps, di fatto il limite di velocità è quello che ci hai fatto vedere.

Con questa USB non si va lontano:
https://www.amazon.it/SanDisk-Extreme-Solido-velocità-lettura/dp/B01MU8TZRV/ref=sr_1_14?adgrpid=54134454953&gclid=EAIaIQobChMIja6uo8y45wIVGeJ3Ch1TVAfyEAAYASAAEgJpevD_BwE&hvadid=255147098304&hvdev=t&hvlocphy=1008870&hvnetw=g&hvpos=1t1&hvqmt=e&hvrand=12179424261090108354&hvtargid=aud-835703821869%3Akwd-27864526&hydadcr=26584_1828092&keywords=sandisk+usb&qid=1580843323&sr=8-14

Al punto che ne ho messe 2 USB Sandisk più lente.
Per trasferire dati più rapidamente mi collego un disco sulle porte Ethernet del modem, mentre sul desktop ho una WiFi AC1200 a doppia antenna (433+433Mbps teorici)

E per fortuna che è una sandisk extreme!
Hai letto la mia risposta alla tua domanda sui 160 Mhz? Succede anche a te?

@Bovirus
Perdonami, faccio giusto l'ultima domandina veloce veloce a hc900 perchè credo che lui possa avere la risposta a quello che cercavo da tempo.

@hc900
Cosa usi per collegare l'HD all'ethernet del DVA-5592? Io uso un computer con linux e samba però è una palla doverlo sempre tenere acceso (anche perchè è vecchiotto e prima o poi schioppa, oltre ai consumi). Tu hai trovato qualche adattatore (tipo quello in foto, ma per ethernet) che consenta di fare a meno di un pc? E il D-Link te lo riconosce come storage condiviso anche in ethernet (se non erro la condivisione dovrebbe riguardare solo dispositivi USB)???

hc900
05-02-2020, 09:06
@hc900
Cosa usi per collegare l'HD all'ethernet del DVA-5592? Io uso un computer con linux e samba però è una palla doverlo sempre tenere acceso (anche perchè è vecchiotto e prima o poi schioppa, oltre ai consumi).Un Raspberry o un Orange qualsiasi consuma meno di 5 Watt e si alimenta via USB.
Forse si impallano dopo 4 o 6 mesi, ma visto il servizio non ci penso troppo.

hc900
05-02-2020, 09:09
@hc900
@mefoto1079

Credo che tutto questo discorso su USB/interfacce/etc qui sia OT.
Questo Firmware Mod funziona bene o ci sono controindicazioni?

Ad oggi sono ancora con il firmware del 2018, che ha i suoi bachi, che se escono allo scoperto sfruttando al massimo il modem.

mefoto1079
05-02-2020, 11:20
Un Raspberry o un Orange qualsiasi consuma meno di 5 Watt e si alimenta via USB.
Forse si impallano dopo 4 o 6 mesi, ma visto il servizio non ci penso troppo.

Come pensavo. Speravo ci fosse qualcosa di ancora più "SOFT". Speravo almeno in un arduino di quelli proprio base. Per impallarsi intendi che si bruciano le schede o che devi fare qualche restore?
Mi sa che ti è ancora sfuggita la mia risposta su quando mi chiedevi come andavano a me i 160 Mhz.

mefoto1079
05-02-2020, 11:42
Questo Firmware Mod funziona bene o ci sono controindicazioni?

Ad oggi sono ancora con il firmware del 2018, che ha i suoi bachi, che se escono allo scoperto sfruttando al massimo il modem.

Se ricordo bene ero entrato iniziando a parlare del custom firmware. Se guardi qualche messaggio prima che entrassi nel forum noterai delle cose interessanti. Sembrerebbe che si siano aperte le porte del custom firmware, intendo OpenWrt/Lede. Dai un'occhiata ai miei commenti e le risposte di bovirus perchè lui ha messo anche in evidenza delle problematiche.
Non so se giampietro (che credo sia il creatore del firmware mod) ci stia lavorando o meno.
Speravo che potesse tornare qui per illuminarci.

Senti, ma questo firmware mod...
Quando mi arrivò il modem feci un backup in previsione di metterlo. Poi per un motivo o altro non me ne sono più occupato e quando mi hanno fatto il reset da remoto perchè c'erano problemi ho lasciato tutto così com'era ed ora mi ritrovo con l'ultimo firmware. Faccio ancora in tempo a metterlo?
E se si, fatemi capire, ma per che cosa lo usate voi?
Parli di bachi che consentono di sfruttare al massimo il modem. In cosa?
Su github vedo che non è più in sviluppo da molto tempo e mi domando se ancora ne valga la pena e sopratutto se ciò sia dovuto al fatto che magari, in consequenza delle ultime novità, stia per arrivare una nuova e attesa sorpresa come OpenWrt.

hc900
05-02-2020, 13:13
Mi sa che ti è ancora sfuggita la mia risposta su quando mi chiedevi come andavano a me i 160 Mhz.
La questione larghezza di banda, è visibile solo da dispositivi dotati di adeguate specifiche.
Per dire una, anche utilizzando la App WiFi Analyzer, verrà visualizzato quello che il ricevitore WiFi può fare di suo:
40MHz 80MHz 160MHz, oggi tanti dispositivi smartphone sono limitati a 40MHz, quindi anche connettendosi ad una WiFi da 80MHz effettivi, al dispositivo gli sembra di connettersi ad una WiFi da 40MHz.

Ora su questo modem, anche se c'è la disponibilità di una da 160MHz effettivi, perché io ho provato ad impostare così ... io non ho un hardware da 160MHz, e se questo modem può generare una WiFi di questo tipo ... non ho gli strumenti per rilevarla.

Ora vorrei concludere che queste prove, sono cose di base inerenti il modem 5592 senza modding, quindi ti invito a discuterne nella discussione competente, dove altri oltre a noi 3 -contando Bovirus- potrebbero interessarsi e forse risponderti in maniera diretta.

hc900
05-02-2020, 14:01
Per chiudere il discorso sulla WiFi AC con BW 160MHz: voglio ma non posso, ottimo che D-Link la abbia implementata su un prodotto così accessibile, davvero notevole.

Qui wiki in inglese e rigorosamente in inglese per avere un'idea chiara:

https://en.wikipedia.org/wiki/IEEE_802.11


Poi la candida pubblicità della WiFi AX con "la grande novità della larghezza di banda di ben 160MHz"

https://www.tp-link.com/it/wifi6/

Come dire che questo sottovalutato modem DVA-5592 è quasi in linea con le esigenze future :cool: ma sul mercato mancano ancora i dispositivi davvero veloci, capaci di sfruttarlo appieno.

mefoto1079
06-02-2020, 01:54
Stessa cosa vale anche per me. Non perdo neanche tempo a cercare anche perchè sono ben lontano dal saturare gli 866 Mbps sia ora e probabilmente anche dopo.
Cmq per chi fosse interessato potrebbe valere la pena di dare un'occhiatina al protocollo media agnostic. Windows lo supporta nativamente da tempo, ma gli articoli sono un pò vecchiotti:
https://arstechnica.com/information-technology/2013/09/is-wireless-usb-finally-real-spec-ties-usb-to-wi-fi-for-gigabit-speed/
Sarebbe davvero una bella cosa collegare una wifi pen e viaggiare a queste velocità (in 3.1 l'articolo parlava di teoriche velocità fino a 10 Gpbs), ma non ne vedo in giro. Boh!

Si infatti, meglio chiudere qui che stiamo andando off topic. Ho giusto aggiunto sto link per completezza, poi chi vuole sapere che fine ha fatto sta tecnologia andrà a cercare in posti appropriati.

mefoto1079
06-02-2020, 01:59
Se ricordo bene ero entrato iniziando a parlare del custom firmware. Se guardi qualche messaggio prima che entrassi nel forum noterai delle cose interessanti. Sembrerebbe che si siano aperte le porte del custom firmware, intendo OpenWrt/Lede. Dai un'occhiata ai miei commenti e le risposte di bovirus perchè lui ha messo anche in evidenza delle problematiche.
Non so se giampietro (che credo sia il creatore del firmware mod) ci stia lavorando o meno.
Speravo che potesse tornare qui per illuminarci.

Senti, ma questo firmware mod...
Quando mi arrivò il modem feci un backup in previsione di metterlo. Poi per un motivo o altro non me ne sono più occupato e quando mi hanno fatto il reset da remoto perchè c'erano problemi ho lasciato tutto così com'era ed ora mi ritrovo con l'ultimo firmware. Faccio ancora in tempo a metterlo?
E se si, fatemi capire, ma per che cosa lo usate voi?
Parli di bachi che consentono di sfruttare al massimo il modem. In cosa?
Su github vedo che non è più in sviluppo da molto tempo e mi domando se ancora ne valga la pena e sopratutto se ciò sia dovuto al fatto che magari, in consequenza delle ultime novità, stia per arrivare una nuova e attesa sorpresa come OpenWrt.

@hc900
Mi sa che ti sfuggono i messaggi quando uno ti risponde con le citazioni.:D
Non è in questo topic che si parla del firmware mod e del firmware open source che hanno appena rilasciato?
O sul topic che mi hai segnalato tu?

Googlist
27-04-2020, 19:57
Per discorso di banda 160MHz.
Per impostare le 160 veri bisogna andare tramite ssh o telnet e andando configure - interface - wifi Radio2 - mettere "80211h disable", cosi sara` possibile di vedere la banda larga 160 (tramite WinFi (https://www.helge-keck.com/) per esempio), arrivare al connessione di 1733Mb e vedere gigabit sull`aria. Penso che non funzioni DFS in questo caso. Altrimenti io mai ho visto 160MHz veri, solo sul impostazioni, che in realtà dicono le bugie. Accendendo il 802.11h indietro la banda implode al 80 MHz, ma po` essere che sia il mio caso perché ho la torre di telecomunicazioni sul tetto di condominio.

Non conosco bene le tecnologie di WiFi e le leggi italiani, ma penso che spegnere il DFS non e` cosa giusta, esiste qualche vero rischio di interruzione nelle altre sistemi con queste impostazioni? Perché dopo di aver provato ho tornato 802.11h funzionare, e adesso penso force sarebbe meglio di lasciarlo spento avendo la banda larga e la velocità splendida?

Sono i screen, la windows e` in lingua ucraina.
https://imgur.com/EUKW9gp
https://imgur.com/sbYFK8X

od1n0
28-04-2020, 13:50
Per discorso di banda 160MHz.
Per impostare le 160 veri bisogna andare tramite ssh o telnet e andando configure - interface - wifi Radio2 - mettere "80211h disable", cosi sara` possibile di vedere la banda larga 160 (tramite WinFi (https://www.helge-keck.com/) per esempio), arrivare al connessione di 1733Mb e vedere gigabit sull`aria. Penso che non funzioni DFS in questo caso. Altrimenti io mai ho visto 160MHz veri, solo sul impostazioni, che in realtà dicono le bugie. Accendendo il 802.11h indietro la banda implode al 80 MHz, ma po` essere che sia il mio caso perché ho la torre di telecomunicazioni sul tetto di condominio.

Non conosco bene le tecnologie di WiFi e le leggi italiani, ma penso che spegnere il DFS non e` cosa giusta, esiste qualche vero rischio di interruzione nelle altre sistemi con queste impostazioni? Perché dopo di aver provato ho tornato 802.11h funzionare, e adesso penso force sarebbe meglio di lasciarlo spento avendo la banda larga e la velocità splendida?

Sono i screen, la windows e` in lingua ucraina.
https://imgur.com/EUKW9gp
https://imgur.com/sbYFK8X
Se disabiliti l'802.11h semplicemente non usi i canali dfs quindi normativamente non c'e' nessun problema ne nessun rischio.

hc900
28-04-2020, 20:15
Per discorso di banda 160MHz.
Per impostare le 160 veri bisogna andare tramite ssh o telnet e andando configure - interface - wifi Radio2 - mettere "80211h disable", cosi sara` possibile di vedere la banda larga 160 (tramite WinFi (https://www.helge-keck.com/) per esempio), arrivare al connessione di 1733Mb e vedere gigabit sull`aria. Penso che non funzioni DFS in questo caso. Altrimenti io mai ho visto 160MHz veri, solo sul impostazioni, che in realtà dicono le bugie. Accendendo il 802.11h indietro la banda implode al 80 MHz, ma po` essere che sia il mio caso perché ho la torre di telecomunicazioni sul tetto di condominio.
Avrei delle domande da farti riguardo la larghezza di banda 160MHz.

Quando riesci ad attivarla dovresti occupare lo spazio di ben 8 canali WiFi AC di tipo base (quelli da 20 MHz ciascuno). Davvero è così?

Questo canale da ben 160MHz occupa gli spazi a partire dal CH36 oppure si va oltre?

Hai un dispositivo capace di connettersi dotato di Wifi 5 con larghezza di banda da 160MHz oppure uno con la WiFi 6 ? (tipo il chipset Intel AX200 o simili)

od1n0
28-04-2020, 22:46
Avrei delle domande da farti riguardo la larghezza di banda 160MHz.

Quando riesci ad attivarla dovresti occupare lo spazio di ben 8 canali WiFi AC di tipo base (quelli da 20 MHz ciascuno). Davvero è così?

Questo canale da ben 160MHz occupa gli spazi a partire dal CH36 oppure si va oltre?

Hai un dispositivo capace di connettersi dotato di Wifi 5 con larghezza di banda da 160MHz oppure uno con la WiFi 6 ? (tipo il chipset Intel AX200 o simili)

Provo a risponderti io.

dovrebbe occupare gli spazi 36 al 64 160Mhz.
o in alternativa due canali 80+80 mhz il primo va dal 36 al 48.
.
PS la intel 9260 ho controllato ora sembra che supporti solo la modalità 160mhz.

https://www.intel.it/content/www/it/it/support/articles/000030670/network-and-i-o/wireless-networking.html


se vedi dalle immagini che ha postato usa una intel ac 9260 quindi wifi5.

hc900
29-04-2020, 03:34
Grazie.

Ho letto quello che hai riportato.
Il dubbio sta proprio nelle regole a motivo dei canali 5GHz che possono venire occupati dai sistemi Radar degli aeroporti.
In linea teorica in modalità di scelta del canale in manuale, si occupa tutta intera la banda WiFi pubblica, dal CH36 al CH64.
Teoricamente poi con il canale automatico si lavorerebbe anche dai CH 100 in poi, questo se il router non rileva dei segnali Radar.


Un appunto sulla situazione
Tanti se e poche rilevazioni con programmi scanner, nessuna informazione se il chipset Intel operi perfettamente in WiFi Direct con BW a 160MHz, con le conseguenze di saturazione di tanti canali a 5GHz. Forse siamo ancora in una fase sperimentale?

Inoltre per l'utente che vorrebbe passare alla WiFi 6 si profila la nuova WiFi 6e, dove forse si potrebbero superare i problemi di saturazione dei canali e di coesistenza tra reti WiFi del vicinato domestico che potrebbe dare forti interferenze.

od1n0
29-04-2020, 11:15
Grazie.

Ho letto quello che hai riportato.
Il dubbio sta proprio nelle regole a motivo dei canali 5GHz che possono venire occupati dai sistemi Radar degli aeroporti.
In linea teorica in modalità di scelta del canale in manuale, si occupa tutta intera la banda WiFi pubblica, dal CH36 al CH64.
Teoricamente poi con il canale automatico si lavorerebbe anche dai CH 100 in poi, questo se il router non rileva dei segnali Radar.


Un appunto sulla situazione
Tanti se e poche rilevazioni con programmi scanner, nessuna informazione se il chipset Intel operi perfettamente in WiFi Direct con BW a 160MHz, con le conseguenze di saturazione di tanti canali a 5GHz. Forse siamo ancora in una fase sperimentale?

Inoltre per l'utente che vorrebbe passare alla WiFi 6 si profila la nuova WiFi 6e, dove forse si potrebbero superare i problemi di saturazione dei canali e di coesistenza tra reti WiFi del vicinato domestico che potrebbe dare forti interferenze.
Non ho capito il tuo dubbio sulle regole poi cosa intendi per fase sperimentale?


Il wifi6e credo debba essere ancora regolamentato in europa (la fcc ha liberalizzato in aprile le frequenze) visto che arriva alle frequenze dei 6ghz quindi bisognera' vedere cosa prevederà la regolamentazione europea e in cascata quella italiana.
comunque dovrebbero essere altri 14 canali a 80mhz e altri 7 a 160mhz contro i 2 attuali regolamentazione permettendo (non saranno quasi sicuramente tutti liberalizzati ).Tieni presente pero' che piu' vai su di frequenza piu' aumenti la capacità ma riduci il raggio d'azione.Quindi a potenze trasmissive uguali teoricamente le interferenza degli apparati vicini dovrebbero diminuire vista la minore capacità di penetrazione delle onde.

hc900
29-04-2020, 12:28
In via ufficiale questo modem router non va proprio con BW 160MHz. Forse la Wind lo sa perché mai, forse ...
Se ne era parlato nell'altra discussione, dove il firmware ufficiale per Wind fa il suo bel danno, con grossi grattacapi per gli utenti più evoluti rispetto alle configurazioni standard di base.

Sono approdato a questo firmware modificato perché funziona parecchio meglio di quello ufficiale. Per ora non ho dispositivi Android per provare il rendimento di questa possibilità di lavorare con BW 160MHz, anzi credo se ne riparlerà con il WiFi6E ma con altro router.

Googlist
29-04-2020, 13:51
Se disabiliti l'802.11h semplicemente non usi i canali dfs quindi normativamente non c'e' nessun problema ne nessun rischio.

No, 160MHz in qualsiasi caso copre i canali di DFS. Tutti in più del 50 sono i DFS (lasciamo stare i quelli oltre 150).



Quando riesci ad attivarla dovresti occupare lo spazio di ben 8 canali WiFi AC di tipo base (quelli da 20 MHz ciascuno). Davvero è così?

Questo canale da ben 160MHz occupa gli spazi a partire dal CH36 oppure si va oltre?

Hai un dispositivo capace di connettersi dotato di Wifi 5 con larghezza di banda da 160MHz oppure uno con la WiFi 6 ? (tipo il chipset Intel AX200 o simili)

1. Si. Il motore di forum non permette di allegare i file più di 24KB, ma ho messo link sul`immagine (https://imgur.com/sbYFK8X)dove si vede i quelli canali sono occupati.
2. Può occupare anche i canali 100-128 (ho visto ance così, perché messo scelta in auto), ma di solito prende 36-64.
3. Ho la scheda Intel AC9260 (12 euro sul aliexpress) che supporta la larghezza di 160MHz. WiFi6 non opera il nostro dispositivo D-Link DVA-5592, per questo non ho preso ancora AX200.

Grazie.

Tanti se e poche rilevazioni con programmi scanner, nessuna informazione se il chipset Intel operi perfettamente in WiFi Direct con BW a 160MHz, con le conseguenze di saturazione di tanti canali a 5GHz.

Opera perfettamente, e ho il etere libero, si vede sull`immagine allegata (https://imgur.com/sbYFK8X). Con il firmware nuovo funziona anche sul linux, succede che riavvia il firmware, ma ormai non come prima ogni 2 minuti.

Ma WiFi6 non risolve problemi ne di velocità ne di bande, solo i problemi di tanti dispositivi, che può dare un bonus sulla somma di velocità per ognuno che sono collegati ad AC grazie a tecnologie di gruppo dei diversi dati in un pacchetto e un pochino di risparmio di energia per i dispositivi embedded smart.

E non ho capito bene, si può spegnere 802.11h o no? :D
Il aeroporto più vicino a me si trova a 50+ chilometri.
Oppure qualcuno può provare di accendere 160MHz e vedere che il modem supporta questa larghezza davvero con 802.11h, ma non solo da impostazioni, che non corrispondono la realtà. Perché non vedo l`altra strada di vedere che io ho un radar vicino o esiste un bag di modem che non li permette ad operare in 160MHz o almeno tornare indietro al 160 quando il etero diventa libero dal radar.

od1n0
29-04-2020, 15:12
No, 160MHz in qualsiasi caso copre i canali di DFS. Tutti in più del 50 sono i DFS (lasciamo stare i quelli oltre 150).
non necessariamente in modalità 80+80 postresti usare 4 stream sui canali dal 36 al 48 che non sono DFS per ottenere sempre 1733 mbps teorici.
Non e' il tuo caso in quanto la 9260 usa solo 2 stream avendo 2 antenne e non supporta 80+80 ma solo 160Mhz quindi va a coprire anche la banda dei canali DFS.
Quindi se non vengono testati i canali dal 52 al 64 non e' complaint alla normativa europea.
MA tu in che stato risiedi? perche' la legge ucraina non so cosa preveda a riguardo.

od1n0
29-04-2020, 15:30
In via ufficiale questo modem router non va proprio con BW 160MHz. Forse la Wind lo sa perché mai, forse ...
Se ne era parlato nell'altra discussione, dove il firmware ufficiale per Wind fa il suo bel danno, con grossi grattacapi per gli utenti più evoluti rispetto alle configurazioni standard di base.

Sono approdato a questo firmware modificato perché funziona parecchio meglio di quello ufficiale. Per ora non ho dispositivi Android per provare il rendimento di questa possibilità di lavorare con BW 160MHz, anzi credo se ne riparlerà con il WiFi6E ma con altro router.

Non e' di wind questo modem quindi wind figurati se lo sa. Wind l'unica cosa che ha fatto e' metterci le sue custom configuration e basta la parte binary e' la stessa fatta da dlink. Se guardi sulle specifiche tecniche del modem del sito di dlink supporta i 1700 in ac.

Se poi vedi nella cli di comando i 160 Mhz sono supportati.


DLINK(cfg-intf-wifi:Radio2)# channelBand
20MHz 40MHz 80MHz 160MHz Auto


Il mio dubbio e' relativo al fatto se sia compliant con la normativa europea usando i canali dal 52 al 64 per il canale160Mhz che sono nel range di dfs. disabilitando l'80211h di fatto non dovrebbe piu'' ricecare la possibilità che ci siano radar attivi in effetti pero' ti permette di utilizzare la banda dal 52 al 64 per il 160mhz channel. tu a quanti megabit di transfer arrivi con la 866?


comunque guardando un po dentro ho scoperto che la modalità 160mhz viene abilitata qualora sia trovato impostata falso o vero il valore di una variabile UseE0Rev938RegulatoryDomain (probabilmetne risieda o in una nvram o in una rom) . Quindi con molta probabilità il supporto dei 160Mhz e' inibito in relazione del regulatory domain anche se ancora non ho ancora trovato a quale legislazione si possa riferire un E0Rev938 Regulatory Domain.

Googlist
29-04-2020, 16:24
non necessariamente in modalità 80+80 postresti usare 4 stream sui canali dal 36 al 48 che non sono DFS per ottenere sempre 1733 mbps teorici.
Non e' il tuo caso in quanto la 9260 usa solo 2 stream avendo 2 antenne e non supporta 80+80 ma solo 160Mhz quindi va a coprire anche la banda dei canali DFS.
Quindi se non vengono testati i canali dal 52 al 64 non e' complaint alla normativa europea.
MA tu in che stto risiedi? perche' la legge ucraina non so cosa prevede a riguardo.

Modalità 80+80 non supporta il modem (neanche la scheda). E non so che scheda la supporterebbe. E neanche che scheda abbia 4 stream, esiste un broadcom di apple che ha 3 stream, ma di più non ho sentito, forse se esisti costerebbe come una casa con giardino :D
Sono in Italia, questo modem non si trova dall`altre parte del mondo, il windows sulla screen era in lingua ucraina e poteva essere difficile da capire perché le scritture sono in cirillico.

od1n0, 160MHz con due stream arriva al 1733 di velocità di PHY, non credo che esisti un apparecchio che supporterebbe 160MHz ma avrebbe un solo stream. 866 è uno stream a 160 o due a 80Mhz.

_______________

Penso che un router normale con impostazione di 160 dopo di aver incontrato un radar e ristretto da 80 fra il tempo dovrebbe allargare la banda indietro, invece questo modem non fa così, neanche non mette 160 veri dal inizio. Forse si possa a cambiare la modalità di funzionamento brandwidth in firmware?



Ho scoperto la roba interessante, non so come non l`ho vista prima:

DLINK(cfg-intf-wifi:Radio2)# show

----------------------------------------------------------------------
Alias | Radio2
AutoChannelEnable | true
AutoChannelRefreshPeriod | 86400
AutoChannelSupported | true
LockoutPeriod | 28800
RadarSwitchCount | 0
InterferenceSwitchCount | 0
ChannelSwitchReason | Auto
LastChannelSwitchTime | 2020-04-29T04:10:46Z
DFSReentryTimer | 1921
Enable | true
ExtensionChannel | Auto
GuardInterval | Auto
IEEE80211hEnabled | true
IEEE80211hSupported | true
LastChange | 33
LowerLayers |
MCS | -1
Name | wl0
OperatingChannelBandwidth | 160MHz
RegulatoryDomain | EU
UseE0Rev938RegulatoryDomain | true

La rete funziona in 80MHz sul channel 116, non è 160MHz, ma ne radar ne interferenze non c`erano, voldire che è malfunzionamento di modem ¯\_(ツ)_/¯

od1n0
29-04-2020, 22:06
Modalità 80+80 non supporta il modem (neanche la scheda). E non so che scheda la supporterebbe. E neanche che scheda abbia 4 stream

_

Le trovi per desktop non per notebook per ovvie ragioni di spazio.

https://www.anandtech.com/show/10306/asus-unveils-pce-ac88-4x4-wifi-card

hc900
29-04-2020, 23:05
Domani controllo le specifiche, per ora va ricordato che questo D-Link ha ben 3 antenne sulla banda 5GHz e altre 2 su 2,4GHz.

https://www.dlink-forum.info/index.php?topic=3763.0

Le 3 antenne vanno normalmente su BW a 80MHz per un totale di 433Mbps ciascuna quindi una Wifi 1300 per la sola parte 5GHz.
Impostando il valore di BW a 160MHz sarebbe teoricamente avere una WiFi 3400, ma solo teoricamente, per via di un limite del chipset che gestisce le 5 antenne assieme, il tutto si assesta su 1700Mbps + 300Mbps = WiFi AC 2000 (sommando le velocità a 2,4GHz e 5GHz).

Come e cosa venga fatto con la BW a 160MHz non mi è molto chiaro, forse solo una delle antenne va a 160MHz facendo 866Mbps mentre le altre due antenne a 80MHz fanno 433Mbps ciascuna, per una somma complessiva di 1700Mbps.

od1n0
29-04-2020, 23:29
Domani controllo le specifiche, per ora va ricordato che questo D-Link ha ben 3 antenne sulla banda 5GHz e altre 2 su 2,4GHz.

https://www.dlink-forum.info/index.php?topic=3763.0

Le 3 antenne vanno normalmente su BW a 80MHz per un totale di 433Mbps ciascuna quindi una Wifi 1300 per la sola parte 5GHz.
Impostando il valore di BW a 160MHz sarebbe teoricamente avere una WiFi 3400, ma solo teoricamente, per via di un limite del chipset che gestisce le 5 antenne assieme, il tutto si assesta su 1700Mbps + 300Mbps = WiFi AC 2000 (sommando le velocità a 2,4GHz e 5GHz).

Come e cosa venga fatto con la BW a 160MHz non mi è molto chiaro, forse solo una delle antenne va a 160MHz facendo 866Mbps mentre le altre due antenne a 80MHz fanno 433Mbps ciascuna, per una somma complessiva di 1700Mbps.

ne ha 4 di antenne a 5 ghz e 2 a 2.4 ghz.Lo so perche' l'ho aperto e controllato.


i fili grigi sono le 2,4 i neri sono le 5 ghz.

https://ibb.co/WDykjg6

la trasmissione a 1733 prevede o due o 4 stream .


cerca 1733 nella colonna e vedrai che l'msc index a 1733 corrisponde a 2 stream spaziali 80+80 o 160Mhz e 4 stream spaziali in 80 Mhz.

https://community.cisco.com/t5/wireless-mobility-documents/802-11ac-mcs-rates/ta-p/3155920

hc900
05-07-2020, 20:32
Con questo firmware qualcuno ha dei problemi a chiamare la rete mobile di Iliad ?

Bovirus
06-07-2020, 07:45
@hc900

Quale versione firmware?

hc900
06-07-2020, 08:35
@hc900

Quale versione firmware? questa qui:

Versione Firmware: DVA-5592_A1_WI_20170908

Bovirus
06-07-2020, 09:16
@hc900

Non ti saprei dire.
Quel firmware è parecchio vecchio,

Credo questa sia una richiesta sul firmware che andrebbe postata nel thread ufficiale.

hc900
06-07-2020, 19:06
Esiste un problema con gli instradimenti verso Iliad, ma esiste pure una soluzione nei campi delle impostazioni VoIP perché basta copiarle dal firmware 2019.


Senza cambiare il firmware vecchio 2017 che per me va bene come sta ma con piccoli ritocchi.
Ma ci sono altri utenti Wind che ancora oggi usano questo firmware MOD ?

tossy
16-09-2020, 18:18
Scusate ma non trovo la soluzione, ho cercato nel thread ma niente ...

Non riesco ad entrare nel menù del parental control, il default '0000' non funziona e io non ricordo di averlo mai cambiato.

Anche leggendo il dump del firmware con adbtools2 non riesco a capire se e dove trovare il maledetto PIN.

Ho bisogno di impostare alcune regole per l'accesso di mio figlio minore, qualcuno mi può aiutare?

Grazie infinite.

Bovirus
17-09-2020, 06:03
@tossy

Non hai indicato la versione firmware del modem.
Info che va SEMPRE postata.

Per capire se il problema del Parental control è il PIN credo che la soluzione possa esser quella di fare un backup della configurazione su file, fare un reset del modem e provare se funziona il Parental Control.

Se funziona vuol dire che nella configurazione originale è stato cambiato il PIN del Parental Control e non puoi fare nulla se non il reset del modem e reimpostazione.

Se anche dopo il reset del modem il Parental Control non funziona vuol dire che il problema è altrove e puoi ricaricare il backup della configurazione.
così

tossy
22-09-2020, 16:12
@tossy

Non hai indicato la versione firmware del modem.
Info che va SEMPRE postata.

Per capire se il problema del Parental control è il PIN credo che la soluzione possa esser quella di fare un backup della configurazione su file, fare un reset del modem e provare se funziona il Parental Control.

Se funziona vuol dire che nella configurazione originale è stato cambiato il PIN del Parental Control e non puoi fare nulla se non il reset del modem e reimpostazione.

Se anche dopo il reset del modem il Parental Control non funziona vuol dire che il problema è altrove e puoi ricaricare il backup della configurazione.
così

Grazie per le info.

Il FW è l'ultimo ufficiale: DVA-5592_A1_WI_20191219

Domanda: ma per il parental control si parla sempre di un numero a 4 cifre? O può essere alfanumerico e/o di lunghezza diversa da 4?

Grazie

Se ho la garanzia che sia solo da 4 cifre numeriche faccio un programmino che li prova tutti e 9999 i numeri, tanto ho visto che il modem non da limiti di retry :)

dido76
28-12-2020, 11:21
Salve, ho bisogno di capire come fare a recuperare il voip da questo modem.
Ho questa versione di firmware: DVA-5592_A1_WI_20191219
non riesco a fare il downgrade, ogni volta che provo mi dice che il file DVA-5592_A1_WI_20170908 non va bene.
Mi serve per inserire i dati voip in un fritz!box7530 che ho messo al posto di questo ai miei genitori.
Ho provato sia dal loro pc con w7 sia dal mio con w10
ma evidentemente sbaglio qualcosa e non so come risolvere :muro:
Grazie e spero di aver chiesto nel thread giusto

Bovirus
28-12-2020, 11:26
@dido76

Perché devi fare il downgrade?

I dati (siti/porte) del VOIP sono quelli che sono.
La password del VOIP la puoi vedere sul profilo Wind del 155 (se ce l'hai) o la puoi chiedere al 155.

dido76
28-12-2020, 17:31
@dido76

Perché devi fare il downgrade?

I dati (siti/porte) del VOIP sono quelli che sono.
La password del VOIP la puoi vedere sul profilo Wind del 155 (se ce l'hai) o la puoi chiedere al 155.

perchè leggendo in rete al 155 ti rimbalzano da un'operatore all'altro fino all'amministrazione che ti ricontatta per averlo e non è una cosa veloce...
mentre il profilo wind non so se i miei l'han fatto (e nel caso non so nemmeno dove han messo i dati :muro: ) quindi cercavo un modo di bypassare il tutto.
Sembrava più semplice ma si sta rivelando un'attimo più complicato del previsto.

bancodeipugni
28-12-2020, 17:34
dalle impostazioni memorizzate recuperi tramite adbtools2

altrimenti se non ce l'hai non fai prima a resettare e aspettare l'invio automatico da remoto ?

Yramrag
28-12-2020, 17:53
Profilo Wind? Sarebbe l'area clienti? Dove?

dido76
28-12-2020, 17:59
dalle impostazioni memorizzate recuperi tramite adbtools2

altrimenti se non ce l'hai non fai prima a resettare e aspettare l'invio automatico da remoto ?

ho provato a resettarlo anche alle impostazioni di fabbrica ma il problema è che il fw rimane l'ultimo aggiornato e wind ha bloccato la visualizzazione del voip da quello che son riuscito a capire.

adbtools2...devo provare mi sa

bancodeipugni
29-12-2020, 16:53
no wind non ha bloccato niente, la versione del firmware non c'entra: ho rifatto il reset un mese fa e mi ha reinviato tutte le impostazioni in automatico

dido76
30-12-2020, 09:55
no wind non ha bloccato niente, la versione del firmware non c'entra: ho rifatto il reset un mese fa e mi ha reinviato tutte le impostazioni in automatico

ok ma come sei riuscito a vederle poi?
utilizzando adbtools2?
perchè sul fritzbox devo impostarle manualmente nella configurazione, è questo il mio problema.
Grazie :)

Bovirus
30-12-2020, 10:00
@dido76

Mi risulta che la password del VOIP la puoi decriptare dal file di configurazione con adbtools2 ma solo con i vecchi firmware D-LINK del DVA-5592.

La password del VOIP la puoi chidere al 159 od accedere al tuo profilo online del servizio clienti.

bancodeipugni
30-12-2020, 19:56
ho guardato le config salvate con il firmware 2019 e le password voip le vede

non si vedono più via telnet con configure voip showr invece compare "no uri"

dido76
13-01-2021, 17:51
aggiornamento: è da una settimana che cerco di farmi dare i dati da wind, mi han detto che sarei stato contattato telefonicamente l'8/1/2021 come concordato in chat ed invece sto ancora aspettando.
Riuscire a chattare con qualcuno è un'impresa...scrivi,chiedi e quando riesci a entrare in una chat umana ti dicono che una risposta può arrivare dopo ore (se arriva)...
nel profilo wind a cui finalmente sono riuscito ad accedere non trovo da nessuna parte i dati voip :muro: :muro: :muro:

Bovirus
13-01-2021, 18:32
@dido76

Hai provato a recuperare la password VOIP dal file di configurazione del modem usando adbtools2?

Yramrag
13-01-2021, 18:42
nel profilo wind a cui finalmente sono riuscito ad accedere non trovo da nessuna parte i dati voip :muro: :muro: :muro:

Dove dovrebbe essere? :confused:

dido76
13-01-2021, 19:32
@dido76

Hai provato a recuperare la password VOIP dal file di configurazione del modem usando adbtools2?

no perchè se ho ben capito dalle tue risposte precedenti funziona solamente con versioni vecchie del fw...mentre io ho la versione più recente e non riesco in nessun modo a fare downgrade.
dici di provare lo stesso?
riattacco il modem e poi lancio adbtools2?

Bovirus
13-01-2021, 19:47
@dido76

Io ho provato con il firmware DVA592_A1_WI_20191219 e adbtools2, caricando il file salvato della configurazione del modem e la password del VOIP la vedo.

dido76
13-01-2021, 19:47
Dove dovrebbe essere? :confused:

non ne ho idea...non li trovo.

dido76
15-01-2021, 11:14
@dido76

Io ho provato con il firmware DVA592_A1_WI_20191219 e adbtools2, caricando il file salvato della configurazione del modem e la password del VOIP la vedo.

alla fine :eek: ieri mi ha contattato la wind e dopo varie autorizzazioni vocali di mia mamma (che diceva si senza nemmeno sapere di cosa parlava la gentil signora ma ero lì per sicurezza) mi han dato il numero e la password voip...e son riuscito a far tornare la linea telefonica ai miei.
Grazie per le risposte ed il supporto :)