Buenas a todos los que andáis por el foro.
Soy uno de los cientos (? de usuarios a los que este cacharro no le convence, o le va mal, así que me puse a bucear.
Trabajo con sistemas Linux y soy Técnico de Sistemas, por lo que algo enterado del tema estoy.
Tengo una investigación sobre el Router, de Hardware no está mal, el problema es el firm, por lo que me estoy proponiendo intentar portar OpenWRT o similares a este bicho.
Por ahora tengo ciertas cosas:
PORT STATE SERVICE 23/tcp open telnet 80/tcp open http 443/tcp open https 631/tcp open ipp 992/tcp open telnets 8009/tcp open ajp13 8443/tcp open https-alt
Estos son los puertos abiertos, bien, todos sabemos que podemos conectarnos al router por Telnet.Dentro de telnet, con nuestro usuario admin (o como le llamemos) si entramos en system -> shell ... voilá! tenemos un bonito intérprete de comandos con acceso "root" al sistema.
# cat /proc/cpuinfo Processor : ARMv6-compatible processor rev 4 (v6b) BogoMIPS : 399.76 Features : swp half thumb fastmult vfp edsp java CPU implementer : 0x41 CPU architecture: 6TEJ CPU variant : 0x0 CPU part : 0xb76 CPU revision : 4 Cache type : write-back Cache clean : cp15 c7 ops Cache lockdown : format C Cache format : Harvard I size : 32768 I assoc : 4 I line length : 32 I sets : 256 D size : 16384 D assoc : 4 D line length : 32 D sets : 128 Hardware : puma5 Revision : 0001 Serial : 0000000000000000
Y tenemos un ARMv6 que puede ejecutar Applets Java, entre otras cosas (como soporte de Swap, algo que me parece extraño en un router)Un pequeño problema es que no tiene ni vi, ni vim, ni nano... no he encontrado un editor de texto. Por ahora estoy investigando, por lo que no me voy a poner a compilar ejecutables para ARMv6.Por lo que veo, el SO es una versión modificada de OpenRG (jungo.com/products/openrg-uniform-gatewa…-middleware/) Tienen un SDK, pero a no ser que alguien se lo "robe" a R, no tenemos acceso a élLos comandos disponibles, son los típicos de Busybox (si alguno tiene Android), y este es el contenido de /bin
# cd /bin # ls FwUpstreamDocsis2_D.bin gzip rmdir FwUpstreamDocsis2_I.bin hal_cmd_mbox rmmod FwUpstreamDocsis3_D.bin hal_event_mbox route FwUpstreamDocsis3_I.bin hal_tuner_mgr runall [ iccctl sched bbusm ifconfig sfdisk bpi_auth init sh bpi_sa_map insmod sleep bpi_tek jdd smbclient busybox kill smbcp cat killall smbd chgrp ledcfg snmp_agent_cm chmod ledd snmpcmd chown ln sort cli logger stty cm_status losetup sw_dl cp ls swapoff cut lsmod swapon dbridge_init mkdir sync dd mkdosfs sysctl df mknod tar disktype mkntfs test dispatcher mkswap test_netutils dmg_provisioning mlx testmode dms_smm mount tftp docsis_init_once msh ti_route_fixup docsis_mac_driver mv ti_tftp docsis_mac_manager nc ti_todc dosfsck nmbd ti_udhcpc downstream_manager ntfs-3g top echo ntfsfix touch env nvread tr eventmgr_cm openrg true expr pcd_app umount false ping upstream_manager free ps uptime get_docsis_info qos_dsx_sm usbApp gptimer regs wget grep renice zcat gunzip rm
Los supuestos sistemas de archivos
# df -h Filesystem Size Used Available Use% Mounted on /dev/mtdblock0 2.9M 2.9M 0 100% /mnt/cramfs modfs 132.0k 132.0k 0 100% /mnt/modfs /dev/mtdblock2 320.0k 224.0k 96.0k 70% /mnt/jffs2 modfs 132.0k 132.0k 0 100% /mnt/modfs
Fuera de la shell, he encontrado lo siguiente:
firmware_update> help firmware_update Command Category firmware_update - Firmware update commands start Start remote upgrade cancel Kill running remote upgrade exit Exit sub menu help Show help for commands within this menu Returned 0 firmware_update> start Usage: start -u [-c] [-i] -c: Check only - don't really flash -i: Ignore version number when deciding whether to burn the image Returned -1 firmware_update>
Por lo que supuestamente si le das una url con la actualización, él se actualiza "solito"
flash> help flash Command Category flash - Flash and loader related commands commit Save configuration to flash erase Erase a given section in the flash load Load and burn image boot Boot the system bset Configure bootloader layout Print the flash layout and content dump Dump the flash content cramfs_location Print the cramfs (mainfs, actually) location active_image_name Print the name of the active image lock Lock mtd region unlock Unlock mtd region exit Exit sub menu help Show help for commands within this menu Returned 0 flash>
flash> dump 00000000: ea 00 00 12 e5 9f f0 14 e5 9f f0 14 e5 9f f0 14 |................| 00000010: e5 9f f0 14 e5 9f f0 14 e5 9f f0 14 e5 9f f0 14 |................| 00000020: 81 fc 01 00 81 fc 01 60 81 fc 01 c0 81 fc 02 20 |.......`....... | 00000030: 81 fc 02 80 81 fc 02 e0 81 fc 03 40 12 34 56 78 |...........@.4Vx| 00000040: 81 fc 00 00 81 fc 00 00 81 fd d5 44 81 ff 82 a4 |...........D....| 00000050: e1 0f 00 00 e3 c0 00 1f e3 80 00 d3 e1 29 f0 00 |.............)..| 00000060: eb 00 00 18 e2 4f 00 6c e5 1f 10 30 e1 50 00 01 |.....O.l...0.P..| 00000070: 0a 00 00 07 e5 1f 20 38 e5 1f 30 38 e0 43 20 02 |...... 8..08.C .| 00000080: e0 80 20 02 e8 b0 07 f8 e8 a1 07 f8 e1 50 00 02 |.. ..........P..| 00000090: da ff ff fb e5 1f 00 5c e2 40 08 03 e2 40 00 80 |.......\.@...@..| 000000a0: e2 40 d0 0c e5 1f 00 64 e5 1f 10 64 e3 a0 20 00 |.@.....d...d.. .| 000000b0: e5 80 20 00 e2 80 00 04 e1 50 00 01 1a ff ff fb |.. ......P......| 000000c0: e5 1f f0 04 81 fc 30 d8 e3 a0 00 00 ee 07 0f 17 |......0.........| 000000d0: ee 08 0f 17 ee 11 0f 10 e3 c0 0c 23 e3 c0 00 07 |...........#....| 000000e0: e3 80 00 02 e3 80 0a 01 ee 01 0f 10 e1 a0 70 0e |..............p.| 000000f0: eb 00 05 5b e1 a0 e0 07 e1 a0 f0 0e 00 00 00 00 |...[............|
Se puede bloquear y desbloquear el MTD
flash> active_image_name Image downloaded from: https://213.60.177.100:550/firmwares/openrg_rcable_5_3_2_1_12_1_17_1_2.rms?u=KHdpZmltZWRpYS1SIGRhdGEKICA
Y esa es la url de donde sale el Firm de R, pero da un error de SSL entrar en esa Web.Creo que habría que empezar por ser capaces de descargar ese archivo, y de ahí "empezar a liarla"
Y... sigo investigando. Si alguien tiene alguna idea, yo no tengo problema en probar, si se jode que lo reflasheen, que para eso se les paga
Añado el Layout del Flash, que tiene dos enlaces de Firm
flash> layout Flash layout: Section 00 Type BOOTCONF Range 0x00020000-0x00030000 MaxSize 0x00010000 No more information. Section 01 Type BOOTCONF Range 0x00030000-0x00040000 MaxSize 0x00010000 No more information. Section 02 Type IMAGE Range 0x00040000-0x007D0000 MaxSize 0x0078FF6C Size 0x007115D2 Name 'Image downloaded from: https://213.60.177.100:550/firmwares/openrg_rcable_5_3_2_1_12_1_17.rms?u=KHdpZmltZWRpYS1SIGRhdGEKICAod2J' Checksum 0x38DB4C46 Counter 0x00000007 Start Offset 0x00000000 Section 03 Type IMAGE Range 0x007D0000-0x00F60000 MaxSize 0x0078FF6C Size 0x0071141D Name 'Image downloaded from: https://213.60.177.100:550/firmwares/openrg_rcable_5_3_2_1_12_1_17_1_2.rms?u=KHdpZmltZWRpYS1SIGRhdGEKICA' Checksum 0x38D723F0 Counter 0x00000008 Start Offset 0x00000000 Section 04 Type LOG Range 0x00F60000-0x00F80000 MaxSize 0x0001FF6C Size 0x00002603 Name 'crash_log' Checksum 0x0013357B Counter 0x00000001 Start Offset 0x00000000 Section 05 Type CONF Range 0x00F80000-0x00F90000 MaxSize 0x0000FF6C Size 0x00007FC4 Name 'rg_conf' Checksum 0x003F19C2 Counter 0x0000D049 Start Offset 0x00000000 Section 06 Type CONF Range 0x00F90000-0x00FA0000 MaxSize 0x0000FF6C Size 0x00008187 Name 'rg_conf' Checksum 0x003FE002 Counter 0x0000D069 Start Offset 0x00000000 Section 07 Type FACTORY Range 0x00FA0000-0x00FB0000 MaxSize 0x0000FF6C Size 0x00000239 Name 'rg_factory' Checksum 0x00009FA7 Counter 0x00000002 Start Offset 0x00000000 Total 8 sections found.
Debido a que supongo que es ilegal que suba los archivos del MTD (que se supone que es la memoria interna del Hitron, explico como hacerlo:
Nos conectamos a la shell conectamos un pen en FAT al puerto USB del router, lo montamos y dumpeamos
mkdir /mnt/pen
mount /dev/sda1 /mnt/pen
dd if=/dev/mtdr0 of=/mnt/pen/mtdr0
dd if=/dev/mtdr1 of=/mnt/pen/mtdr1
dd if=/dev/mtdr2 of=/mnt/pen/mtdr2
Después, veo que son estos tipos de archivos, pero no los doy montado:
[christian@HelionArch Hitron]$ file MTDR0 MTDR0: Linux Compressed ROM File System data, little endian size 6094848 version #2 sorted_dirs CRC 0x3cf41c9d, edition 0, 755 blocks, 604 files [christian@HelionArch Hitron]$ file MTDR1 MTDR1: TeX font metric data (\374\001) [christian@HelionArch Hitron]$ file MTDR2 MTDR2: data
Sobre todo lo que interesa es el MTDR0, que es donde está la ROM