Desbloqueando el router ZTE F680

Madre mía, la de años que llevo con este blog publicando pegotes. Y otros tantos sin poner ni una mierda. No es que a mí me guste publicar cosas aquí, pero bueno. A ver, lo que venía yo a contar…

Recientemente los de Jazztel me pusieron el router F680 de ZTE, sustituyendo a los dos anteriores chismes de fibra que tenía (el ONT y el router H218N reventado el cual empezó a petar salvajemente y de ahí que lo jubilase). Obviamente como cada trasto nuevo que entra en mi habitación, investigué por ver si era posible meterle algo de «mano», ya que generalmente vienen bastante limitados por la operadora (cosa que todavía no entiendo por qué lo hacen). Con meterle mano me refiero a ver las deseadísimas credenciales del VoIP (aunque yo éstos ya los tenía sacados del H218N), desbloquear ciertos parámetros que por la interfaz web vienen bloqueados o incluso ejecutar aplicaciones como si de una Raspberry Pi se tratase…claro que con ciertas limitaciones.

Con lo primero que me topé era con un vídeo no demasiado antiguo que desarmaba el router para pincharle el mítico Serial mediante TTL USB (paso de entrar en detalles de cómo funciona esta movida porque como ahora pasaré a explicar, lo vamos a hacer todo más sencillo y sin quitar ni un solo tornillo). Al ver esto ya se podría decir que estaba a mitad tirar la toalla, porque estoy loco pero no tanto como para abrir el router el primer día de estrenarlo, sin saber bien si iba a conseguir algo o incluso cargármelo y no tener otro a mano.

Seguí rebuscando por la red de redes y me topé con un post en Bandaancha en el cual hablaban de este modelo y de cómo poder entrar hasta la cocina. Si te aburres igual o más que yo y quieres leerte los cientos de mensajes que hay allí adelante, pero lo mismo que se cuenta allí lo voy a resumir yo aquí debajo, así que eso que te ahorras.

En fin, leyendo el post llegué a la conclusión de que no hacía falta irse a la India, alquilar un Tata y subir el Kanchenjunga para conseguir unos resultados más que satisfactorios.

Llegamos al meollo del asunto

Antes que nada comentar que el router tiene una interfaz Telnet, pero capada no, lo siguiente. Por no dejar no deja ni hacer un ls. Bien, dejémonos de tonterías y vayamos al grano; vamos a necesitar, lo primero, un pendrive. No importa de qué capacidad sea, a menos que al final del «tutorial» quieras tener un Transmission puesto y obviamente necesites capacidad para tus torrents. Yo vengo utilizando uno de 1GB porque es el pendrive más triste que tenía por ahí y pese a que tengo instalado el Transmission, no lo utilizo.

Lo primero que necesitaremos hacer en el pendrive es formatearlo como NTFS si no lo estaba ya de antes y crear un enlace simbólico:

ln -s /var/samba/lib/smb.conf .

Algunos quizás ya sepan por dónde voy… Sí, realmente aquí es donde está la «cagada» de los que diseñaron el router. Cagada o qué sé yo, quizás esto sea lo normal en estos chismes y estoy yo desprestigiando por desprestigiar. El caso es que sí, el router para quien no lo sepa, tiene un servidor Samba preparado principalmente para acceder a los dispositivos de almacenamiento que se encuentren conectados al router. Decir que el comando ese está disponible únicamente en Linux y desconozco que se pueda hacer bajo Windows.

Lo próximo que necesitaremos copiar al pendrive es una copia de Busybox para ARM. Esto lo podemos hacer descargándolo desde su propia web. Lo renombraremos a «busybox» a secas y hacemos una copia llamada «sh». El pendrive nos debe quedar con un fichero «busybox», otro «sh» (son exactamente idénticos pero con diferente nombre) y el enlace simbólico «samba.conf».

Hecho esto, pinchamos el pendrive en el USB que más rabia nos de y accedemos al router a su dirección \\192.168.1.1 (ya podéis deshaceros de Linux, todo lo demás no hay problema de hacerlo desde Windows). Como se puede ver si todo ha ido bien, es que podemos acceder al contenido del pendrive, y éste tiene el enlace simbólico que hicimos antes al fichero de configuración de Samba. Ahora lo que deberemos hacer es abrirlo con algún editor (Notepad++ recomendado) y editarlo, sustituyéndolo por lo siguiente:

[global]
guest account = root
deadtime = 5

log level = 0

server string = Samba Server
security = share
load printers = no
workgroup = workgroup
short preserve case = yes
preserve case = yes
netbios name = smbshare
preexec = /mnt/usb2_1_1/busybox telnetd -b 192.168.1.1:27 -l /mnt/usb2_1_1/sh

[samba]

comment = samba share dir

read only = no
guest ok = yes
guest only = yes
short preserve case = yes
preserve case = yes
max connections = 3
path = /mnt

[root]

comment = samba share root
read only = no
guest ok = yes
guest only = yes
short preserve case = yes
preserve case = yes
max connections = 3
path = /

De aquí no deberíamos modificar nada, a excepción de quizás la ruta al fichero busybox. Yo pinché el pendrive en el USB que el router tiene por el lado, y a este lo llaman «2_1_1».

Bien, con esto hecho, sin reiniciar absolutamente nada (ya que si reiniciamos Samba o el propio router, estos cambios se revierten) abrimos una nueva sesión de Samba (como antes \\192.168.1.1) veremos que ahora tenemos acceso a la raiz de ficheros del router. Además de eso, de forma transparente se habrá instanciado una nueva sesión Telnet bajo el puerto 27, así que allí vamos.

Abrimos una consola de comandos (lo más cómodo es utilizar PuTTY en Windows) y le indicamos que queremos conectarnos mediante telnet a la dirección 192.168.1.1 mediante el puerto 27. Si todo va bien debería preguntarnos inmediatamente por un nombre de usuario, en el cual escribiremos «root», para inmediatamente después preguntarnos por una contraseña, la cual pondremos que es «Zte521». Ya estaremos dentro del router con permisos de administrador.

El siguiente paso que vamos a tomar es el de «desbloquear» el Telnet original, el que el propio router tiene por defecto bajo el puerto 25 y que viene limitado. Para ello, en la sesión de telnet que abrimos anteriormente y no debimos cerrar todavía, escribimos el siguiente par de comandos:

sendcmd 1 DB set TelnetCfg 0 UserTypeFlag 0

sendcmd 1 DB save

Lo que hemos hecho con estos comandos es, básicamente, modificar los permisos de la sesión nativa de Telnet y seguidamente guardar los cambios, para que al reiniciar el router aquello no se nos desconfigure. Supongo que resetear el router (que no reiniciar) sí que hará que todo esto se vaya al carajo, pero eso no es algo que vayamos a hacer todos los días, y la opción de volver a repetir todos los pasos sigue ahí.

Llegados a este punto podríamos cerrar ya la sesión de Telnet que tenemos abierta bajo el puerto 27, y pasar a entrar por la nativa en el puerto 25, y comprobar que efectivamente funciona y no hemos tenido problemas hasta aquí. Incluso podríamos deshacernos también de los ficheros del pendrive, aunque lo recomendado es dejarlos ahí, por si las moscas.

Bueno, pues una vez dentro del sistema…¿qué podemos hacer? Pues casi lo que nos de la gana. Así como básico tenemos el famoso comando para obtener las credenciales del VoIP de nuestro teléfono fijo de Jazztel:

sendcmd 1 DB p VoIPSIPLine

Si leemos la respuesta que nos da el comando veremos algo como AuthUserName, AuthPassword DigestUserName. Esos 3 parámetros son los más importantes. Podemos cacharrear más con estos comandos (con cuidado, eso sí) listando toda las entradas que la base de datos de este router tiene mediante

sendcmd 1 DB p

Otra cosilla que igual a alguien le podría interesar, es utilizar el VoIP con otro servidor que no sea el de Jazztel. Por ejemplo, yo estoy mirando actualmente de configurar un servidor Asterisk o similar para que funcione de forma que, si me llaman al fijo, me suene también en el móvil. O que si no lo coje nadie en casa, que se redirige la llamada al móvil y cosas así. Para conseguir esto necesito que el router se conecte a mi servidor, y mi servidor se conecte al de Jazztel y a todos los que me de la gana (como por ejemplo, los de FreedomPop). En fin, esto son fumadas mías, pero si a alguien más le interesa, quizás se haya dado cuenta que cambiar esos parámetros mediante la interfaz web es prácticamente imposible. No nos deja. Para que nos lo permita, tendremos que enviar unos comandillos:

sendcmd 1 DB setapidmacs IGD.SV.VS1.VP1.PS VoIPSIPServer OutboundProxy1 0
sendcmd 1 DB setapidmacs IGD.SV.VS1.VP1.PS VoIPSIPServer OutboundProxyPort1 0
sendcmd 1 DB setapidmacs IGD.SV.VS1.VP1.PS VoIPSIPServer RegistrarServer1 0
sendcmd 1 DB setapidmacs IGD.SV.VS1.VP1.PS VoIPSIPServer RegistrarServerPort1 0

sendcmd 1 DB setapidmacs IGD.SV.VS1.VP1.VL1.LS VoIPSIPLine AuthUserName 0
sendcmd 1 DB setapidmacs IGD.SV.VS1.VP1.VL1.LS VoIPSIPLine AuthPassword 0
sendcmd 1 DB setapidmacs IGD.SV.VS1.VP1.VL1.LS VoIPSIPLine DigestUserName 0
sendcmd 1 DB setapidmacs IGD.SV.VS1.VP2.VL1.LS VoIPSIPLine AuthUserName 0
sendcmd 1 DB setapidmacs IGD.SV.VS1.VP2.VL1.LS VoIPSIPLine AuthPassword 0
sendcmd 1 DB setapidmacs IGD.SV.VS1.VP2.VL1.LS VoIPSIPLine DigestUserName 0

sendcmd 1 DB save

Ahora podrás ver que efectivamente, ya puedes cambiar todos aquellos parámetros VoIP del router que antes no podías. ¡Recuerda haber sacado antes los datos VoIP y haberlos guardado en un lugar seguro, por si en algún momento necesitas restaurarlos! Aunque lo ideal es descargarse un backup antes de tocar nada. En caso de problemas restauraríamos y listo.

Por último y no menos importante, es poder ejecutar cosas en el router. Yo no recomiendo esto porque los recursos que tiene son limitados. Si aún así estás interesado, aquí explicaré cómo poner un Transmission y acceder a él mediante su interfaz web.

To-do

uTorrent 1.8 Beta 9272 ya descargable

Ya tenemos una nueva versión Beta de uTorrent el excelente cliente BitTorrent anunciada en los foros de uTorrent. En esta nueva versión Beta de uTorrent se corrigen algunos errores presentes en versiones anteriores y presenta algún cambio que podéis ver en su listado de cambios.

uTorrent destaca sobre otros clientes ( BitComet, BitTorrent, Azureus, etc) por su fácil configuración y su escaso consumo de recursos.

Avisar de que los usuarios que descargan torrents de la página de Animersion, no actualizen todavia hasta que se avise, ya que no todas las versiones son aceptadas.

Fuente | Sofware.ADSLZone.net

Cliente de torrent Online.

BitLet.org es un proyecto nuevo, por lo tanto, Beta que consiste en poder descargar un torrent desde el mismo navegador, unicamente teniendo Java instalado (y el navegador evidentemente xD).
Yo lo e probado, y baja lento, ya que es una versión beta, en modo de pruebas. Eso si, te permite reanudar una descarga si se te cortó la conexión por ejemplo..
¿Tendrá futuro este proyecto..? Quien sabe..

BitLet.org