BackBox Linux Forums

BackBox Linux => Tool Requests => Topic started by: Emilio on January 02, 2011, 07:25:42 PM



Title: WiFi geolocation tool (wilocate)
Post by: Emilio on January 02, 2011, 07:25:42 PM
Buondì :D
ho buttato giù un piccolo tool che potrebbe essere utile per la distribuzione, o anche il semplice smanettamento ad utilizzo personale. Il programma raccoglie gli AP wireless visibili dalla nostra macchina, e quera le api di google per conoscerne la localizzazione. Ha uno scarto di circa 200 metri, la localizzazione è incredibilmente buona e senza bisogno di GPS vari. Mi sono ispirato a questo paper http://www.exploit-db.com/papers/15881/ (http://www.exploit-db.com/papers/15881/) automatizzando il recupero dei mac address.

E' per console, e sono poche decine di linee di python. Quello che volevo era un tool usabile 'a mano', però si possono aggiungere migliorie per integrarlo con altri programmi (possibilità di specificare liste di mac, integrazione con programmi di sniffing wifi per fare wardriving, e altro).

E' possibile anche indicare un mac address a mano (evitando che recuperi automaticamente gli indirizzi degli AP vicini). Se la localizzazione va a buon fine, viene generato l'url per vedere la zona su google maps.

Qua uno screenshot:
(http://img156.imageshack.us/img156/8827/schermata1ag.png)

Potete scaricarlo da qua http://code.google.com/p/wilocate (http://code.google.com/p/wilocate) o più velocemente con il comando

Code:
svn checkout http://wilocate.googlecode.com/svn/trunk/ wilocate
.

Il codice è in beta, brutto cattivo e scritto in un giorno. Si accettano migliorie e opinioni, anche nel caso non sia preso in considerazione per essere integrato in BackBox. Ahn, auguri di buon anno :D


Title: Re: WiFi geolocation tool (wilocate)
Post by: raffaele on January 02, 2011, 10:17:53 PM
ciao, molto interessante... avevo gia letto qualcosa sulle API di google per la geolocalizzazione ma non avevo approfondito.

potresti migliorare lo script introducendo come prima cosa un l'help da richiamare magari con il classico "./wilocate.py --help" e formattare un po meglio l'output.

inoltre guarda un po qui: http://thunar.xfce.org/plugins.html#thunar-uca

credo che sia il miglior modo per includerlo in backbox ;)


Title: Re: WiFi geolocation tool (wilocate)
Post by: Emilio on January 02, 2011, 11:51:33 PM
Ciao raffaele
ho scritto l'--help dove spiego anche i simboli della "progress bar" (da rivedere e migliorare).

Non ho capito il riferimento ai menù di thunar,  lo vedi bene come voce del menù del file manager? Non so quanto ci stia bene.. Non che ce lo veda neanche pacchetto singolo, è uno strumento abbastanza fine a se stesso.. non avete una sorta di pacchetto tipo "wireless-tool" dove metterlo? =) Comunque la mia era una segnalazione, vedete voi se e come può essere utile a Back Box.

Una applicazione reale nell'ambito della sicurezza (trovando le giuste motivazioni per farlo =) potrebbe essere una integrazione con kismet o airodump, che tiene un tracciato delle coordinate attraversate durante il wardriving, da dare poi in pasto a google maps o simili stile GPS.


Title: Re: WiFi geolocation tool (wilocate)
Post by: Emilio on January 03, 2011, 12:09:32 AM
Lol non ci vuole niente a disegnare una mappa statica date un pò di coordinate =) Appena ho tempo mi penso qualcosa

http://maps.google.com/maps/api/staticmap?size=480x480600&path=color:0x0000ff|weight:5|40.737102,-73.990318|40.749825,-73.987963|40.752946,-73.987384|40.755823,-73.986397&sensor=true (http://maps.google.com/maps/api/staticmap?size=480x480600&path=color:0x0000ff|weight:5|40.737102,-73.990318|40.749825,-73.987963|40.752946,-73.987384|40.755823,-73.986397&sensor=true)


Title: Re: WiFi geolocation tool (wilocate)
Post by: raffaele on January 03, 2011, 01:39:21 AM
si in effetti bisogna capire quale scopo deve avere il tuo script... ad esempio per quanto riguarda thunar si potrebbe creare una nuova cartella, selezionarla col tasto destro e tramite l'azione personalizzata salvare al suo interno una mappa con i vari ap o piu semplicemente se si vuole geolocalizzare una lista di ap precedentemente salvati, si potrebbe selezionare il file con i vari indirizzi mac e sempre col tasto destro darlo in pasto al tuo script. come vedi le soluzioni sono infinite, comunque resta il fatto che un pacchetto backbox con una serie di strumenti per la geolocalizzazione sarebbe davvero molto utile.


Title: Re: WiFi geolocation tool (wilocate)
Post by: ghostdog on January 03, 2011, 06:06:45 PM
molto interessante come progetto, conosco qualcosa di simile, che magari intgrando il progetto di emilio con questo che ho trovato su google code, si riesce in qualche modo ad ottenere un ottima application!

LINK:  http://code.google.com/p/wlan-pos/downloads/detail?name=wlanpos-locdata-20100409.tbz2

LINK to JPG:  http://code.google.com/p/wlan-pos/downloads/detail?name=ap-detail.jpg


Title: Re: WiFi geolocation tool (wilocate)
Post by: clshack on January 04, 2011, 12:39:27 PM
da me sbaglia di umm 30 km cazzolino ;)

Comunque ottima idea :D


Title: Re: WiFi geolocation tool (wilocate)
Post by: raffaele on January 04, 2011, 12:51:59 PM
in effetti non ho ben capito una cosa... se la geolocalizzazione si basa sulla posizione dell'ap nell'istante in cui passava la google car, anche se "indovina" la città, come fa a dirmi che si trova in altri posti?!


Title: Re: WiFi geolocation tool (wilocate)
Post by: Emilio on January 04, 2011, 09:12:59 PM
In che senso "come fa a dirmi che si trova in altri posti"? :| Nel senso di "come fa a sbagliare"? Non ne ho idea, errori nelle catture di google?. Cmq potete verificare con il json che ritorna la query (fatelo più volte, ogni tanto restituisce valori a casaccio).

Code:
curl http://www.google.com/loc/json -H "Pragma: no-cache" -H "Cache-control: no-cache" -d "{ \"version\": \"1.1.0\", \"host\":
\"maps.google.com\", \"request_address\": true, \"address_language\":
\"en_GB\", \"wifi_towers\": [ { \"mac_address\": \"QUA_IL_MAC_ADDRESS\",
\"signal_strength\": 8, \"age\": 0 } ] }"

Comunque ho trovato il modo di parsare file pcap per estrarre la lista dei mac, non penso ci voglia molto poi a generare un POST che restituisce il percorso su google map ben disegnato e magari con qualche info sugli ap incontrati. Sarebbe comodo, uno va in giro con il portatilino nello zaino (non connesso) e al rientro a casa ricostriusce il  percorso fatto, con tanto di info su AP aperti/protetti.


Title: Re: WiFi geolocation tool (wilocate)
Post by: drego85 on January 07, 2011, 08:34:40 AM
Eh poi se non sbaglio ormai le Google Car non identificano più le reti WiFi!



Title: Re: WiFi geolocation tool (wilocate)
Post by: Emilio on January 07, 2011, 04:13:02 PM
Dubito, tutto il sistema di google di geolocalizzazione via browser si basa su questo giochino. Magari ti riferisci allo scandalo dei pacchetti sniffati in germania, ma lì si erano spinti un po troppo oltre, per geolocalizzare il MAC gli basta sniffare innocui beacons.

Comunque ora il programmino, fornisce una google maps con sopra segnata la propria posizione e quelle delle reti attorno : D Basta avviarlo, e collegarsi a http://localhost:8000 per vedere se stessi localizzati e le wifi attorno. L'ho appena implementata, ci sono molte stronzate da debugging, è tutto ancora molto sporco ma la base funziona. Chi vuole provarlo usi l'svn qui sopra.


Title: Re: WiFi geolocation tool (wilocate)
Post by: drego85 on January 07, 2011, 08:53:40 PM
Dubito, tutto il sistema di google di geolocalizzazione via browser si basa su questo giochino. Magari ti riferisci allo scandalo dei pacchetti sniffati in germania, ma lì si erano spinti un po troppo oltre, per geolocalizzare il MAC gli basta sniffare innocui beacons.

Comunque ora il programmino, fornisce una google maps con sopra segnata la propria posizione e quelle delle reti attorno : D Basta avviarlo, e collegarsi a http://localhost:8000 per vedere se stessi localizzati e le wifi attorno. L'ho appena implementata, ci sono molte stronzate da debugging, è tutto ancora molto sporco ma la base funziona. Chi vuole provarlo usi l'svn qui sopra.
Pensavo avessero smesso di scandagliare le reti WiFi dopo lo scandalo Tedesco...invece continuano! :)

Bhe cmq buono sviluppo, conto di provare il sw entro la prossima settimana.

Andrea


Title: Re: WiFi geolocation tool (wilocate)
Post by: drego85 on January 08, 2011, 10:49:00 AM
Scusami ma in che formato deve essere espresso il MAC Addres?

Ho provato a digitare:
Quote
andrea@andrea-desktop:~/wilocate$ ./wilocate.py 00:22:75:22:CB:08
+ WiLocate      Version 0.1
^C
! Received keyboard interrupt, quitting threads.

andrea@andrea-desktop:~/wilocate$ ./wilocate.py 00-22-75-22-CB-08
+ WiLocate      Version 0.1
^C
! Received keyboard interrupt, quitting threads.

andrea@andrea-desktop:~/wilocate$ ./wilocate.py 00227522CB08
+ WiLocate      Version 0.1

Ma il software non da cenni di vita...

Grazie


Title: Re: WiFi geolocation tool (wilocate)
Post by: Emilio on January 08, 2011, 06:24:18 PM
Sorry, mi sono dedicato più alla geolocazione 'on the fly' che non ho continuato l'implementazione della ricerca di un singolo mac address. Ho fixato e committato, ora dovrebbe funzionare.

E' in heavy developement, la console non mostrerà più i dati quindi ora viene stampato solo il json per il debug, per geolocalizzare l'IP collegati a http://localhost:8000 e vedrai il marker su google maps (se tutto va bene) : D Comunque in questi giorni è molto instabile, è possibilissimo non funzioni o non faccia al meglio il suo lavoro.

Incollo comunque l'output.
Code:

$ ./wilocate.py 00:22:75:22:CB:08
+ WiLocate              Version 0.1
Serving HTTP on 0.0.0.0 port 8000 ...
+

00:22:75:22:CB:08 (accuracy: 73.0) Slovakia (SK) Bratislavský kraj 85105 Petržalka Bratislava - Petržalka Strečnianska 10
1294507147 position: http://maps.google.it/maps?q=48.1049838,17.1039989
{1294507147: {'APs': {'00:22:75:22:CB:08': {u'latitude': 48.104983799999999, u'address': {u'city': u'Petr\u017ealka', u'street_number': u'10', u'country': u'Slovakia', u'region': u'Bratislavsk\xfd kraj', u'county': u'Bratislava - Petr\u017ealka', u'street': u'Stre\u010dnianska', u'postal_code': u'85105', u'country_code': u'SK'}, u'accuracy': 73.0, u'longitude': 17.103998900000001, 'mac_address': '00:22:75:22:CB:08'}}, 'position': [48.104983799999999, 17.103998900000001]}}


Title: Re: WiFi geolocation tool (wilocate)
Post by: drego85 on January 11, 2011, 05:14:02 PM
Ottimo! Se ti ricordi nel --help scrivi il formato del MAC specificando il carattere di seperazione.

Andrea


Title: Re: WiFi geolocation tool (wilocate)
Post by: Diavolo_Rosso on January 12, 2011, 05:12:58 PM
ma il separatore "standard" per i MAC ADDRESS non sono i due punti?

Che io sappia, ogni altro tipo di scrittura e teoricamente errato


Title: Re: WiFi geolocation tool (wilocate)
Post by: Emilio on January 12, 2011, 06:04:57 PM
Quello che vedo più spesso sono i due punti, ma non penso ci sia uno standard, anche perchè i separatori non sono parte dell'indirizzo, vengono messi solo per essere più human readable, quindi ogni os/applicazione può fare un po come gli pare. Io personalmente preferisco i due punti : D


Title: Re: WiFi geolocation tool (wilocate)
Post by: Diavolo_Rosso on January 12, 2011, 06:24:38 PM
Effettivamente....mi hanno suggerito sbagliato. Mi sa che devo iniziare a cambiare fonti d'informazione :P


Title: Re: WiFi geolocation tool (wilocate)
Post by: evilsocket on January 12, 2011, 06:30:25 PM
in ogni caso se usassi un espressione regolare potresti accettare un mac address con qualsiasi separatore e riformattarlo appropriatamente, qualcosa del tipo :

Code:
/[^a-z0-9]?([a-f0-9]{2})[^a-z0-9]?/


Title: Re: WiFi geolocation tool (wilocate)
Post by: Emilio on January 12, 2011, 06:35:48 PM
Certo, uso già una regexp per testare il MAC. Non metto una regexp universale perchè dopo devo sostiuire i due punti con '-' prima di fare la query a google, per sostituire altri separatori dovrei aggiungere codice non vitale, e già ho poco tempo per scrivere e testare il programma vero e proprio : D Lascio all'utente la fatica : P di mettere il giusto separatore


Title: Re: WiFi geolocation tool (wilocate)
Post by: drego85 on January 16, 2011, 04:45:18 PM
Certo, uso già una regexp per testare il MAC. Non metto una regexp universale perchè dopo devo sostiuire i due punti con '-' prima di fare la query a google, per sostituire altri separatori dovrei aggiungere codice non vitale, e già ho poco tempo per scrivere e testare il programma vero e proprio : D Lascio all'utente la fatica : P di mettere il giusto separatore

Perfetto, quindi battezziamo i ":" come separatore corretto per questo tool? Nel caso ripropongo il consiglio di inserire un esempio nel help...

Andrea


Title: Re: WiFi geolocation tool (wilocate)
Post by: Emilio on February 12, 2011, 10:21:44 PM
Riprendo in mano il post : D
per dirvi che Wilocate è cresciuto, ed è diventato una sorta di kismet (o netstumbler, per chi usa windows) geolocalizzato, capace di mostrare (con una ottima aprossimazione) la vostra posizione e quella dei wifi attorno a voi su Google Map. C'è poco da dire, a parte che mi farebbe piacere che lo usaste per segnalarmi bug e opinioni =) .

Il sito è sempre http://code.google.com/p/wilocate/ (http://code.google.com/p/wilocate/), dove trovate la procedura per installare e avviare, e vi allego uno screenshot della gui per incuriosirvi.

(http://i51.tinypic.com/2aabpth.jpg)

Una volta cresciuto, può essere un ottimo programma per la sicurezza delle installazioni wifi fisiche e per il wardriving. Have fun : D


Title: Re: WiFi geolocation tool (wilocate)
Post by: raffaele on February 13, 2011, 12:24:18 PM
Che dire... bel lavoro. Credo che si possa tranquillamente includere nel nostro repository. Quando sei online contattami in privato cosi ne parliamo ;)


Title: Re: WiFi geolocation tool (wilocate)
Post by: Emilio on February 13, 2011, 12:55:20 PM
Ne sarei onorato : D
comunque visto che ha ancora qualche bug da correggere, testiamolo un po e dopo lo includiamo nel repo. A breve ti chiedo comunque di pacchettizzare una versione instabile da mettere nel sito, magari con esecuzione trasparente, senza di mezzo il terminale e integrato con gtksudo/kdesudo. Ti chiedo dopo via mail. Grazie dell'interesse =)


Title: Re: WiFi geolocation tool (wilocate)
Post by: evilsocket on February 13, 2011, 07:27:11 PM
Come ho detto a raffaele, il tool è molto carino e ha buone potenzialità ma, sarò sincero, per come è fatto adesso è pressochè inutile.
Mi spiego.

L'interfaccia web che c'è attualmente, è carina, ma oltre a geolocalizzare un mac address (quindi il mio, o cmq qualcuno di vicino, quindi inutile geolocalizzarlo) non posso fare.
Invece sarebbe carino poter lanciare un demone che ogni N secondi si salva la lista dei router che rileva, e successivamente tramite lo stesso script poter semplicemente salvarmi il tracciato geolocalizzando ognuno dei punti rilevati.
Quello sarebbe molto utile per chi non ha un gps ma vuole cmq fare wardriving "serio" .


Title: Re: WiFi geolocation tool (wilocate)
Post by: Emilio on February 13, 2011, 07:32:47 PM
Sisi due linee di codice e lo farà :D

era lo scopo fin dall'inizio, e il prossimo passo nella roadmap.. se riesco a finire questa cazzo di relazioncina per un esame lo implemento stasera stessa =) Avverto quando è fatto


Title: Re: WiFi geolocation tool (wilocate)
Post by: evilsocket on February 13, 2011, 07:33:19 PM
quando è fatto fai un fischio che lo provo subito :)


Title: Re: WiFi geolocation tool (wilocate)
Post by: Emilio on February 14, 2011, 02:26:07 AM
Fatto : D

Per utilizzare wilocate in modalità offline e registare le reti rilevate, avviatelo con

Code:
sudo -E ./wilocate.py -l -w

Omettete il -w se desiderate seguire il processo via web. Una volta tornati in possesso di una connessione, visualizzate le wifi e le posizioni trovate durante il tragitto specificando la path del log file appena generato

Code:
./wilocate.py -f log-GG-MM-AAAA/file.log

Dovrebbe fare il suo lavoro salvo errori da programmazione notturna.


Title: Re: WiFi geolocation tool (wilocate)
Post by: evilsocket on February 14, 2011, 03:42:09 AM
ecco, così mi piace :D