BandaAncha

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate
Fibra
💡

Obtención de contraseña root/admin en el router Zyxel EX3301-T0 de Digi

Pini
12
Router Digi GPON Zyxel EX3301-T0

Recientemente he encontrado una vulnerabilidad en el Zyxel EX3301-T0 con firmware V5.50(ABVY.3.1)G0 aún no documentada por la que podremos inyectar código (como root) a través de cron, y así entre otras cosas sacar el pass de root/admin de nuestro router.

Procedimiento

Necesitamos:

  • Conexión a Internet . Sin tener la conexión activa a internet, este método no funcionará.
  • Un Pendrive , preferiblemente formateado en FAT32 (debería funcionar también en NTFS y Ext2/4).
  • Tiempo

Pasos a seguir:

1- Descargamos el siguiente script pulsando con el botón derecho y Guardar como del siguiente enlace pass.sh o desde github.com/drumpinicho/ex3301pass/tree/main/script. Lo ponemos en la raíz del pendrive con el nombre de pass.sh.

2- Insertamos el pendrive en el USB del Zyxel y entramos en la página del router, por defecto, http://192.168.1.1 y nos logueamos, si no habéis cambiado el usuario, con usuario user contraseña user.

3- Vamos a Configuración de redServicio USB.

Si ha detectado el pendrive veremos un apartado que pone Volumen y justo debajo el punto de montaje.

Si fuera diferente a usb2_sda1, lo copiamos.

usb

4- * Opcional. Por mayor comodidad activamos la compartición de ficheros añadiendo como recurso compartido, la raíz del USB.

5- Configuración de redDNSDNS Dinámico

  • Seleccionamos DNS User Defined.
  • Introducimos esto en Actualización de URL:
foo -x x ; /bin/sh /mnt/usb2_sda1/pass.sh ;

Donde usb2_sda1 es el punto de montaje anteriormente mencionado. Si este fuera diferente se cambiaría acorde al que corresponda y además lo añadimos justo después de pass.sh, quedando de la siguiente forma:

foo -x x ; /bin/sh /mnt/usb2_sdb1/pass.sh usb2_sdb1 ;

Rellenamos el resto de las entradas con el formato que corresponda (puede ser inventado).

ddns

Activamos y aplicamos

6- Vamos a MantenimientoTiempo

Cambiamos la Zona Horaria y ponemos la hora lo más cercano posible de las 00:00. Tenéis la referencia de hora actual arriba al principio de la página.

Solo queda aplicar y esperar a las 00:01 apróximadamente

Resultado

Si todo ha ido bien, se crearán 4 archivos en la raiz del USB:

  • zcfg_config.json, que es la configuración actual del router.
  • flashdump dump de la parte de mtd0 donde se guardan las contraseñas.
  • hexdump_pass.txt hexdump en formato texto del archivo flasdump.
  • pass.txt archivo con las cadenas de texto extraidas de flasdump.

En mi caso , la contraseña de root y admin es la misma y tiene un formato alfanumérico con mayúsculas y minúsculas de 10 caracteres que se corresponde con la quinta línea del pass.txt.

Recomendaciones

Recomiendo encarecidamente entrar como admin al router una vez extraída la clave y realizar backup (aunque no hice un diff, debería ser el mismo archivo que zcfg_config.json) antes de toquetear nada y guardarlo a buen recaudo.

Recordad desactivar el DDNS una vez realizado y volver a poner en la hora GMT que le corresponda.

El usuario admin no loguea en la web o aparece como bloqueado

A la vista de los datos que he analizado, casi con toda seguridad puedo decir, que en algunos routers la contraseña de admin no coincide con la de root. Puede ser que esta haya sido generada por algoritmo , recomiendo probar este método.

Si la generación de contraseña no funciona podemos hacer lo siguiente:

Si no estás seguro de lo que haces, no realices el siguiente método. Un mal formato de la configuración puede hacer que el dispositivo no inicie y tengas que resetearlo de fábrica.

Elevación de privilegios de un usuario de administrador a supervisor

Como a día de hoy no hay forma de desencriptar la configuración del router, nos aprovecharemos de él para que nos genere los datos para un nuevo usuario y cambiar ese usuario en el archivo /data/zcfg_config.json para elevar los privilegios de Medium a High y este actúe como supervisor .

Asumiendo que nos encontramos en Windows , necesitaremos:

  • Editor de texto

Recomiendo el uso de Notepad++ Nunca useis el Notepad de windows

  • Cliente FTP

Recomiendo el uso de FileZilla

Configuramos FileZilla para que use Notepad++ como editor por defecto en EdiciónOpcionesEdición de archivoUsar editor personalizado

Vista EDITAR FILEZILLA

Método:

1- Entramos al router por el navegador y nos logueamos, ip por defecto 192.168.1.1

2- Creamos un nuevo usuario en MantenimientoCuenta de usuarioAñadir nueva cuenta , relleneais a vuestro gusto y guardamos cambios.

Vista página cuentas

3- Ahora, usando FileZilla, nos conectamos vía FTP al router con usuario root mediante conexión rápida donde:

Servidor : IP del router

Nombre de usuario : root

Contraseña : la que hemos sacado en pasos anteriores

Puerto : 21

4- Navegamos mediante la ventana de la derecha a la carpeta /data

5- Seleccionamos el archivo zcfg_config.json con el botón derecho y le damos a editar

Vista navegador filezilla

6- Nos vamos abajo, a la parte del archivo que contiene el usuario que acabamos de crear (podeis buscarlo mediante Ctrl+F por el nombre de usuario o buscando LoginCfg que es la sección que los alberga.

7- Cortamos el usuario que hemos creado (no copieis, no podemos tener usuarios duplicados) de corchete { a corchete } , incluyendo la primera coma ,

Vista notepad

8- Pegamos el contenido justo después del corchete } del usuario admin quedando de la siguiente forma:

Ejemplo simplificado

Vista paste user

9- Guardamos cambios en Notepad++ y cerramos, a la pregunta de ¿Volver a subir este archivo al servidor? en FileZilla le decimos que si.

* Opcional . Podéis volver a abrir el archivo subido descartando el archivo local , para ver que los cambios se han realizado correctamente

10- Solo queda entrar de nuevo en el router mediante la web y realizar un reinicio desde MantenimientoReinicializar

Con esto nos aseguramos de no tener pérdida de datos y que realice el Sync en el sistema de archivos antes de hacer el reboot.

Ya podremos entrar con nuestro nuevo usuario que tendrá permisos de supervisor.

Elevación de privilegios de un usuario de administrador a supervisor. Método 2 gracias al usuario @Burequant

Introducción del config en modo consola por ssh con usuario root para elevear privilegios de otro usuario.

Enlace a mensaje en el foro

Agradecimientos

Quiero dar las gracias a ThomasRinsma , porque sin sus aportes nunca hubiera adivinado donde se guarda el password.

Actualización

  1. He actualizado el comando a escribir en Actualización de URL para asegurarme de que ez-ipupdate dé error y siga con la ejecución el siguiente comando, que sería el script.
  2. Añadida forma de elevar privilegios a cualquier usuario.
  3. Sin conexión a Internet no funciona el método de obtención de claves.
  4. Método nuevo de elevación de privilegios para usuario web gracias al usuario @Burequant
  5. Lamentablemente debido a que ya no dispongo de este router no puedo seguir aportando nada nuevo.
License2Harm
1

Curioso que no esté activo ningún tipo de filtro de esos campos y que ejecute el script que le suministras para DNS dinámica tal cual.

🗨️ 8
Pini
1

Lo mismo pensé yo a la desesperada cuando lo descubrí (parece que querían dejar una puerta abierta a propósito)

Así queda el archivo cron que se ejecuta cada día a las 00:00

0 0 * * * /usr/sbin/ez-ipupdate -S userdefined -U foobar ; /bin/sh /mnt/usb2_sda1/pass.sh usb2_sda1 ;/usr/sbin/ez-ipupdate -h example.com -u "foobar:foobar" -i ppp1 -t 10

Lo de poner /usr/sbin/ez-ipupdate después del script es para evitar que cron se quede de forma infinita intentando ejecutar algo (no sé si sirve, pero no se me ha quedado tonto desde que lo puse).

🗨️ 7
License2Harm

Se parece a las inyecciones de SQL más simples

🗨️ 1
alezz
1

Nah, eso no está hecho a propósito. Eso es el trabajo de un programador que no sabe de las implicaciones que tiene el no parsear los datos especialmente cuando ese campo va a utilizarse en un sitio que ejecuta un comando. Sin querer se marcan un RCE.

🗨️ 4
Pini
1

Incluso además de no haber filtros , creo que no hay longitud máxima en la introducción, Si he hecho un script ha sido por facilitar las cosas, se habría podido escribir todos los comandos en la misma linea

🗨️ 2
alezz
alezz
🗨️ 1
Pini
Pini
License2Harm

programador que no sabe de las implicaciones que tiene el no parsear los datos

El problema es que esos programadores no son una excepción. De hecho, el problema posiblemente esté en que son simplemente programadores y no desarrolladores de software

Burequant
2

Hola, primero dar las gracias a Pini por el tiempo y esfuerzo dedicado. Soy propietario de este modelo de router y confirmo que su método funciona. Ademas el método es sencillo de realizar me llevo 5 min, ahora se muestra el menu completo del router y tengo permisos completos.

Aclaración que me dio Pini sobre el usuario root es solo para las conexiones ssh o telnet, por la interfaz web el usuario es admin y la contraseña es la 5º linea del archivo pass.txt.

La 7º linea es el nº de serie del router, la 8º linea la pass del wifi por defecto. Muchas gracias Pini, maestro.

Jav9i

Decir que he probado suerte con el EMG5523-T50B en la versión V5.50(ABPM.6)b7_K0

O funciona diferente o no tiene dicha vulnerabilidad. Ahora se queda en lo que parece una carga infinita en la pantalla de DNS dinamico, pero no se ha cortado la navegación.

Si da problemas ya le haré el reset.

🗨️ 2
PostePosteriormente

Creo que a veces el password de algunos modelos es el serial number del router en mayuscula si me estoy equivocando decidmelo

🗨️ 1
Jav9i

En el EMG5523-T50B con el firmware V5.50(ABPM.7.4)K0 no sirve. Es posible que sea en otros operadores o que otros modelos de todas formas.

Joangarcia61

Una pregunta, por favor, para el apartado de DNS Dinámico - Actualización de URL

Mi punto de montaje de USB es usb2_sda1. Por lo tanto, entiendo que en Actualización de URL tengo que indicar exactamente esto, ¿no?:

foo -x x ; /bin/sh /mnt/usb2_sda1/pass.sh ; /usr/sbin/ez-ipupdate

Por favor, verifica también los espacios en blanco y los caracteres ;

Muchas gracias!!

🗨️ 1
Pini

Olvida lo de poner /usr/sbin/ez-ipupdate al final, en cuanto pueda corrijo la captura de pantalla.

Lo que nos interesa, es que ez-ipupdate tire error, y no se quede pensando o a la espera de más información , para así seguir con el siguiente comando

En tu caso , puedes poner foo -x x ; /bin/sh /mnt/usb2_sda1/pass.sh ; o foo -x x ; /bin/sh /mnt/usb2_sda1/pass.sh usb2_sda1 ; , es indiferente .

Por favor, verifica también los espacios en blanco y los caracteres ";"

Por eso lo puse como código, para que copies y pegueis

Tech

En mi caso, con la misma versión de firmware, he conseguido extraer los ficheros pero no soy capaz de entrar como admin, me dice que tanto admin como root están bloqueados.

Lo he seguido todo al pie de la letra

¿A alguien más le ha pasado esto mismo?

🗨️ 30
Pini

Intenta entrar con usuario supervisor , si aún así no entra, prueba siguiendo el mismo tutorial pero cambia esto:

foo -x x ; /bin/sh /mnt/usb2_sda1/pass.sh ;

por esto

foo -x x ; /bin/cp /etc/passwd /mnt/usb2_sda1/ ;

Te creará el archivo passwd en la raíz del USB que contiene los nombres de usuario que pueden acceder al equipo

Además, asegúrate de que has escogido y copiado bien la contraseña , tiene un formato de 10 caracteres como esto r2DFaWQes1 (esta es inventada)

🗨️ 28
Tech

Parece que no tienen más usuarios :

nobody:x:99:99:nobody:/nonexistent:/bin/false
root:x:0:0:root:/home/root:/bin/sh
admin:x:12:12:admin:/home/admin:/bin/sh
user:x:21:21:user:/home/user:/usr/bin/zysh

En cuanto a la línea, estoy tomando la 5a. El formato es similar, pero no me accede.

🗨️ 27
Pini

Vale, intenta acceder por FTP al router usando por ejemplo FileZilla con la IP del router al puerto 21 con usuario admin y la contraseña que has extraido

Si no te va con admin, prueba con usuario root

Si te va con root y no con admin, entonces habría que crear una sesión telnet o ssh como root y cambiar el password de admin

Puede que el usuario admin tenga restringido el uso de GUI (la web)

🗨️ 26
dano88
dano88
🗨️ 25
Pini
Pini
🗨️ 24
dano88
dano88
🗨️ 23
Pini
Pini
🗨️ 22
dano88
dano88
🗨️ 21
Pini
Pini
🗨️ 20
dano88
dano88
🗨️ 5
Pini
Pini
🗨️ 4
dano88
dano88
🗨️ 3
Pini
Pini
🗨️ 2
dano88
dano88
🗨️ 1
Tech
Tech
OtroPezMas
OtroPezMas
🗨️ 13
Pini
Pini
🗨️ 12
OtroPezMas
OtroPezMas
🗨️ 11
Pini
Pini
🗨️ 10
OtroPezMas
OtroPezMas
🗨️ 9
Pini
Pini
🗨️ 8
OtroPezMas
OtroPezMas
🗨️ 7
Pini
Pini
🗨️ 6
OtroPezMas
OtroPezMas
🗨️ 3
Pini
Pini
🗨️ 2
OtroPezMas
OtroPezMas
🗨️ 1
Pini
Pini
dano88

A mí también me ha pasado. No consigo acceder ya que me dice que ambos usuarios están bloqueados.

fps2001

no funcionó… ¿el enrutador tiene que estar conectado a Internet? Gracias.

🗨️ 6
Pini

Es posible (no lo he probado) , ya que el archivo que se crea en cron hace uso del interface ppp1 y este no se crea si no hay conexión. También es posible que lo ejecutaras muy cercano a las "00:00" (en mis pruebas , activar cron a menos de 1 minuto de las doce, daba fallos aleatorios, a veces iba, a veces no)

🗨️ 5
fps2001

Entonces, ¿no hay forma de saber la contraseña de administrador con un enrutador sin Internet?

🗨️ 4
Pini

Tengo servicios corriendo ahora mismo y no puedo desconectar internet, pero en cuanto pueda pruebo y te comento si funciona

🗨️ 1
fps2001
fps2001
Ashrambo

sin internet no va el script…lo que no se si permitira hacer es ponerlo como punto de acceso, y no como router principal, para los que tenemos ya un router neutro. Con DHCP deshabilitado, IP fija fuera del rango DHCP del router principal y un cable ethernet de una boca LAN del router principal a una boca LAN de este. Asi si tendria salida y en principio se activaria el servicio DNS…

🗨️ 1
Ashrambo
Ashrambo
Ashrambo
1

Voy a decirlo…entonces es posible hacer un update de firm limpio y bloquear el TR069…te queda un router neutro limpio…

aliveintheseptictank

Que firmware le montariais, el mismo que trae o uno más nuevo que termina en 3.4?

zyxel.com/global/en/support/download?model=ex3301-t0

Yo ya pedí los datos PPPoE esperando poder hacer esto, una vez formateado y planchado firmware oficial no hay forma de que Digi remotamente pueda actualizarlo resolviendo el bug.

🗨️ 11
Pini

No seré yo el que te diga como hacerlo, pero como admin puedes restringir el acceso a tu router, incluso por tr069. No hace falta cambiar el firmware

🗨️ 10
aliveintheseptictank

Lo de cambiar el firm es porque el actual no permite todos los canales en 5GHz, en españa hay canales legales que en este router no aparecen (ni en el de otros operadores) y en bloques de pisos con muchas redes se generan interferencias, pero luego tienes estos canales legales que estan totalmente libres y permiten ancho de banda a 80mhz. Supongo que el oficial si que lo permite.

Como bien dices se puede quitar el acceso una vez tenemos contraseña de admin, pero yo queria mejorar la señal, tengo muchisimos vecinos y todos usamos los mismos canales…

🗨️ 9
Pini
1

Estaba mirando lo que comentas, en el config aparece:

"X_ZYXEL_Auto_Channel_Skip":"120,124,128",
"X_ZYXEL_Manual_Channels_Skip":"120,124,128",
Pero eliminar esas lineas o sus valores hace que el wifi no levante hasta que se restaure la configuración previa
🗨️ 8
Pini
Pini
1
🗨️ 2
Pini
Pini
1
Burequant
Burequant
🗨️ 2
OtroPezMas

@Pini, disculpa, no tienes ninguna novedad respecto a los que tenemos el usuario admin bloqueado mediante web, verdad? Gracias.

🗨️ 2
Pini

No hay que disculpar nada, pero esta semana se me hace imposible. No me olvido, en cuanto pueda y tenga novedades , lo publico

🗨️ 1
OtroPezMas

Vale, muchas gracias. Un saludo.

pjpmosteiro

Genial, acceso completo.

Pregunta: Ahora como carallo se decodifica la pass del SIP? 😂

🗨️ 2
Pini

Sé que lleva cifrado AES 256 cbc con md sha1 y una clave salt no sé de que longitud … Muy parecido a lo que publicó Thomas Risma, pero difiere , y no sé en que… Si te animas.

Por cierto, Mosteiro , Meis o donde?

🗨️ 1
pjpmosteiro

Coruña pero con abuelos de Sigüeiro y Melide :)

Ashrambo

Pregunta…alguno sabe como obtener los firmwares de Digi…

🗨️ 1
zallaevan
1

Aupa ahí, compañero.

Antes de nada, te agradezco sinceramente el tiempo que le has dedicado a todo esto. He intentado poner a práctica tu script de GitHub pero no he tenido éxito. En el primer intento, he probado con un USB exFAT que era lo que tenía a mano, pero como es un formato un poco raro pues he pensado que quizás sea eso y he cogido otro pendrive con formato FAT32 esta vez, y lo he enchufado.

usb2_sdb1, cambio comando y configuración, pongo timezone a helsinki para que el cronjob se ejecute… Pero nada… USB vacío, como mis manos y mis esperanzas.

image

He revisado infinidad de veces la configuración para ver si se me escapaba algo, pero creo que desafortunadamente sea el caso más problable lo que esté pasando: lo han parcheado.

La instalación del router me lo han hecho hoy así que entiendo que vendrá con la última versión del fw, pero el nombre de la versión me da la corazada de que no es así… Version:

V5.50(ABVY.3.1)G0_20220905.

Espero que con tu sabiduría puedas iluminar a un shur más de este foro.

Un saludo,

zallaevan

🗨️ 6
Pini

Como lo has hecho más de una vez, lo más seguro es que se quedara un proceso en memoria tocando las narices y no deje ejecutar de nuevo el cron, haz lo siguiente:

Borra las lineas , aplica, acepta, reinicia el router y empieza de cero.

Si estuviera parcheado el problema no te dejaría escribir ciertos caracteres en "URL Update". La versión que tienes es la misma que tengo yo.

Suerte y sobretodo… paciencia

🗨️ 5
zallaevan

He intentado de todo… Borrar → reiniciar → aplicar → nada… He incluso reinicializado (botón reset) para ver si era eso, pero tampoco ha habido suerte…

Encima, tengo que esperar 1h entre intento e intento, pues al final me ha sacado ya de quicio todo esto jajajja

10 veces comprobando el nombre del USB, cambiar de zona horaria pa'lante pa'trás, a este paso me voy a saber de memoria todas las ciudades y sus correspondientes zonas horarias!!

Ya estoy casi desesperado, y encima súmale que hoy es un día de mierda que toda la gente está venga pa'quí pa'yá con lo de las elecciones…

A ver si consigo algo, a la tarde probaré algo nuevo,

Un saludo,

zallaevan

🗨️ 4
Pini
1

Es algo obvio, pero ajusta la hora para las 00:00 de la noche.

Usa un pendrive en Fat32 (exFat creo que no es compatible)

🗨️ 3
Pini
Pini
Pini
Pini
OtroPezMas

Buenas @Pini, te escribo aqui ya que donde llevabamos la conversacion se queda muy pequeño todo (espero que no te importe). Antes de nada muchas gracias por intentar ayudar.

El primer metodo Python no lo he probado todavia por no instalar Python y demas y porque el metodo Filezilla+Notepad++ me parecia asequible.

Hay una forma expresa de como cerrar FileZilla para que el metodo funcione? Es que, sigo tus instrucciones y, tras reinicializar e intentar entrar con el nuevo usuario creado, el webgui del router me pide que cree una contraseña nueva para ese usuario y, cuando la creo, me carga el menu normal como si hubiese entrado con "user/user". Y si abro de nuevo el zcfg_config.json, el nuevo usuario creado sigue estando debajo del usuario "user" en vez de debajo del usuario "admin".

Mencionar que, despues de hacer el proceso y comprobar que en el archivo el nuevo usuario esta debajo de "admin" (por lo que deberia haber funcionado), cuando intento cerrar FileZilla me salta una ventana diciendo que si estoy seguro de querer cerrar ya que hay uno o varios archivos pendientes de ser subidos (pero cuando he comprobado el archivo esta bien, con el nuevo usuario debajo de admin).

No se, hay algo que estoy haciendo mal o estoy pasando por alto? (el metodo Python me intimida mas; es sencillo? Y, esta probado en este router?).

AÑADO una duda: cuando entramos con privilegios de supervisor, el webgui del router es diferente al de user? Es para saber que ha funcionado cuando lo consiga.

Muchas gracias.

🗨️ 14
Pini

Asegurate de estar en data, es decir, primero pincha en "/" arriba de todo y después en "data".

Si tienes dudas, copia el archivo a una carpeta local, lo modificas (con Notepad++), y lo vuelves a subir a /data. Para asegurarte de que los cambios esten hechos, vuelve a descargar el archivo y miras si mantiene los cambios antes de reiniciar.

Lo de python, puedes descargarte un kali Linux que vienen muy completos y probar. En su momento probé el script por si era generado al password con algoritmo (en el binario que usa el router viene implementado), pero mi password como ya has visto viene grabado en el bootloader

🗨️ 13
OtroPezMas

Pues FileZilla me abría directamente /tmp/var/home/root cuando me logueaba. He hecho click en "/" y después en "data", he seguido el procedimiento de nuevo pero, al iniciar sesion con el nuevo usuario, me vuelve a pedir que cambie la contraseña y, cuando la cambio y entro, todo está como siempre. He abierto de nuevo con FileZilla el archivo de configuración y el nuevo usuario vuelve a estar debajo de "user".

Estoy usando FileZilla Portable crees que sera por eso? Mañana instalo la version normal y comento a ver.

Muchas gracias de nuevo y buenas noches.

🗨️ 12
Pini

He estado mirando, parece ser que cada poco se escribe información en el fichero zcfg_config.json y puede que sobreescriba todo. por eso no coge los cambios, es decir, es cosa de tiempo.

Si encuentro un hueco , mañana posteo otro método, más engorroso (hay que volver a tirar de URL Update) pero creo que más efectivo, tirando de SSH y Scp

🗨️ 11
OtroPezMas
OtroPezMas
🗨️ 10
Pini
Pini
🗨️ 9
OtroPezMas
OtroPezMas
🗨️ 8
Pini
Pini
🗨️ 7
OtroPezMas
OtroPezMas
🗨️ 6
Pini
Pini
🗨️ 5
OtroPezMas
OtroPezMas
🗨️ 4
Pini
Pini
🗨️ 3
OtroPezMas
OtroPezMas
🗨️ 2
Pini
Pini
🗨️ 1
fps2001

Buenas noches,

Te vuelvo a preguntar por favor ¿Es posible desbloquear el router sin acceso a internet?

Gracias.

🗨️ 9
Pini

Perdona, no lo he comprobado porque @Ashrambo lo ha probado y ha confirmado que no funciona.

CONFIRMO que el método de obtención de claves a través de ddns no funciona sin tener la conexión de internet activa

Si no hay conexión no se crea la interfaz "ppp1" y por lo tanto no se crea el archivo que ejecuta el script en cron.

No he encontrado por ahora otra forma de sacar la pass de root. Lo siento

Haría falta un lector de nand y leer el contenido de la partición mtd0 para sacar la clave grabada.

Supongo que otra forma sería crear un servidor fake PPPoE para simular la conexión.

Editado

Ashrambo

Ya postee que si no hay PPPoE no se ejecuta el script.

Gracias Pini por la currada, esta genial para tener todas las opciones. Digi podria haber dejado las opciones de BACKUP y QoS…con capar el tema de firm y los datos PPPoE los manazas no meteriamos la pata…

A ver si en un futuro tenemos acceso a los firm de Digi y podemos jugar entre estos y los del fabricante…no creo que tengamos firm wrt para estos modelos

🗨️ 6
fps2001

@Pini @Ashrambo

gracias por las respuestas…

Conecté el enrutador como punto de acceso al deshabilitar DHCP pero el script aún no funciona.

🗨️ 4
Pini

Si quieres ver si se ejecuta el servicio de ddns en cron , puedes ver este mensaje que postee con anterioridad:

Si quieres ver que es lo que se está ejecutando en Cron,…

Yo en tu caso, miraría de emular un servidor PPPoE con un portatil por ejemplo (seguro que hay gente que lo ha hecho antes), e intentar lanzar el script por el actualizador URL

🗨️ 3
fps2001
fps2001
🗨️ 1
Pini
Pini
fps2001
fps2001
Pini

He estado jugando con qemu y he levantado parcialmente el firm del fabricante y no difiere en nada con el que tenemos instalado, simplemente cambia la revisión y como el firmware es para la serie EX/DX y al no reconocer el hardware (estoy emulando los binarios) aparece una página a mayores sobre los "stats" del ADSL, simplemente eso.

El firmware que lleva montado el router tiene partes de OpenWrt, muy desfasada eso si, se basa en la versión 14 "barrier_breaker"

aliveintheseptictank

Como es que tienes el router de Digi sin tener internet? Te diste de baja y no lo pidieron de vuelta?

Kactius
1

Buenas, primero de todo gracias.

Nombre del modelo

EX3301-T0

Versión de firmware

V5.50(ABVY.3.1)G0

Versión actual del paquete WWAN: 1.24

Por si os sirve de algo antes de probar el método tenia cambios en opciones de la gui como user: rango de IP, canales wifi, contraseña de wifi cambiada, nombre molon de wifi. Quizas es cosa mia y con los ajuste por defecto si funcione el sacar la pass de admin.

En mi caso tampoco fue posible acceder a la GUI como admin con la clave de la 5ª linea "El nombre de usuario o la contraseña no es correcta o está bloqueada." ni tras reinicios del router para liberar el bloqueo. En GUi root tampoco accede, si puede acceder por ftp acepta root con la contraseña de la 5ª linea.

Bueno os comento por si os sirve de algo es un poco offtopic pero permite acceder a algunas opciones que con user no… y quien sabe quizas o de luz en algo…

Vamos a la gui del router 192.168.1.1

Accedemos con user y la contraseña nuestra de user (por defecto user user)

Vamos a Opciones (3rayitas) - Mantenimiento - Cuenta de usuario - + Añadir nueva cuenta de usuario.

Podemos ver que nuestro user pertenece al grupo de Administrator, vamos a ignorar eso y a crear una cuenta nueva con las siguientes caracteristicas:

Nombre de usuario: el que quieras, yo puse test y probe con tambien con paco

Contraseña: la que quieras, puse la que tenia como user personalizada

Verificar contraseña: la de arriba

Número de reintentos: 3

(0~5), 0 : Sin limite

Tiempo de inactividad: 5

Minuto(s)(1~60)

Período de bloqueo: 5

Minuto(s)(5~90)

Grupo: Aqui en grupo en vez de seleccionar administrator vamos a seleccionar grupo USUARIO

Privilegio remoto: LAN WAN al gusto

OK

Dejamos esa cuenta nueva activada, nos desautentificamos de la cuenta user.

Accedemos con la cuenta nueva que creamos en mi caso fue test, no pedirá cambiar clave, lo hacemos o ponemos la misma de antes.

Listo ya estáis dentro y podréis acceder a mas opciones que con user como ejemplo:

Captura
🗨️ 4
Pini

Gracias por compartir!

He probado esto que comentas,pero en mi router no funciona, también es verdad que en el mío funciona la contraseña de admin.

Espero que esto sirva para los que como tú no tienen acceso como admin y realizar un triste backup del sistema.

Me gustaría que realizases un backup lo abrieras y mirases que usuarios tiene el archivo (si buscas por LoginCfg te va directamente a la sección).Lo más probable es que al tener privilegios de usuario solo salga ese usuario que has creado. Si por el contrario te sale el usuario admin y root, puedes probas el truco que comenté en el primier post para escalar privilegios cualquier usuario, pero esta vez restaurando el archivo modificado desde la web.

🗨️ 2
Kactius

Estoy pensando y no probé ¿Y si la autenticación con admin solo funciona por cable de red? y soy tan cazurro de probarlo únicamente por wifi…

De acuerdo un backup ¿uhm? tengo mis dudas…

Con user desde la gui no puedo hacer backup alguno, con test si me permite hacer backup.¿Te refieres hacer backup con el script o con root de alguna manera?

Realice un backup desde la gui con test grupo usuario y solo muestra bajo las líneas de LoginCfg información de test.

Desde la gui con user me muestra ambos usuarios (user y test), con test solo muestra a test.

IMG_20230620_004946IMG_20230620_005058

IMG_20230620_012747IMG_20230620_010357
🗨️ 1
Pini

Estoy pensando y no probé ¿Y si la autenticación con admin solo funciona por cable de red? y soy tan cazurro de probarlo únicamente por wifi…

No, tranquilo , si no me equivoco el problema es que en algunos routers root y admin comparten contraseña mientras en otros la contraseña de administrador parece que es generada por algún algoritmo y difiere de la de root .

Lo del backup lo has hecho bien , lo que pasa es que el fichero que se genera depende de los permisos del usuario que lo solicita. Tampoco valdría de nada cargar un Backup de un admin desde ese usuario Test , porque los datos se "parsean" y no cargaría ninguna configuración superior a los privilegios de ese usuario

OtroPezMas

Gracias por el aporte; he podido hacer un triste backup al menos :)

EDITO para añadir que el backup mediante este metodo apenas contiene informacion, es muy basico. No se si lo habre hecho mal ya que no he tenido mucho tiempo para trastear pero no hay informacion de la configuracion LAN, ni del DHCP, ni del WiFi…

Mane88

Hola a todos, muchas gracias @Pini y todos los aportes por vuestro gran trabajo.

He realizado todo lo que aquí se detalla y me pasa lo mismo que @dano88, os resumo un poco.

Obtenidas las claves correctamente con el gran tutorial (root y admin), también, obtenidas las de admin con el algoritmo. Accedo perfectamente con root por FTP.

También he levantado una sesión SSH con Actualización de URL → foo -x x ; /usr/sbin/dropbear -F -E -p 2222 ; y he accedido correctamente con MOBA y usuario root.

He creado un usuario nuevo y cambiado a Level high y nada.

Cada vez que realizado una modificación en el fichero /data/zcfg_config.json y reinicio, me vuelve a cargar toda la config que había antes, por lo tanto no entro con el usuario creado en el equipo como admin.

Por otro lado, no puedo entrar como admin por web porque tiene detallado lo que ya habéis comentado: "RemoteAccessPrivilege":"WAN".

También he intentado conectarme vía WAN (desde fuera o por cable directamente) y nada (he puesto las IPs que aparecen en el archivo *.json pero no me conecta.

¿Puede que el archivo /data/zcfg_config.json.bak pueda estar influyendo ahí? ¿Hay alguna running_config o saved_config que pueda hacer que esto vuelva a su estado anterior?

También, el puerto 2222, cuando se reinicia el equipo, se cierra la sesión y vuelve a su estado normal, por lo tanto tengo que estar cada 2 por 3 cambiando para ver el acceso por SSH.

Ya sólo me queda cambiar el equipo y mandarlo a la mierda.

Por cierto, ¿cómo podemos acceder a la ONT de Digi que instalan con este equipo? He intentado con la 192.168.100.1 y nada y con la 192.168.1.1 que hablan en otros foros y nada (simplemente por si conocéis el acceso).

Muchas gracias a todos y repito, muchas gracias por este gran trabajo.

Seguiré reportando mis intentos.

🗨️ 5
Mane88

CORRIJO: Ya si entro con mi nuevo usuario con permisos de administrador. Simplemente, no me había logado con el nuevo usuario ya que veía que tras reiniciar se mantenía el " /data/zcfg_config.json" con la misma config anterior, por lo tanto, al entrar tras el reinicio, se carga la config del nuevo usuario con privilegios.

Seguiré enrredando.

Gracias compañeros!

🗨️ 4
Pini

Entonces, según entiendo, si te ha funcionado el cambio de privilegios en zcfg_config.json?

Ya accedes completamente a la configuración entera?

🗨️ 3
Mane88

Correcto @Pini. Lo realicé con MOBA y funcionó. Lo que me perdía era que cambiaba el nuevo usuario y lo ponía en donde Admin, luego reiniciaba y volvía a ver el archivo zcfg_config.json como estaba antes del cambio entonces pensaba que no funcionaba; pero la cosa era que tras entrar con el nuevo usuario después del reinicio se modificaba el archivo y ya si entraba como admin. Así que, si funciona el tuto 100% (fallo mío al no cargar el newuser al reinicio y sólo revisar el archivo). Algo hay en temporal que hasta que no entras no se modifica la running.

Ahora voy a intentar suprimir la ONT y el router Digi por uno que tenga ambas cosas jeje.

🗨️ 2
vomesk
vomesk
🗨️ 1
Mane88
Mane88
aliveintheseptictank

Buenas, tras el desbloqueo alguien ha conseguido actualizar el router?

He intentado instalar la actualización V5.50(ABVY.3.4)C0 de la web oficial y me da un error diciendo que no se pudo cargar la imagen. Puede ser que necesitemos la imagen modificada de Digi?

En su día ya quité el acceso remoto para que Digi no pueda tocar nada de lo que he cambiado. Veo que Digi ha lanzado actualización con un número de versión bastante más elevado que el de la web oficial de Zyxel: ¿Se ha actualizado el router Zyxel EX3301-T0 de Digi en los últimos días?

🗨️ 2
Pini

En mi caso también tengo desactivado el acceso remoto para no perder derechos de administrador en caso de cambios drásticos por parte de Digi.

Nunca he intentado meter una imagen oficial de Zyxel, aunque si las he estudiado en su momento para la obtención de root/admin, y te puedo decir que los cambios eran mínimos (alguna revisión de software interno), pero creo que no tenían funciones a mayores (tendrán correcciones de bugs e inestabilidades).

En los firmwares oficiales había referencia a marcas como Digi, de hecho el logotipo de Digi se carga mediante referencia en el zcf_config.json, por lo que desconozco el porqué de no poder actualizar a uno oficial, aunque sospecho que la letra con el número que sigue a la versión (G0 de la de Digi vs C0 de la oficial) hace referencia a la "región" del dispositivo por lo que esto será lo que impida la actualización.

No sé si utilizaran firmas diferentes o simplemente cambiar la referencia de algún archivo ya sería suficiente.

Siento no poder arrojar más luz

🗨️ 1
aliveintheseptictank

Ok, viendo que hay riesgo de dejarlo brickeado no voy a seguir intentandolo. Solo buscaba actualizarlo porque tengo un "bug", tengo la red de 5ghz separada y con un punto de acceso wifi en el otro lado del piso con el mismo nombre de red pero distinto canal. Los dispositivos cambian correctamente de red al moverme por el piso, pero me he dado cuenta de que ocasionalmente desde el router de Digi a tope de cobertura me da unas velocidades extremadamente lentas y cuando reviso a qué velocidad estoy enlazando con el router veo que ese no es el problema. Con apagar y encender el wifi del móvil se reconecta y entonces si hago una prueba me da la velocidad esperada.

No se si a alguien mas le pasa, antes de abrir hilo quería actualizar a ver si se resolvía. El teléfono es un Samsung S20+ y el otro punto wifi es un Redmi AC 2100 con OpenWrt en modo AP por cable. Conectado al Redmi nunca me ha pasado esto de tener 10mbps con velocidad de enlace a +700 y cobertura a tope

Screenshot_20230908_155427_WiFiAnalyzerScreenshot_20230908_155419_Speedtest

Burequant
1

He encontrado un nuevo metodo para actualizar el zcfg_config.json, para los que no podian entrar por la web con el usuario admin una vez encontradas las claves y por ftp no guardaba los cambios del archivo zcfg_config.json.

Requisitos: Para ello antes tenia una configuracion (zcfg_config.json) ya descargada desde el usuario root por ftp y modificada.

En mi caso entre por ssh al router con el usuario root con el comando foo -x x ; /usr/sbin/dropbear -F -E -p 2222 ; como viene explicado en el hilo.

El comando a utilizar es zycli cfgupdate

zycli cfgupdate -help

Usage: cfgupdate: Copy all content of configuration from "Backup_Restore.conf" then paste to the console after keyin the command line of "zycli cfgupdate".

Nos pedirá pegar en la consola la nueva configuración del archivo zcfg_config.json que tenemos en local modificado

Lo copiamos del editor en local y lo pegamos en la consola y nos aparecera este mensaje

=========== The new Rom-file is ready!! Press the [Enter] to reboot CPE. ===========

=========== If you would give up the new Rom-file, Please press [Ctrl+C].===========

A continuacion pedira reiniciar pulsando enter y mostrara este mesage, se reincia solo.

Rom-file update was success then reboot CPE now !!

He probado a añadir usuarios, cambiar los permisos del admin por LAN y se puede entrar por la web.

Saludos

🗨️ 1
Pini
2

Muchas gracias!!!

Te prometo que ya había probado ese método, pero me había dado algún tipo de error (igual utilicé un usuario normal, ahora no lo recuerdo).

Ahora ando demasiado ocupado, pero en cuanto tenga tiempo le daré un lavado de cara al post principal. El método FTP para subir privilegios a un usuario normal no es fiable, mejor hacerlo por ssh y sftp. En su momento decidí hacerlo por FTP porque era más gráfico y fácil para gente sin conocimientos.

Es bueno saber que este porst sigue vivo, en cuanto pueda te enlazo al primer post.

Gracias de nuevo.

Malanoche1967

Hola gente, No se si aun sigue activo este chat.

Les escribo desde Gran Canaria, y les agradecería si pudieran ayudarme.

Llevo días intentando el proceso tal cual lo describen aqui, pero no logro que salgan los cuatro archivos. solo me pone esto en el pen:

Una carpeta con nombre .Zyxel

Dentro de la carpeta un archivo .ZyTemp

Al abrir ese archivo con block de notas, solo tengo esto:trueno.Zyxelyes07770777

EL router es un Zyxel EX3301-TO

Versión de firmware

V5.50(ABVY.3.9)b2_G0

Digi

Gracias desde Canarias.

🗨️ 1
Pini

Tranquilo,sigo pendiente del hilo, pero por muchas circusnstancias no estoy lo activo que quisiera.

El método fue creado para el firmware 3.1, desconozco si han parcheado el método en el firmware 3.9. El archivo que compartes (carpeta .ZyTemp) que se crea en el pendrive es leído por el router para saber que tiene que compartir el dispositivo por samba, y solo para eso. Es poco editable.

Lo único que puedo decirte es que pruebes de nuevo, pero que antes reinicies el router (es posible que realizases varios intentos y que quedara algún proceso en cron corriendo y que no se ejecutase el script)

Sigue paso por paso y si puedes déjalo corriendo 24h . En el firmware 3.1 el archivo se ejecutaba en cron a las 00:00 cada día, en el 3,9 puede que se ejecute a otra hora.

Saludos

Malanoche1967

Ok, voy a probar lo que me dices y te cuento. Gracias por responder, buen fin de semana.

🗨️ 7
Banano

Hola @Malanoche1967, has podido obtener algo? Yo estoy como tú con el mismo firmware pero no consigo que me saque nada el script.

He probado a resetear el router de fábrica pero tiene cargada config por default del propio operador y no sirve para poder aprovecharlo.

🗨️ 6
Banano

@Pini, gracias por la ayuda y tu tiempo.

He intentado hacer lo que comentas. Previamente he simulado un servidor PPPoE con las credenciales para que levante la interfaz pero a la hora de acceder al router por red me da problemas y no puedo navegar por el USB. Pese a que tengo ping a la 192.168.1.1 (Conectado mi PC a uno de los puertos de LAN) no me deja acceder por red.

Te paso algunas capturas realizadas a ver si me puedes echar una mano.

imageimageimage

Tienes idea, dónde me estoy equivocando?

Muchas gracias. Saludos.

Malanoche1967

Hola! Aún no he conseguido nada. Probé incluso dejarlo 24hs como me dijo Pini, pero nada. Probé con un USB diferente, en formatos NTFS, FAT32, pero nada. Y lo del reseteo es lo que tu dices, se queda con la configuración básica de Digi. Lo único que logré pero por poco tiempo, fue entrar como administrador en un nuevo usuario que creé. Cuando apliqué los cambios, se colgó y no me quedo otra que apagar y encender, pero ya el nuevo usuario que había creado, era idéntico al user por defecto. He probado creando otros usuarios, y nada, todo igual al user.

Probaré con el enlace que puso Pìni, a ver que pasa. Y aprovecho para darte las gracia Pini, por las molestias que te tomas. Saludos desde Gran Canaria.

🗨️ 3
Malanoche1967

Hola, no logro montar el USB como dice Pini en el enlace. Nunca he hecho un montaje de USB en Linux, por lo que no me entero y no soy capaz de conseguirlo, aunque haya googleado un poco. Perdonen mi ignorancia. Saludos!

🗨️ 2
Pini
Pini
🗨️ 1
fps2001

Buen día

Intenté obtener la contraseña de administrador simulando un servidor PPPoE con el método @FRIKIdelTO pero no funcionó.

Por lo tanto, debes tener una conexión a Internet real y activa.