Hacking la fonera con openwrt o dd-wrt

Hacking la fonera 2100 o 2200 con openwrt or dd-wrt

El tutorial está basado en el tutorial
http://luismg.wikispaces.com/fonera_hack_es hecho por mí también.
Os presento una guía para modificar el router la fonera y poder instalar dd-wrt o openwrt, con lo cual el aparato de 15 euros se convierte en algo mucho más potente donde poder correr nuestras aplicaciones o que haga de router libre.
Al hacer esto rompemos la garantía y de alguna forma el contrato con fon. La verdad es que nos da igual. Hay que aprovechar el hardware, que para eso lo pagamos.

QUÉ NECESITAMOS
Un router principal conectado directamente a internet, router adsl o a un cablemódem o un cableoruter
Putty
Tftpd32
DD-WRT Fonera Firmware archivos root.fs and vmlinux.bin.l7
Openwrt files archivos
openwrt-atheros-2.6-vmlinux.lzma and openwrt-atheros-2.6-root.squashfs

Hay ciertos pasos que tenemos que seguir para conseguir cambiar el firmeware

Hacer un downgrade del firmware original
Habilitar ssh
Instalar redboot
Instalar el firmware dd-wrt
Instalar el firmware openwrt

Downgrade el firmware

Primero necesitamos el firmware con versión 0.7.1 r2 (o anterior). Para hacerlo simplemente encendemos la fonera y mantenemos presionado el botón reset durante los 5 primeros segundos. Repetimos esta operación hasta que el firmware esté en una de las mencionadas versiones.

Habilitar ssh

Primero debemos configurar el tcp/ip de la fonera.
Con la fonera desconectada del router principal, nos conectamos al ssid my_place y entramos en la web 192.168.10.1. Hacemos click en advance y cambiamos dchp por static e introducimos la siguiente configuración:

IP: 192.168.0.10 , cualquier ip válida de nuestra red local
Gateway: 192.168.0.1, la ip de nuestro router principal
Dns: 88.198.165.155

Conectamos ahora la fonera al router principal y esperamos 3 minutos, la reiniciamos 2 veces. Ahora deberemos ver dos ssids, my_place y fon_ap, conectamos via wifi a my_place y ya deberíamos tener habilitado ssh

Username: root
Password: admin

Instalar redboot

Conectamos la fonera al router principal y ejecutamos lo siguiente

cd /tmp
wget http://fonera.info/camicia/openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma
mtd -e vmlinux.bin.l7 write openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma vmlinux.bin.l7
reboot

Después de que haya reiniciado volvemos a conectar y ejecutamos esto:

cd /tmp
wget http://fonera.info/camicia/out.hex
mtd -e “RedBoot config” write out.hex “RedBoot config”
reboot

Ya tenemos instalado redboot

Instalar dd-wrt

Desconectamos la fonera del router principal y la conectamos directamente a nuestro pc. Cambiamos la ip de nuestra ethernet a 192.168.1.166, la máscara a 255.255.255.0 y la puerta de enlace a 192.168.1.254. Conecte la fonera a la electricidad y antes de 10 segundos ejecutamos:

telnet 192.168.1.254 9000

Una vez dentro abrimos el servidor tftp con los ficheros vmlinux.bin.l7 y rootfs dentro y ejecutamos la siguiente secuencia de comandos (ojo que algunos duran mucho, paciencia):

RedBoot> ip_address -l 192.168.1.254/24 -h 192.168.1.166
RedBoot> fis init
RedBoot> load -r -b 0×80041000 root.fs
RedBoot> fis create -b 0×80041000 -f 0xA8030000 -l 0×002C0000 -e 0×00000000 rootfs
RedBoot> load -r -b 0×80041000 vmlinux.bin.l7
RedBoot> fis create -r 0×80041000 -e 0×80041000 -l 0×000E0000 vmlinux.bin.l7
RedBoot> fis create -f 0xA83D0000 -l 0×00010000 -n nvram
RedBoot> reset

Éste es un ejemplo del output

== Executing boot script in 8.850 seconds - enter ^C to abort
RedBoot> No image ‘vmlinux.bin.l7′ found
RedBoot> Can’t execute Linux - invalid entry address
RedBoot> ip_address -l 192.168.1.254/24 -h 192.168.1.166
IP: 192.168.1.254/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.1.166
RedBoot> fis init
About to initialize [format] FLASH image system - continue (y/n)? y
*** Initialize FLASH Image System
… Erase from 0xa87e0000-0xa87f0000: .
… Program from 0×80ff0000-0×81000000 at 0xa87e0000: .
RedBoot> load -r -v -b 0×80041000 root.fs
Using default protocol (TFTP)
-
Raw file loaded 0×80041000-0×802f4fff, assumed entry at 0×80041000
RedBoot> fis create -b 0×80041000 -f 0xA8030000 -l 0×002C0000 -e 0×00000000 root
fs
… Erase from 0xa8030000-0xa82f0000: ……………………………………
..
… Program from 0×80041000-0×80301000 at 0xa8030000: ……………………..
………………
… Erase from 0xa87e0000-0xa87f0000: .
… Program from 0×80ff0000-0×81000000 at 0xa87e0000: .
RedBoot> load -r -v -b 0×80041000 vmlinux.bin.l7
Using default protocol (TFTP)
-
Raw file loaded 0×80041000-0×80100fff, assumed entry at 0×80041000
RedBoot> fis create -r 0×80041000 -e 0×80041000 -l 0×000E0000 vmlinux.bin.l7
… Erase from 0xa82f0000-0xa83d0000: …………..
… Program from 0×80041000-0×80101000 at 0xa82f0000: …………
… Erase from 0xa87e0000-0xa87f0000: .
… Program from 0×80ff0000-0×81000000 at 0xa87e0000: .
RedBoot> fis create -f 0xA83D0000 -l 0×00010000 -n nvram
… Erase from 0xa87e0000-0xa87f0000: .
… Program from 0×80ff0000-0×81000000 at 0xa87e0000: .
RedBoot> reset

Nuestra fonera ya está ejecutando dd-wrt con la dirección ip 192.168.1.1 y con ssid wireless dd-wrt sin clave wireless
Podemos entrar al panel de administración web o por telnet
Name: root
Password: admin

Instalar open-wrt
Desconectamos la fonera del router principal y la conectamos a nuestro pc. Cambiamos la ip de nuestra tarjeta de red a 192.168.1.166, la máscara a 255.255.255.0 y puerta de enlace predeterminada a 192.168.1.254. Conectamos la fonera a la electricidad y antes de 10 segundos ejecutamos:

telnet 192.168.1.254 9000

Abrimos el servidor ftp con los archivos openwrt-atheros-2.6-vmlinux.lzma y openwrt-atheros-2.6-root.squashfs y ejecutamos los siguientes comandos:

RedBoot> ip_address -l 192.168.1.254/24 -h 192.168.1.166
RedBoot> fis init
RedBoot> load -r -b %{FREEMEMLO} openwrt-atheros-2.6-vmlinux.lzma
RedBoot> fis create -e 0×80041000 -r 0×80041000 vmlinux.bin.l7
RedBoot> fis free
# Obtendremos una salida como// “0xA80F0000 .. 0xA87E0000″//
# Reste la cifra alta menos la menor y apuntela como RESULTADO
//# “0xA87E0000 - 0xA80F0000 = 0×6f0000″// RESULT
RedBoot> load -r -b %{FREEMEMLO} openwrt-atheros-2.6-root.squashfs
RedBoot> fis create -l RESULTADO rootfs
RedBoot> reset

Podemos hacer telnet a la fonera y activar el servidor ssh cambiando el password de root con el comando “passwd”

Enjoy!

Escribe un comentario