Tiscali Netbox G/N (Alcatel Thomson TG784)

If you are not paying for it, you’re not the customer; you’re the product being sold. —
Andrew Lewis MetaFilter, 26 Agosto 2010
Richard Stallman, hackmeeting Firenze, 26 Giugno 2011

Alcatel Thomson tg784g (Tiscali Netbox g)La politica di ogni provider adsl che si rispetti è di lasciare fuori i propri clienti dall’amministrazione del router. Va da se che questo modo di fare cozza, completamente, con i miei ideali. Ovvero, io ho acquistato il modem, dunque, penso di avere il diritto di gestirlo come amministratore.

Parliamo di cose serie, se siete tra i fortunati possessori del router Alcatel Thomson tg784g/n che viene dato (comodato d’uso o venduto) dalla Tiscali, per chi stipula un contratto voce, allora avete un serio problema di sicurezza sulla vostra rete locale.

Questi pazzi hanno lasciato l’accesso telnet attivo e aperto verso internet, inoltre, le credenziali di accesso come amministratore sono note. In termini pratici un lamer potrebbe entrare nel vostro router, copiarne la configurazione e/o modificarla a suo vantaggio. Ovvero, chiunque può amministrare il vostro router senza che voi ve ne accorgete, esponendo la vostra rete locale ad attacchi di tipo man in the middle o al furto delle vostre credenziali di accesso alla rete adsl e voip.

Bene, mettiamoci ai ripari. Il mio suggerimento è di creare un nuovo account sul router con i privilegi di amministratore e di rimuovere l’account di default.

Consiglio: prima di continuare accedete all’interfaccia amministrativa web del vostro router, con le credenziali di accesso di amministratore, e salvatene la configurazione (File: user.ini)

Cambiate l’indirizzo ip del vostro pc con 192.168.1.34 e collegatevi all’interfaccia telnet del vostro router:

telnet 192.168.1.254 8081

Attenzione, da rete locale il router risponderà all’interfaccia telnet solo se il pc che chiede l’accesso ha l’indirizzo 192.168.1.34. Il motivo è una regola impostata nel firewall del router (estratto da user.ini):

Thomson TG 784 H:

rule add chain=sink_system_service index=1 srcintf=lan srcip=!192.168.1.34 serv=telnet log=disabled state=enabled action=deny

Thomson TG 784 N:

rule add chain=sink_fire index=1 srcintf=lan srcip=!192.168.1.34 serv=telnet log=disabled state=enabled action=deny

Loggatevi con le credenziali di accesso di root e date i seguenti comandi:

env set var=SESSIONTIMEOUT value=0
user add name = <nome> password = <password> role = root
user list
saveall
exit

sostituite:

  • <nome> col nome del vostro nuovo utente amministratore (consiglio: evitate nomi come  admin, administrator, root e simili) e
  • <password> con la password da voi preferita (consiglio: metteteci una password forte).

Attenzione, alcune volte il router si pianta durante la procedura di saveall. Non allarmatevi se, per più di un minuto, la console telnet non risponde, riavviate il modem usando il pulsante di accensione. Generalmente il router riesce a salvare le impostazioni anche quando si pianta.
Loggatevi nuovamente con le credenziali del nuovo utente che avete creato ed eseguite i seguenti comandi:

env set var=SESSIONTIMEOUT value=0
user list
user delete name = <nome>

Sostituite <nome> con il nome dell’utente root standard del router.
Se cancellate anche l’utente della tiscali avrete eliminato la possibilità da parte dell’assistenza remota di entrare nel vostro router: a voi la scelta.

E, giacché ci siamo, abilitiamo il client ntp del router:

sntp add name=it.pool.ntp.org version=3
sntp config poll=60 pollpresync=5
sntp config state=enabled

inoltre, dato che la tiscali censura i dns, aggiungiamone due statici con priorità superiore a i dns della tiscali stessa:

dns server route add dns=208.67.222.222 metric=1 intf=Internet
dns server route add dns=208.67.220.220 metric=1 intf=Internet
dns server route list

I dns che vedete nell’esempio precedente sono di opendns, se non vi piacciono cambiateli con quelli che più preferite. Nel mio caso ho inserito come dns il server di casa mia considerato che ho bind :)
Ebbene si! In Italia esiste la censura… (lol) provate a collegarvi al sito www[dot]thepiratebay[dot]org oppure www[dot]btjunkie[dot]org, prima e dopo aver cambiato i dns.
T1scal1 censura, al momento, solo i dns, Alice e altri provider eseguono una censura a livello di pacchetto, quindi, anche cambiando i dns non vi collegherete, comunque, ai siti internet censurati. (ricordate tor è vostro amico)

Aggiornamento del 25/07. Sono spiacente di informare la censura di t1scal1 si è allineata agli altri provider adsl, censurando a livello di pacchetto e non più di solo dns…

Modifichiamo la regola del firewall per il servizio telnet del router, al fine di rendere accessibile telnet da qualsiasi pc della rete locale.
Creiamo una nuova espressione che identificherà il range degli indirizzi della nostra lan:

expr add name=personal type=ip addr=192.168.1.0/24 mask=0

Poi modifichiamo la regola (che vi avevo mostrato prima) per il telnet:

regola da usare per il modello Thomson TG 784 H:

firewall rule modify chain=sink_system_service index=1 srcintf=lan srcip=!personal serv=telnet log=disabled state=enabled action=deny

regola da usare per il modello Thomson TG 784 N:

firewall rule modify chain=sink_fire index=1 srcintf=lan srcip=!personal serv=telnet log=disabled state=enabled action=deny

Il comando “srcintf=lan” (letteralmente source interface expression) indica che la regola è valida solo per la rete locale lan. Se volete creare una regola per le connessioni internet dovete usare la parola “wan“.

Non dimenticatevi di salvare tutto prima di uscire:

saveall
exit

Per maggiori informazioni sulla command line interface di questo router eseguite la ricerca “thomson tg784 cli” su g00gle e scaricate il pdf.

Ad ogni modo, eseguendo la procedura di reset fisico del router, sarà possibile riportare il router alle impostazioni standard della adsl Tiscali.

Abilitazione accesso FTP e HTTP da remoto
(Aggiornamento del 10-10-2011)

Non ho mai usato l’ftp del router… tuttavia sembra che a qualcuno faccia comodo :-)

service system ifadd name=FTP group=wan
saveall

Regola testata e NON funzionante o almeno sembra che non basti per fare funzionare l’ftp da remoto.

Analogamente per l’interfaccia web di amministrazione del modem..
(sconsiglio caldamente di abilitarla, ma a volte si sa può servire…)

service system ifadd name=HTTP group=wan
saveall

[Regola testata e funzionante]

Rimozione accesso Telnet da remoto (FTP e HTTP)

Una volta per tutte, togliamo questa falla alla sicurezza del router…
Attenzione, potrete sempre accedere al router tramite telnet dalla vostra rete locale di casa vostra, ma non più da internet.

service system ifdelete name=TELNET group=wan
saveall

Regola per rimuovere l’accesso FTP da remoto ..

service system ifdelete name=FTP group=wan
saveall

Regola per rimuovere l’accesso remoto all’interfaccia web di amministrazione del modem.. (l’accesso remoto non è attivo come impostazione di default del modem, almeno di vostre modifiche)

service system ifdelete name=HTTP group=wan
saveall

Insomma, avrete capito che service system ifadd aggiunge e service system ifdelete rimuove, mentre se volte avere una lista dei servizi del router…

service system list

Purtroppo,  quella lista non ci dice nulla su quale lato (internet o lan) del router sono attivi, bisogna andare a spulciarsi il file user.ini.

Aprire le porte sul router…

Aprire le porte su questo router non è esattamente immediato.
E’ facile notare che se si utilizza una regola per servizio già presente sul router la porta viene aperta correttamente.
Potete constatare voi stessi che se si assegna un ad un pc il servizio ssh o qualsiasi altro servizio preimpostato sul router la porta risulta essere effettivamente raggiungibile dall’esterno. Ben altra cosa accade con le regole definite manualmente dall’utente.

Ho visto che ci sono alcuni navigatori che suggeriscono di disabilitare l’intrusion detection. Non è il caso. Vi faccio una metafora: è come se il vostro elettricista di fiducia per fare passare il cavo dell’antenna dal muro anziché fare un buco col trapano, ve l’ho butta giù con il martello pneumatico. Beh sicuramente il filo ci passa, ma non era esattamente quello che volevamo no?

La soluzione esiste:

  • Fissate in modo statico gli indirizzi ip dei pc di casa vostra su cui volete assegnare dei servizi (Home > Home Network > Devices > …)
  • Create tutte le regole che vi servono (Home > Toolbox > Game & Application Sharing > New Game or Application).
  • Assegnate le regole alle vostre macchine
  • Salvate il vostro file user.ini (Home > Thomson Gateway > Configuration > Backup & Restore) sul desktop e apritelo con wordpad/gedit
  • Cercate la sezione “[ service.ini ]” Es:
[ service.ini ]
add name="AIM Talk" mode=client
...
add name=test
add name=VNC mode=server
add name="Xbox Live" mode=server
...
...

Per sinteticità ho tagliato le regole presenti nel router.
La regola che ho creato per queste esempio si chiama test. La regola in questione non ha il parametro mode, per il modem è equivalente a scrivere mode=client. Risultato porta chiusa dall’esterno. Aggiungete mode=server ad ogni vostra regola creata:

add name=test mode=server

Salvate il file, ridatelo in pasto al modem e avete finito. Solo un ultimo consiglio: NON usate la porta 8080 per le vostre regole, pena la perdita dell’accesso all’interfaccia web del router.
(anche se disabilitato, sulla 8080 del router è presente il servizio di parental control)
In generale se volete avere la lista di quali porte NON si devono usare sul router perché sono in uso dallo stesso modem. Dall’interfaccia telnet date:

service system list

Aprire le porte sul router tramite telnet

Un altro metodo, che vi evita di modificare a mano il file user.ini è il seguente:

Si crea un nuovo “nome di regola”. Es:

service host add name=my_torrent mode=server

Se per caso nel vostro nome di regola sono presenti degli spazi, allora:

service host add name="my torrent" mode=server

bisogna inserire i doppi apici.
Successivamente si devono creare le vere regole per questo nuovo “nome di regola”. Es:

per il solo protocollo TCP:

service host rule add name=my_torrent protocol=tcp portrange=9020-9020

per il solo protocollo UDP:

service host rule add name=my_torrent protocol=udp portrange=9020-9020

per entrambi i protocolli:

service host rule add name=my_torrent protocol=any portrange=9020-9020

Qui, abbiamo aperto la porta 9020 del router. Si possono aggiungere molte regole ad ogni nome di regola, anche per più porte e protocolli diversi, tuttavia ogni nome di regola può essere assegnato ad un solo pc alla volta. Ad ogni modo è da evitare categoricamente la creazione di nomi di regole che aprono le stesse porte con lo stesso protocollo.
(Qui serve solo del buon senso e un po di conoscenza del concetto di NAT)

Infine bisogna assegnare la regola al pc:

service host assign name=my_torrent host=192.168.1.69 log=disabled

Modificate l’indirizzo 192.168.1.69 con quello del vostro pc e ricordatevi di settare il suo indirizzo come statico nell’interfaccia del router. (Home > Home Network > Devices > …)

Per rimuovere l’assegnamento:

service host disable name=my_torrent

Altro esempio. Assegnamo l’SSH ad un pc di casa, (la regola è già esistente sul router):

service host assign name="Secure Shell Server (SSH)" host=192.168.1.66 log=enabled

Rimozione dell’assegnamento:

service host disable name="Secure Shell Server (SSH)"

E adesso, divertiamoci con un po’ di hacking…

Attenzione: Questa procedura è valida solo per il modello TG 784 H.
(Per chi non conosce le credenziali di accesso di default del router o, semplicemente, vuole sbirciare dentro il firmware di questo apparecchio.)
Prendetevi una penna usb, la più piccola che avete va bene. Se avete dei dati sul supporto usb che volete conservare salvateli perché con questa procedura la penna usb verrà formattata.

Procedura valida solo per il vecchio modello Thomson TG 784; il nuovo modello (TG784n) non riconosce il filesystem del pennino.

  • Scaricate il file: tg787-sysroot.sqsh.7z (filesystem che contiene un ln -s alla root)
  • Aprite una shell sotto linux (una distro live di ubuntu può fare al caso vostro se  non avete linux installato sul vostro pc)
  • se non l’avete già fatto, inserite la penna usb nel vostro pc ed eseguite il comando
  • $ mount, nella vostra shell e identificate qual’è il nome della vostra penna usb (nel mio caso /dev/sdb), ed eseguite il comando:
  • $ sudo dd if=/dev/zero of=/dev/sdb, che cancellerà ogni dato presente nella penna (più è grande il supporto più questa operazione sarà lunga),
  • andate nella path dove avete scaricato il file e una volta scompattato eseguite il comando:
  • $ sudo dd if=sysroot.sqsh of=/dev/sdb,
  • a operazione terminata staccate la penna usb e inseritela nella porta usb del router
  • Controllate, collegandovi all’interfaccia web del thomson, che in toolbox => content sharing sia attivo server enabled (upnp Av Media Server) (generalmente è già tutto attivato di default).
  • All’indirizzo \\192.168.1.253 o nelle condivisioni di rete (winzoz) troverete un pc chiamato thomson, al cui interno c’è condiviso il firmware del vostro router.
  • Aprite il file mlpuser.def che si trova in /sys/archive/xxxx/active/, per leggere le credenziali di default del vostro router.

thomson tg784g

Qualcuno ha detto TTL?

Thomson TG784g TTL JTAG

Sembra però che bisogna anche saldare due ponticelli dietro la board del modem per fare funzionare la ttl.
A questo link c’è spiegata la procedura per il modello tg782 (estremamente simile al tg784)
Appena ho un po di tempo farò alcune prove in merito.
Sarebbe molto carino riuscire a parlare direttamente con busybox piuttosto che con la command line interface (CLI) sviluppata da thomson.

Cambiare antenna

Procedura valida solo per il modello TG 784 H, sul quale NON è presente il wifi di tipo N.

Qui si può vedere il cavo “Mini PCI U.FL to RP-SMA Pigtail”

Link utili: