Publicado

mrubiodev.blog / artículo

Instalación de dd-wrt en la Fonera 2100 por hardware

FECHA2015/08/28
CATEGORIAREDES
TAGS#dd-wrt #router #firmware #red #ingenieria-inversa #rs232 #telecom
TIEMPO_LECTURA4 MIN

Introducción

En este tutorial vamos a flashear el firmware de un router Fon 2100. Existen diferentes versiones para realizar esta tarea, usando un exploit activo en firmware 0.7.2 r1 para poder abrir el bootloader (RedBoot), o el método que vamos a usar, que consiste en aprovechar el puerto serie no eliminado de la placa con el fin de realizar el flasheo de este mismo. Mediante el puerto serie tendremos ya la posibilidad de controlar el router sin activar el SSH y será sencillo entrar en el RedBoot. Los pasos a realizar serán los siguientes, por este orden:

  • Descargaremos los programas que vamos a usar (tftpd32, HyperTerminal y ficheros del firmware).
  • Resetearemos la fonera a valores de fábrica.
  • Desmontaremos la fonera y conectaremos nuestro adaptador serie.
  • Comprobaremos la conexión de puerto serie con la fonera y entraremos en el RedBoot.
  • Configuraremos el adaptador de red del PC con la IP y máscara de red correspondiente.
  • Montaremos el servidor tftpd en el PC donde configuramos la IP y compartiremos el fichero de firmware.
  • Mediante el hiperterminal comenzaremos la descarga, instalación y configuración del nuevo firmware.
  • Resetearemos y comprobaremos el funcionamiento.

Para esto requeriremos descargar los siguientes programas: hypertrm: (Hyperterminal) https://mega.nz/#!IsoGnTSR!U4aHCgDm1YvIx4O9W53X0oeOewvz7oliGHhTM3T0P-Y _Tftpd32: _(Servidor Tftp) http://tftpd32.jounin.net/tftpd32_download.html https://mega.nz/#!dwBHkLDS!S0Bbu_kVhek26MdIqWRPy6Tpe7BJTn_KxgTyqFzSTa0 Firmware DD-WRT: http://www.dd-wrt.com/site/support/router-database Firmware usado en el vídeo: https://mega.nz/#!IwBBgaAK!lP_LP0XwhI6nk6h0UpILY7zTkkx7tEuyq60PvDDDwfo

Descarga de lo que necesitaremos

Firmware opensource: http://www.dd-wrt.com/ Aquí en la web buscaremos el modelo de nuestro router fon y descargaremos el fichero 01.DD-WRT en tu Fonera02.DD-WRT en tu Fonera03.DD-WRT en tu Fonera

Conectando por puerto serie a la Fonera

Conectamos nuestro convertidor USB a serie RS232 TTL (en este caso usamos un Arduino sin microcontrolador para esta tarea). Sabiendo que los pines en nuestra fonera están colocados de la siguiente manera. 04.DD-WRT PINOUT05.DD-WRT Conectado Tras realizar el conexionado a través del programa HyperTerminal, realizaremos una escucha del puerto serie conectándonos a la fonera. Para esto abriremos el programa y configuraremos la conexión correspondiente de manera correcta. 05.DD-WRT Hyperterminal

Preparando servidor Tftpd32

Conectaremos la fonera por cable Ethernet a nuestro ordenador y realizaremos los siguientes pasos, sin desconectar el adaptador serie RS232 TTL. Configuramos nuestro adaptador de red con la siguiente dirección IP y máscara de subred (se podrían usar otras, pero entonces cambiarían un par de comandos que usaremos más tarde). 06.DD-WRT IP.Subred Ahora abrimos tftpd32 (ejecutar como administrador); con este programa haremos un servidor TFTP donde alojaremos los ficheros a transferir a la fonera, que son los descargados anteriormente de la web de DD-WRT y tienen los ficheros del firmware. 07.DD-WRT tftpd32

Instalación y configuración del firmware.

Tras comprobar que tenemos la conexión correctamente con la fonera, procederemos a entrar en el bootloader. Para esto, nada más arrancar el router, presionaremos en nuestro HyperTerminal las teclas CTRL + C, parando el HyperTerminal en una línea que pondrá RedBoot>. En este momento tenemos al bootloader esperando a que le demos los comandos a ejecutar. 08.DD-WRT RedBoot Lo marcado en rojo es lo que nosotros introduciremos o lo que nosotros haremos: RedBoot> ip_address -l 192.168.1.254/24 -h 192.168.1.166 RedBoot> fis init RedBoot>About to initialize [format] FLASH image system - continue (y/n)? Y *** Initialize FLASH Image System … Erase from 0xa87e0000-0xa87f0000: . … Program from 0x80ff0000-0x81000000 at 0xa87e0000: . RedBoot> load -r -b 0x80041000 linux.bin RedBoot> fis create linux (tardará unos cuantos minutos veremos como la pantalla va llenandose de puntos) RedBoot> fconfig RedBoot> RedBoot> Run script at boot: trueBoot script: RedBoot> Enter script, terminate with empty line RedBoot> >> fis load -l linux RedBoot> >> exec RedBoot> >>[enter] RedBoot> Boot script timeout (1000ms resolution): 10[enter] RedBoot> Use BOOTP for network configuration: false[enter] RedBoot> Gateway IP address: [enter] RedBoot> Local IP address: 192.168.1.254[enter] RedBoot> Local IP address mask: 255.255.255.0[enter] RedBoot> Default server IP address: 192.168.1.166[enter] RedBoot> Console baud rate: 9600[enter] RedBoot> GDB connection port: 9000[enter] RedBoot> Force console for special debug messages: false[enter] RedBoot> Network debug at boot time: false[enter] RedBoot> Update RedBoot non-volatile configuration - continue (y/n)? Y RedBoot> … Erase from 0xa87e0000-0xa87f0000: . RedBoot> … Program from 0x80ff0000-0x81000000 at 0xa87e0000: . RedBoot> reset 10.DD-WRT DD-WRT Tras reiniciar, ya tendremos instalado nuestro DD-WRT en nuestra fonera, lista para configurar y darle un nuevo uso. Para esto entraremos desde un explorador de Internet en la dirección 192.168.1.1 (puerta de enlace), así veremos la nueva interfaz y las nuevas características que nos ofrece DD-WRT. Vídeo del procedimiento: https://www.youtube.com/watch?v=VpjAj_Czd5A