Pepephone y ZTE F680, cómo usar ONT y router propios

Primer paso. Comprobar que tenemos un router válido.

El fin del proceso es retirar el router del operador, Pepephone en este caso, con lo cual necesitaremos un router que sea capaz de negociar esta conexión. La forma más rápida de probar esto es poner el ZTE F680 en modo bridge y probar nuestro router.

Para esto, accedemos a la interfaz web usando 1234/1234 (es un usuario limitado, luego lo veremos), vamos a Network > LAN > DHCP Port Service y configuramos LAN1 en modo WAN (nos quedaremos sin internet).

Conectamos el WAN de nuestro router con LAN1 del ZTE F680, y configuramos VLAN ID 20, con 802.1Q tagging activado (es necesario).

Configuración del Archer C7 para Pepephone usando ZTE F680 en modo bridge

Si este paso funciona, nuestro router cogerá IP pública y ya tendremos conexión a internet. También puede ser un buen momento para pedir a Pepephone que nos saque del CG-NAT en caso de necesitarlo.

Fuente : https://www.adslzone.net/foro/fibra-optica.94/como-poner-router-zte-f680-pepephone-modo-bridge-o-monopuesto-router-asus-rt-ac86u.485928/

Segundo paso. Acceder al ZTE F680.

Si queremos poner nuestra propia ONT, lo que necesitaremos es sacar el password del router ZTE F680. Con el paso de los upgrades, se han ido reparando las vulnerabilidades que hacían de este un paso fácil, así que puede darnos un poco de guerra.

Primero tenemos que hacernos con una memoria USB y formatearla como NTFS. Un vez hecho esto, creamos un enlace simbólico dentro del pendrive, como este

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

También necesitamos poner busybox en el pendrive, asegurándonos bajar la versión para la arquitectura correcta desde el siguiente enlace (mips en mi caso, pero todo indica que también podría ser armv7l)

https://busybox.net/downloads/binaries/1.21.1/

# wget https://busybox.net/downloads/binaries/1.21.1/busybox-mips 
# cp busybox-mips /mnt/pendrive/busybox
# cp busybox-mips /mnt/pendrive/sh

Conectamos el USB al router, y desde el interfaz nos aseguramos de tener activado SAMBA, y también de que el USB está montado. Una vez que esté correcto, nos vamos a Windows y accedemos a \\192.168.1.1 desde el explorador de ficheros. Desde aquí accederemos a nuestra memoria USB, y como tiene un enlace simbólico al fichero de config de SAMBA, podremos modificarlo al gusto.

[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/usb1_1/busybox telnetd -b 192.168.1.1:27 -l /mnt/usb1_1/sh

El truco aquí es que podemos ejecutar cosas desde el preexec de los shares de samba (sin necesidad de reiniciar el router, simplemente accediendo a ese share concreto). Con la configuración de arriba abriremos un telnet en el puerto 27 del router que nos permitirá acceder como root.

Fuente : https://blog.eth1.es/2017/02/18/desbloqueando-el-router-zte-f680/

Tercer paso. Conseguir la contraseña GPON.

Una vez dentro, podremos ejecutar consultas contra la base de datos del router. Esta parecía ser la forma de sacar las credenciales que buscamos, pero en mi caso, está parcheada.

# sendcmd 1 DB p GponCfg

Otra opción sería ejecutarla desde preexec de samba y dirigir la salida hacia un fichero en nuestro USB

preexec = sendcmd 1 DB p GponCfg > /mnt/usb1_1/creds.txt

Lamentablemente, en mi caso las contraseñas aparecen cambiadas por asteriscos. Activar el acceso de admin al interfaz web tampoco parece ser la solución, ya que tampoco están visibles.

<Tbl name="GPONCFG" RowCount="1">
 <Row No="0">
  <DM name="ViewName" val="IGD.GPON" AccessAttr="0"/>
  <DM name="Vendor_ID" val="******" AccessAttr="0"/>
  <DM name="Vendor_Specific" val="******" AccessAttr="0"/>
  <DM name="Loid" val="******" AccessAttr="0"/>
  <DM name="LoidPwd" val="******" AccessAttr="0"/>
  <DM name="LoidState" val="1" AccessAttr="0"/>
  <DM name="Password" val="******" AccessAttr="0"/>
  <DM name="RegisterID" val="1" AccessAttr="0"/>
  <DM name="SfThreshold" val="5" AccessAttr="0"/>
  <DM name="SdThreshold" val="9" AccessAttr="0"/>
  <DM name="MTU" val="1536" AccessAttr="0"/>
  <DM name="MTU_MAX" val="2000" AccessAttr="0"/>
  <DM name="MTU_MIN" val="1518" AccessAttr="0"/>
  <DM name="GemPort_Max" val="32" AccessAttr="0"/>
  <DM name="Tcont_Max" val="8" AccessAttr="0"/>
  <DM name="TcontQueue_Max" val="8" AccessAttr="0"/>
  <DM name="PwFlag" val="0" AccessAttr="0"/>
  <DM name="HexPassword" val="******" AccessAttr="0"/>
 </Row>
</Tbl>

La línea que buscamos es la que pone «Password». Si llegados a este punto ya has conseguido lo que buscabamos, puedes saltar al paso 4. Si no, sigue leyendo.

Ya que no tenemos forma de conseguir leer la contraseña de la base de datos, pasemos al plan B, leerla de la memoria del router. Para ello, nos llevaremos un dump al pendrive (tardará unos minutos)

# /bin/cat /dev/mem > /mnt/usb1_1/ramf680.txt

Esto generará un fichero de 230Mb que podremos llevarnos a analizar en nuestro ordenador.

$ tr -cd '\11\12\15\40-\176' < ramf680.txt > ramf680_limpio.txt
$ grep 'TIGD.GPON' ramf680_limpio.txt

De aquí obtendremos un output con el siguiente formato : 123456123456789GPON1ZTEG123456T (donde GPON es el password que estamos buscando).

Fuente: https://wiki.bandaancha.st/Obtener_datos_Router_ZTE_F680

Cuarto paso. Poner nuestra ONT.

Una vez llegados aquí, habremos comprobado que nuestro router es válido y que tenemos la contraseña, así que podremos coger nuestra ONT, o comprar una barata. Yo la compré en Aliexpress por 10 euretes, aunque también hay alguna en Amazon que podría servir, pero bastante más cara.

Sólo tenemos que configurarla con el password que hemos obtenido en el tercer paso, y podremos quitar de en medio el «molesto» ZTE F680.

Yay! Funciona!