La Fonera
Da quasi 24 ore sono un felice possessore della Fonera.
Chi non fosse a conoscenza del Movimento Fon può leggerne qui i dettagli:
http://it.fon.com/
http://blog.fon.com/it/
In 2 parole i possessori della Fonera condividono la loro connessione Internet con gli altri Foneros, divisi in Linus (chi condivide la propria connessione e può accedere liberamente a qualunque rete FON) e Bill (chi non condivide ma sfrutta solo le connessioni dei Linus).
Potete vedere la posizione di tutte le Fonere nel mondo da qui.

Arriviamo al punto:
La Fonera è un access point con software basato su OpenWRT ma con firmware blindato dalla FON.
Grazie alla sua interfaccia web è possibile configurare molti parametri, ma non si può comunque avere pieno controllo del device.
Una grossa mancanza, soprattutto per noi italiani, è l'impossibilità di gestire i log dei Foneros che usano il nostro punto d'accesso alla rete FON (potete leggere Fon completa la mutazione di Marco Calamari su Punto Informatico).

Ma vediamo cosa invece si può fare.
Un firmware, per poter essere installato, deve essere firmato digitalmente da FON. Quindi sembra impossibile poterlo sostituire.
Nel momento in cui attaccate la Fonera alla vostra rete essa otterrà un IP dal vostro server DHCP (se presente) e si collegherà a download.fon.com per ottenere l'ultimo firmware disponibile.
Come standard l'accesso ssh è negato, ma dei colleghi smanettoni sono riusciti in vari modi ad ottenere un accesso.
Inizialmente solo aprendo l'AP e collegando una porta seriale (1 - 2), con gli ultimi sviluppi basta uno script in perl per ottenere il controllo della Fonera.

Iniziamo.
La cosa fondamentale è non attaccare subito la Fonera ad internet, in quel caso scaricherebbe immediatamente il nuovo firmware 0.7.1-2 del 3 Gennaio 2007 ed ogni successiva operazione potrebbe essere compromessa.
Dico potrebbe perché l'utente BiGAlex nel post di Andrea Beggi sostiene che resettando la Fonera (premendo per 30 secondi l'apposito bottone) e poi tenendola senza alimentazione (per qualche ora) essa torna al firmware originale.

Attaccate invece l'alimentazione al AP e connettetevi alla rete MyPlace utilizzando il numero di serie come password WPA. Otterrete l'indirizzo IP 192.168.10.2. Col browser potete aprire l'url 192.168.10.1 per raggiungere l'interfaccia web di controllo della Fonera. Da qui potete controllare la versione del firmware (nel mio caso 0.7.1-1).

Adesso utilizzate invece la connessione via cavo ethernet tra il vostro pc e la Fonera. Dato che la sua impostazione base è quella di cercare di ottenere un IP da un server DHCP, non trovandolo si imposterà con l'IP 169.254.255.1. Voi assegnate alla vostra interfaccia di rete 169.254.255.2 e sarete in grado di dialogare con la Fonera (provate con un ping).

Non resta quindi che scaricare lo script in perl fondue.pl per aprire la porta 22 e lanciare il demone ssh. Il comando è

$ echo -e '/usr/sbin/iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT\n/etc/init.d/dropbear' | perl fondue.pl 169.254.255.1 admin

Nota bene
Lo script richiede il modulo Perl WWW::Mechanize, installabile con

perl -MCPAN -e 'install WWW::Mechanize'
Attenzione Ho avuto dei problemi con lo script in perl, mi veniva restituito l'errore
Invalid # of args for overridden credentials() at fondue.pl line 25
Per correggerlo è stato sufficiente cambiare (alla riga 25, appunto)
# admin password $browser->credentials($ip,"admin",$password);

in

# admin password $browser->credentials("admin",$password);

Ed ecco il risultato

$ echo -e '/usr/sbin/iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT\n/etc/init.d/dropbear' | perl fondue.pl 169.254.255.1 admin By your command... Injecting command »/usr/sbin/iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT«... Injecting command »/etc/init.d/dropbear«... Code has been injected.

Non resta che effettuare il login, la password è admin

$ ssh root@169.254.255.1 The authenticity of host '169.254.255.1 (169.254.255.1)' can't be established. RSA key fingerprint is b5:ea:84:a9:9e:b6:7c:c9:93:55:15:f4:ba:8e:a9:f4. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '169.254.255.1' (RSA) to the list of known hosts. root@169.254.255.1's password: BusyBox v1.1.3 (2006.11.21-19:49+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands. _______ _______ _______ | ____|| || _ | | ____|| - || | | | | | |_______||__| |__| |___| Fonera Firmware (Version 0.7.1 rev 1) ------------- * * Based on OpenWrt - http://openwrt.org * Powered by FON - http://www.fon.com --------------------------------------------------- root@OpenWrt:~#

Adesso che abbiamo ottenuto l'accesso ssh dobbiamo far si che sia stabile.
Quindi rinominiamo il file di avvio del demone dropbear in modo che all'avvio venga eseguito

mv /etc/init.d/dropbear /etc/init.d/S50dropbear
e modifichiamo il firewall aprendo di default le connessioni in ingresso sulla porta 22. Per farlo utilizziamo vi, presente nel router, e modifichiamo il file /etc/firewall.user, in particolare le righe
# iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 22 -j ACCEPT # iptables -A input_rule -i $WAN -p tcp --dport 22 -j ACCEPT

devono essere scommentate

iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 22 -j ACCEPT iptables -A input_rule -i $WAN -p tcp --dport 22 -j ACCEPT

L'ultimo passo prima di poter attaccare la Fonera ad internet ed usarla è impedire che la FON possa fargli eseguire del suo codice.
Quindi modifichiamo il file /bin/thinclient commentando l'ultima riga

### Don't execute code from FON # . /tmp/.thinclient.sh

e già che ci siamo cambiamo anche la password di root, altrimenti chiunque può accedervi.

Questo è quanto, la durata dell'intero processo si aggira sui 10 minuti, se volete potete leggere le guide da cui ho preso spunto, di Stefans Datenbruch e Zarrelli.

Happy Hacking...

blog comments powered by Disqus