Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?
17-01-2018, 08:20 (Mi?rcoles)
Inicio Ayuda Reglas Buscar Ingresar Registrarse
Noticias:
Liberada wifislax64-1.1 version final para descargar

Videos Downloader




+  Seguridad Wireless - Wifi
|-+  Equipos y materiales
| |-+  Puntos de acceso, routers, switchs y bridges (Moderadores: jar229, Samuelongui)
| | |-+  A saco con el CDE30364
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: A saco con el CDE30364  (Leído 159 veces)
Yo_Julio
**
Desconectado Desconectado

Mensajes: 25


Ver Perfil
« : 30-11-2017, 14:55 (Jueves) »

Hola
Hace tiempo me regalaron uno de estos y después de años en la caja de los trastos me ha dado por meterle mano.
Le desoldé la flash y la leí con ayuda de Flashrom y un Arduino.
Despues lo único que hay que hacer es cambiar la cadena quiet=s por quiet=n con Ghex, grabar y volver a soldar.
A partir de ahí con putty por el puerto serie se le puede habilitar el USB, telnet, cambiar firewall...
Y yo que lo iba a tirar...

Una vez destripado me he venido arriba Smiley lo he vuelto a dejar como estaba de origen y me he puesto a buscar una forma mejor (sin meter el soldador). Con lo visto se me ocurrieron dos opciones:

Opción1
No sé si se podrá.
Pulsamos el botón de encendido y el que está al lado del USB a la vez
No se ve nada, pero esto es lo que hace el router:

Código:
Filename 'ht_sfile'.
Load address: 0x80000100
Loading: T T T T T T T T T T
Retry count exceeded; starting again

Así que poniendonos la IP 182.168.100.2 y tftp se le podría cargar un fichero ht_sfile.
Habría que probar con un firm que no tenga capado telnet o la consola por ejemplo.


Opción2
A saco. Al estilo de mi pueblo.
-El router se puede quemar (no creo si se tiene cuidado, pero hay que decirlo)
-En la flash aparece dos veces quiet=s y una quiet a secas. Como el entorno está duplicado la tercera puede ser el default de U-Boot

Dicho esto -fiel a mi estilo- hice fallar a U-Boot, al default, para ver que pasa

Con unas pinzas se hace un puente entre la pata 8 de la flash y la masa de la consola unos segundos .
No se trata de soldar un puente porque no arrancará sino de hacer un mal contacto, provocar el error.



Doy al botón de arranque y suena la flauta Smiley aparecen caracteres y finalmente el prompt de U-Boot.
Así que sin perder tiempo:
Código:
=>
=> setenv quiet n
=> saveenv
ERROR
No se qué, error en el entorno. Vaya por Dios.   Embarrassed

Repito
Tripito
Cuatripito
...
ad nauseam  Evil
...
y despues de la enésima, justo a la última aparece esto:   Azn

Código:
DRAM:  128 MB
*** Warning - Unsupported Flash detected, flash is unusable

Manufacturer ID: 0x0
Type: 0x0
Density: 0x0
Extended ID: {0x0, 0x0}
*** Warning - bad CRC, using default environment    

In:    serial
Out:   serial
Err:   serial
Error: start address not on sector boundary
Error: start address not on sector boundary
Error: start address not on sector boundary
Error: start address not on sector boundary
Error: start address not on sector boundary
Error: start address not on sector boundary
Press @ to abort autoboot in 1 second(s)      
*** ACTIMAGE = 1, will try to boot UBFI1 stored @0x48040000
## Executing script at 48040000
...
...
...

Cuando termine de arrancar, pulsa intro
Código:
starting pid 278, tty '/dev/ttyS0': '-/bin/sh'

BusyBox v1.15.2 (2012-12-03 14:54:23 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
~ #
Grin Grin Grin Grin
Ahora deja de hacer el chimpancé por toda la habitación, espera que se te borre esa sonrisa malévolo-torticera de la cara, en su lugar déjate llevar por la satisfacción del trabajo bien hecho y con una sonrisa serena en los labios teclea:

~ # cli
>>>
Console, CLI version 1.0.0.5
Type 'help' for list of commands
mainMenu> docsis
docsis> telnetd
Select LanOnline TELNET Service Access:Currently set to <0> :
[ 1]-ON
[ 0]-OFF
Choice > 1
Select LanOffline TELNET Service Access:Currently set to <0> :
[ 1]-ON
[ 0]-OFF
Choice > 1
Select Cable TELNET Service Access:Currently set to <0> :
[ 1]-ON
[ 0]-OFF
Choice > 0
Now TELNET Service Access Selection:
LAN ONLINE: :<1>        LAN OFFLINE : <1>       CABLE :<0>
Set OK!
docsis> exit
mainMenu> exit
CLI Bye Bye

En un terminal:
julito@Rossetta:~/cde30364$ telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
CDE-30364 login: root
Password:


BusyBox v1.15.2 (2012-12-03 14:54:23 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

~ # echo Soy el p..o $(whoami)
Soy el p..o root
~ #
 Cool

Al final he tardado casi menos en poder meterle mano por telnet que en quitarle los tornillos y conectarlo Smiley

Ahora pruebo a reiniciar a ver si hay suerte y U-Boot me sigue hablando...

Código:
U-Boot 1.2.0-g73dbfe77 (May 27 2011 - 10:28:29)
PSPU-Boot 1.0.16.22-H2.8.3

DRAM:  128 MB
Flash Spansion S25FL128P(16 MB) found on CS0.
Flash Spansion S25FL128P(16 MB) found on CS1.
In:    serial
Out:   serial
Err:   serial
Press @ to abort autoboot in 1 second(s)

Pues eso. Pararlo con @ y por si acaso:

=>
=> setenv quiet n
=> saveenv
Saving Environment to Flash...
Un-Protected 1 sectors
Un-Protected 1 sectors
Erasing Flash....
Erased 1 sectors
Writing to Flash... ..
done
Protected 1 sectors
Protected 1 sectors

Listo.
« Última modificación: 04-01-2018, 11:32 (Jueves) por Yo_Julio » En línea
Yo_Julio
**
Desconectado Desconectado

Mensajes: 25


Ver Perfil
« Respuesta #1 : 04-01-2018, 12:28 (Jueves) »

He tenido un poco de tiempo libre así que he vuelto a jugar con este cacharrillo. Mi idea es conectarle un disco USB con Samba.

Al conectarle el cable serie en el arranque sale esto:
------------------------------------
        -->Config USB server...
VBUS off(0)-GPIO60(LOW)
suspend: usb power down
------------------------------------
Asi que es el SW del operador el que tira abajo el USB  Tongue
La idea sería dejar:
CLI operativo
Paginas web de configuración operativas (o casi)
Cable inoperativo (o no  Azn)
Usuarios por defecto eliminados o con la password cambiada
USB operativo (mass storage, SMB y -si se puede- servidor de impresora) Ambos vienen en el firmware

Hacemos un backup de las particiones (Generic Backup OpenWrt Wiki)

Las juntamos (cat mtd0.backup...   > todo.backup  ) y binwalk nos confirma que el FS está repetido
0x0000000 0x0040000 bootloader
0x0040000 0x0146000 Boot Script File
0x00413FC Multi Image File
    0x0041448 0x0145FFF Kernel
    0x0146000 0x0837239 sqsh

0x0FF0000 0x162ABA1  Boot Script File
0x0FF13FC Multi Image File
  0x0FF1448   0x10F5FFF  kernel
  0x10F6000   0x162ABA1  sqsh 

0x1FB0000
   0x1FB0050    Zlib compressed data
   0x1FB00AC    0x1FC20CB   JFFS2 filesystem

No me interesa ni UBIFS ni tener todo duplicado así que me hago mi propio esquema de particiones y lo cargo a partir del resultado de binwalk.
Ahí va:

Montamos un tftp server en el PC con IP 192.168.100.2

Kernel
Extraemos el kernel del backup: 0x0041448 a 0x0145FFF -> kernel.bin

Creamos la imagen del kernel
mkimage -A ARM -O linux -T Kernel -C none -a 0x80A00000 -e 0x80A00000 -n 'Kernel Julio' -d kernel.bin kernel.img

Tenemos:
uboot  en 00000 a 20000 (0x20000, 128k)
env1   en 20000 a 30000 (0x10000, 64k)
env2   en 30000 a 40000 (0x10000, 64k)

Cargamos el kernel en 40000:
tftpboot 0x80000100 kernel.img
protect off 0x48040000 +${filesize}
erase 0x48040000 +${filesize}
cp.b ${fileaddr} 0x48040000 ${filesize}
protect on 0x48040000 +${filesize}

Ahora ya se podria arrancar el kernel con bootm 0x48040000

Extraemos el FileSystem: 0x0146000 0x0837239 -> squashfsRootFileSystem.backup
Cargamos el squashfs original en 150000

tftpboot 0x80000100 squashfsRootFileSystem.backup
protect off 0x48150000 +${filesize}
erase 0x48150000 +${filesize}
cp.b ${fileaddr} 0x48150000 ${filesize}
protect on 0x48150000 +$filesize

Para poder meterle mano creamos un filesystem de lectura/escritura que será con el que arrancaremos al final
Creamos un en el PC fs de 10M vacio (Vale, seguro que hay una forma más elegante)
mkdir dir_vacio
mkfs.jffs2 --pad=10000000 --big-endian --squash -v -e 64KiB -o vacio.jffs2 -d dir_vacio

Lo cargamos
tftpboot 0x80000100 vacio.jffs2
protect off 0x48E90000 +$filesize
erase 0x48E90000 +$filesize
cp.b ${fileaddr} 0x48E90000 ${filesize}
protect on 0x48E90000 +$filesize

Cargamos del backup la partición que tiene la nvram en E40000 a E90000 (0x50000 320k)
tftpboot 0x80000100 nvram.backup
protect off 0x48E40000 +$filesize
erase 0x48E40000 +$filesize
cp.b ${fileaddr} 0x48E40000 ${filesize}
protect on 0x48E40000 +$filesize

Arrancamos desde el squashfs original
setenv bootargs "root=/dev/mtdblock4 mtdparts=sf0:0x20000(U-Boot)ro,0x10000(env1),0x10000(env2),0x110000(Kernel),0xCF0000(RootFileSystem)ro,0x50000@0xE40000(nvram),0xE90000(vacio) console=ttyS0,115200n8,n ethaddr0=00:05:CA:00:00:00"
bootm 0x48040000

Queda al arrancar:

...
...
7 cmdlinepart partitions found on MTD device sf0
partitions[0] = {.name = U-Boot, .offset = 0x00000000,.size = 0x00020000 (128K) }
partitions[1] = {.name = env1, .offset = 0x00020000,.size = 0x00010000 (64K) }
partitions[2] = {.name = env2, .offset = 0x00030000,.size = 0x00010000 (64K) }
partitions[3] = {.name = Kernel, .offset = 0x00040000,.size = 0x00110000 (1088K) }
partitions[4] = {.name = RootFileSystem, .offset = 0x00150000,.size = 0x00cf0000 (13248K) }
partitions[5] = {.name = nvram, .offset = 0x00e40000,.size = 0x00050000 (320K) }
partitions[6] = {.name = vacio, .offset = 0x00e90000,.size = 0x01170000 (17856K) }
Creating 7 MTD partitions on "sf0":
0x00000000-0x00020000 : "U-Boot"
0x00020000-0x00030000 : "env1"
0x00030000-0x00040000 : "env2"
0x00040000-0x00150000 : "Kernel"
0x00150000-0x00e40000 : "RootFileSystem"
0x00e40000-0x00e90000 : "nvram"
0x00e90000-0x02000000 : "vacio"
Creating 1 MTD partitions on "sf0":
0x00000000-0x01000000 : "sf0"
Creating 1 MTD partitions on "sf1":
0x00000000-0x01000000 : "sf1"
...
...

~ # cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00020000 00010000 "U-Boot"
mtd1: 00010000 00010000 "env1"
mtd2: 00010000 00010000 "env2"
mtd3: 00110000 00010000 "Kernel"
mtd4: 00cf0000 00010000 "RootFileSystem"
mtd5: 00050000 00010000 "nvram"
mtd6: 01170000 00010000 "vacio"
mtd7: 01000000 00010000 "sf0"
mtd8: 01000000 00010000 "sf1"

Montamos para copiar squash mtd4 a jffs mtd6
mkdir /var/vacio
mount -t jffs2 /dev/mtdblock6 /var/vacio
mkdir /var/mountemp
mount /dev/mtdblock4 /var/mountemp
cd /var/mountemp
Copiamos todo a /var/vacio usando cp -a para preservar los enlaces simbolicos
Una vez terminado:
sync
reboot
Paramos con @

Ajustamos Uboot para que el filesystem raíz sea nuestro jffs2
setenv bootargs "root=/dev/mtdblock6 rootfstype=jffs2 mtdparts=sf0:0x20000(U-Boot)ro,0x10000(env1),0x10000(env2),0x110000(Kernel),0xCF0000(SqshfsRootFS)ro,0x50000@0xE40000(nvram),0xE90000(jffs2RootFS) console=ttyS0,115200n8,n ethaddr0=00:05:CA:00:00:00"
setenv bootcmd "bootm 0x48040000"
saveenv
reset

Ya lo tengo todo en un filesystem de lectura/escritura.

Me queda ver cuando tenga un ratillo como dejar operativo el USB

 




En línea
Páginas: [1] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Las cookies de este sitio web se usan para personalizar el contenido y los anuncios, ofrecer funciones de redes sociales y analizar el tráfico. Además, compartimos información sobre el uso que haga del sitio web con nuestros partners de redes sociales, publicidad y análisis web, quienes pueden combinarla con otra información que les haya proporcionado o que hayan recopilado a partir del uso que haya hecho de sus servicios
Si continúa navegando consideramos que acepta su uso. OK Más información | Y más
Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines
SMFAds for Free Forums