Hacking la fonera con openwrt o dd-wrt

Abril 21, 2008

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!


La fonera 2200 con openwrt

Abril 6, 2008


this

Cargado originalmente por luismg

Esta última semana ha sido MUY productiva, he conseguido instalar

dd-wrt en una fonera 2100
dd-wrt en una fonera 2200
openwrt en una fonera 2200

Todo con ethernet, y las foneras actualizadas al último firmare.
Haré un post enorme de cómo hacer cada una. No es muy complicado, pero requiere leer muchos textos incomprensibles, así que haré un tutorial.


Flickr

Abril 6, 2008

This is a test post from flickr, a fancy photo sharing thing.