BandaAncha

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

Pasatiempos contra la cuarentena: reventar el pass del router Inteno

Julz
1

Ya que toca quedarse en casa por el tema del coronavirus, que os parece si intentamos reventar la password del inteno?

BocaDePez

A mí estupendo, empieza tú y luego sigo yo.

🗨️ 1
Julz

Estoy en ello, has sacado ya el dump?

dSStripanteL
1

Que hay @Julz ! Espero que todo ande bien por tu lado.

¿Cómo vuelcas el contenido de la flash? ¿Qué comandos empleas? Este video tutorial es bastante reciente y pinta muy bien, todo pasito a pasito (para el rollo este patatero de sacar un firmware):

youtube.com/watch?v=oY-MxtJLEos

¿Dices que la clave DES aparece en la carga del bootloader cierto? ¿Puedes pegar un pantallazo tapando los datos sensibles?

Un saludo y fuerte abrazo!!

🗨️ 2
Julz
1

@dSStripanteL, pues todo bien por aqui, zona coronafree, asi que vamos bien.

Para volcar es facil, por el puerto serie, nada mas arrancar primero bootea la cpu broadcom que tiene su CLI, tienes 2 segundos o algo asin para cancelar el boot y entrar al cli, todo se ve por consola.

luego broadcom tiene comandos, puedes cambiar la mac del hard del equipo, la IP de la web de recuperacion para cargar un fw (La que sale manteniendo reset 20seg). Puedes cambiar si bootear particion nueva o la vieja > AKA FW Actual o el anterior en memoria y demas variables principales, incluso el hardware que hay presente. Esta cpu se monta en muchos router. Tambien puedes botearle firmwares por tftp y que esten en ram.

Luego hay una opcion para ir volcando la memoria por tramos pequeñitos en pantalla. Nada mas empezar ya ves en ascii datos conocidos. El numero de serie, la mac, id varios del fabricante, LA DES, la password del wifi y pass de user y mas cosas que podrian hasta ser parte o completa la password admin dichosa, pero creo que todos los inteno estos tienen la misma y esta en parte del firmware.

No he volcado todo por que es extremadamente lento el rs232, me sale mas rápido desoldar la flash y volcarla a la vieja con programador, pero claro para eso tengo que meter mano a un router que no es mio en teoría. Tampoco podría subir la flash publicamente porque esta me identifica a mi, no solo en la parte del boot que se podría quitar, pero seguro que en la parte de programa hay mas punteros y referencias.

Ahora no tengo el PC con el material, a ver si subo mañana alguna cosilla.

🗨️ 1
dSStripanteL
1

Que hay @Julz;

Muchas gracias, no me he puesto aún con el tema, y tengo todo esto del cacharreo hardwarino muy desconocido! entonces ese firmware del que hablas, es de lo que se comenta aquí no?:

oldwiki.archive.openwrt.org/toh/inteno/dg301b

Base: 4.14_04
CFE version 1.0.38-117.113 for BCM963268 (32bit,SP,BE)
Build Date: XXX XXX XX XX:27:34 CET 2015 (inteno@buildserver-arc1200)
Copyright (C) 2000-2013 Broadcom Corporation.

Chip ID: BCM63268D0, MIPS: 400MHz, DDR: 400MHz, Bus: 200MHz
Main Thread: TP0
Memory Test Passed
Total Memory: 268435456 bytes (256MB)
Boot Address: 0xb8000000

NAND flash device: Micron MT29F1G08AAC, id 0x2cf1 block 128KB size 131072KB
Board IP address                  : 192.168.1.1:ffffff00  
Host IP address                   : 192.168.1.100  
Gateway IP address                :   
Run from flash/host/tftp (f/h/c)  : f  
Default host run file name        : vmlinux  
Default host flash file name      : bcm963xx_fs_kernel  
Boot delay (0-9 seconds)          : 1  
Boot image (0=latest, 1=previous) : 0  
Default host ramdisk file name    :   
Default ramdisk store address     :   
Board Id (0-35)                   : DG301R0  
Number of MAC Addresses (1-32)    : 8  
Base MAC Address                  : XX:XX:XX:XX:XX:XX  
PSI Size (1-64) KBytes            : 24  
Enable Backup PSI [0|1]           : 0  
System Log Size (0-256) KBytes    : 0  
Auxillary File System Size Percent: 255  
Main Thread Number [0|1]          : 0  
Voice Board Configuration (0-0)   : SI32176X2

Y bla bla bla…

Un saludo y fuerte abrazo!

BocaDePez

Soy Julz sin logear. Correcto es esa bios la que tiene la cpu. Desde ahi deja trastear.

🗨️ 3
dSStripanteL
1

Buenas @Julz !

Según lo que veo en esta web: jg.sn.sg/ontdump/

Cuando se realiza un booteo normal, sin “entporpecer” el camino del arranque, podemos llegar a ver las particiones y de donde a donde van según sus direcciones:

Creating 8 MTD partitions on "brcmnand.0":
0x000003d80000-0x000007ae0000 : "rootfs"
0x000000020000-0x000003d80000 : "rootfs_update"
0x000007b00000-0x000007f00000 : "data"
0x000000000000-0x000000020000 : "nvram"
0x000003d80000-0x000007ae0000 : "image"
0x000000020000-0x000003d80000 : "image_update"
0x000000000000-0x000008000000 : "dummy1"
0x000000000000-0x000008000000 : "dummy2"

Si queremos coger la imagen del “data”, deberíamos hacerlo empezando por la dirección 0x7b00000

Luego se invoca el siguiente mandato/comando; dn que su ayuda nos dice cómo se maneja:

CFE> help dn

  SUMMARY

     Dump NAND contents along with spare area

  USAGE

     eg. dn [block] [page] [total pages to view] or dn [address] [total pages to view]

*** command status = 0

Luego empleamos dn 0x7b00000 2050

CFE> dn 0x7b00000 2050
------------------ block: 984, page: 0 ------------------
07b00000: 1985e002 00000af8 9cd73513 00000004    ..........5.....
07b00010: 00000282 00008180 00000000 00006000    ..............`.
07b00020: 59efb809 59efb809 59efb809 0000554c    Y...Y...Y.....UL
07b00030: 00000ab4 00000ab4 00000000 981971e3    ..............q.

La pregunta que me hago es… 2050 es el número de páginas a emplear, ¿no? ¿Sabes cómo calculamos el número de páginas para coger sólo la imagen del “data”?

Muchas gracias y un fuerte abrazo!!

🗨️ 2
Julz
1

Es fácil, viendo cuanto tiene una página, y sabiendo todo lo que quieras sacar, lo divides y tienes el número de páginas, la cosa es que es muuuyyy largo por puerto serie, pero no digo que no se pueda hacer. la longitud creo que es 0x800 por página. de todas formas aun pasandote, lees una pagina del siguiente bloque, y ves donde terminaria y que hay, pero con hXd en el PC, puedes editar esto facilmente, eliminando o añadiendo datos a placer.

De todas formas este dumpeo añade palabras, (– block: 984, page: 0 – ejemplo) por lo que no nos quedaria un hex limpio y tendriamos que andar haciendo limpia en un documento semi infinito, una vez dumpeado casi seguro que el 7z lo descomprimiera tal cual, no parece que este encriptado. Y despues iriamos a atacar a la carpeta que guarda los hashes de las password.

Estas son las del EG200 en modo flash0, ya que recuerda que podemos bootear el fw viejo:

[ 0.906000] Creating 7 MTD partitions on "brcmnand.0":
[ 0.911000] 0x000000080000-0x000000580000 : "kernel_0"
[ 0.919000] 0x000000580000-0x000000a80000 : "kernel_1"
[ 0.926000] 0x000000020000-0x000000080000 : "nvram2"
[ 0.934000] 0x000000000000-0x000000020000 : "nvram"
[ 0.941000] 0x000000a80000-0x000007f00000 : "ubi"
[ 0.949000] 0x000000a80000-0x000003d80000 : "mtd_lo"
[ 0.956000] 0x000003d80000-0x000007f00000 : "mtd_hi"
🗨️ 1
dSStripanteL

Vale, creo que ya le voy cogiendo el gustillo al tema físico!

Sobre las conexiones del USB-TTL, estabas plenamente en lo cierto compi, me funcionó a la primera!

inteno-eg200-serial.jpg

El cable verde es el TreX (TX), el azul al RX y el negro es la masa, ground o GND. El PuttY a 115200. Y como dijiste:

  1. TX _____2. RX
  2. 3.3V ___4. GND

Fijese que los cablecitos del otro extremo son hembra, tuve la suerte de tener alambre de ese para… el pan de molde? Pues va de lujo!

Respecto a lo del tamaño de las paginas, a mí me da una longitud de 0x7F0 en hexadecimal (restando la última dirección por la primera), hay que dividirlo por ese valor. Por ejemplo, si queremos acogernos a la partición “mtd_lo”, hay que hacer (en hexadecimal) con la calculadora de Windows mismamente:

3d80000 - a80000 = 3300000 / 7f0 = 66cd → 26317 número de páginas necesarias (pasadas ya en decimal)

Por lo que, el comando a emplear seria:

dn 0xa80000 26317

Y respecto al tiempo que se tardaría en dumpearlo todo, creo que no debería de irse más allá de las 20 horas (siendo 256MB de NAND y según el video que adjunté en un post anterior de este mismo hilo), no me parece tampoco muy descabellado.

Luego para la limpieza, por Windows podríamos eliminar la linea esa de page…

------------------ block: 0, page: 63 ------------------

Con el comando;

find /V "------------------" putty.log > ficherolimpio.txt

Luego creo que se puede juguetear un poco con el comando xxd de Linux para pasarlo a binario, por lo que parece…

Pero es eso, no tengo mucha experiencia en esto, en este terreno soy novato.

Un saludo y fuerte abrazo!!!

Julz

Toma una herramienta para el dump:

github.com/openwrt-es/cfe-backup

There exists an utility to backup the entire flash:

cfetool

You must connect your PC with the bcm63xx router via serial TTL port while CFE is running. Then execute cfetool with a command like this, maybe different with different boot address / flash sizes.

./cfetool.py –read=dump.bin –addr=0xB8000000 –size=0x1000000 –block=0x10000

-addr=0xB8000000 → Flash Memory Address (see CFE bootlog → Boot Address)

-size=0x1000000 → 16Mb Flash

-block=0x10000 → Memory dumped each iteration (default is 10Kb 0x2800)

cfetool expects the serial port used is /dev/ttyUSB0 in your PC, but you can change it with “–serial=/dev/ttyUSB1”.

Note: not all CFEs have internally the dm/sm command, as a result of this cfetool may not work with some devices. Alternatively you can dump the flash via traditional methods like JTAG or with an OpenWrt ramdisk firmware version.

🗨️ 3
dSStripanteL

Gracias por la tool!

He encontrado este curioso enlace sobre un Inteno X5669A (janstechblog.blogspot.com/2018/) donde hablan de capturar el firmware accediendo a otra imagen vía TFTP con una imagen de tipo ramdisk haciendo:

r 192.168.1.35:initramfs.elf

Luego para ver las distintas particiones, se invoca:

cat /proc/mtd

Empiecese el volcado con ayuda de dd por la imagen/partición que nos interese:

dd if=/dev/mtd0 of=/tmp/mtd0backup

Aquí recogen la imagen usando WinSCP por ejemplo, pero se podría pasar a un pendrive (ya que tienen puertos USB, ¡aprovéchense!).

Y la clave en su caso la encuentran en base54:

syspassword value="cGliNk9FWXZ5Qg==

Este otro enlace ( openwrt.org/toh/observatelecom/vh4032n ) es sobre un router de Vodafone donde se habla también de este método en entorno CFE y también parece ser que lo puede hacer por cfetool pero ya deja claro en paréntesis que es (slow).

Quizá así, nos ahorremos esas horas de más.

Un fuerte abrazo!

🗨️ 2
Julz

Si ya he estado pensando en botear una ram disk. ya lo mirare aer.

🗨️ 1
dSStripanteL

@Julz!

He cascado un par de dumps (a la vieja escuela), guardándolo todo lo que arrojaba por la pantallajuela en un putty.log, sobre lo del pass root pues no he visto nada… es más, he buscado por cachitos de la password del user que es la de la wifi y no he visto nada (se muestra en ASCII ), por lo que igual estará en la “sombra” (/etc/shadow) habría que pasar el dump en hex a bin pero bueno, hay una cosita que me ha molado mogollón. Y es que… ¡La password de la VoIP está en claro! Es decir… ¡No se necesita la clave DES ni nada de nah si has sido capaz de acceder al router por serial!

El pass lo encontré en el dump de la partición: mtd_lo que parece ser la partición de respaldo, porque en la mtd_hi no la encontré… será porque he hecho algún que otro hard-reset y claro, ya se esfumó…

Primero la plantilla aparece en esta zona:

012c4320: 00000000 00000000 72656769 73746572    ........register
012c4330: 203d3e20 7c545241 4e53504f 52547c3a     => |TRANSPORT|:
012c4340: 2f2f7c55 5345527c 407c444f 4d41494e    //|USER|@|DOMAIN
012c4350: 7c3a7c53 45435245 547c7c41 55544855    |:|SECRET||AUTHU
012c4360: 5345527c 407c5052 4f564944 45527c7c    SER|@|PROVIDER||
012c4370: 504f5254 7c2f7c43 4f4e5441 43545f55    PORT|/|CONTACT_U
012c4380: 5345527c ffffffff ffffffff ffffffff    SER|............

Tiene este formato:

register => |TRANSPORT|://|USER|@|DOMAIN|:|SECRET||AUTHUSER|@|PROVIDER||PORT|/|CONTACT_USER|

Luego la pass sale un poco más abajo:

03144320: 72656769 73746572 203d3e20 7564703a    register => udp:
03144330: 2f2fUUUU UUUUUUUU 2e766f69 702e6164    //UUUUUU.voip.ad
03144340: 616d6f2e 65734039 312e3132 362e3232    amo.es@91.126.22
03144350: 342e393a PPPPPPPP PPPPPPPP 3aUUUUUU    4.9:PPPPPPPP:UUU
03144360: UUUUUU2e 766f6970 2e616461 6d6f2e65    UUU.voip.adamo.e
03144370: 73407369 70302fUU UUUUUUUU UU2e766f    s@sip0/UUUUUU.vo
03144380: 69702e61 64616d6f 2e65732e 2e2e2e2e    ip.adamo.es.....

Donde está la P es la pass, aquí si interesa pillarla en ASCII.

¿Algo es algo no? 😊

Saludos y un fuerte abrazo !!!

Julz

La opcion de la ramdisk la he descartado porque boteando imagenes genericas se me casca, habria que compilar una y es demasiada perdida de tiempo para lo que vale realmente el equipo.

Esta bien saber que la memoria va sin encriptar, la verdad es que es otro metodo para sacar los datos, ya sabemos desencriptar la provision y ahora las posiciones de memoria con esos datos en claro. Si has echo hard reset es logico que no encuentres datos en la otra particion, ya que se habran escrito por encima los de por defecto. He intentado dumpear por el puerto serie y al final he tenido problemas, no me va muy fina la interface que tengo o se me cuela ruido por la fuente de alimentacion del PC o del router, o ambas quien sabe. No tengo osciloscopio para ver que pasa con la señal.

Ayer ya de cabreo saque la flash con la estacion de aire, lo que pasa es que no tengo zocalo TSOP48 para el programador.

Evidentemente se que asi se va poder sacar si o si, ademas de tener backup de la rom vieja y la nueva. El problema es que si pillo el zocalo me va costar lereles, y no se si posteare mas cosillas a parte de la pw. Porque va ser mas por pasatiempos que otra cosa, ya que tengo un mikrotik rb4011 que se lo cepilla en prestaciones unas cuantas veces. Pero bueno. ya se vera. De todas formas estos datos los tenia que proporcionar Adamo, al igual que las demas operadoras, no te dan soporte directamente, cosa que es logica, ya sabes que tocas, pero no ponen impedimento a que puedas configurar las cosas como te venga.

De todas formas en unos dias la tendremos :)

dSStripanteL

A mí me turula muy bene con mi adaptador, la verdad es que no he probado ningún otro y este me lo compré y solo lo estrené con este router… Lo dejé más de 5 horas, 0 problemas y la pantalla más limpia que el jaspe. Si además… le puse unos hilillos de esos de panecillo, ¿manda leches eh?

Creo que si se pone de “trasero” la pass de admin, quizá se tenga que jugar con la clave pública y/o privada del dropbear, cómo el agujero que daba permiso de acceso admin en el pasado.

Yo muy contento con mi Synology RT2600AC también.

Estoy de acuerdo contigo, deben de proporcionarte lo que es tuyo y liberar al cacharrito en cuestión.

Claro que sí compi, la intención es pasarselo bien y aprender juntos :)

Un fuerte abrazo!