VoIP and Hacking | Consulenza Documentazione

Tag: wardriving

Tool migliorato per generare i files .kml

by admin on Oct.21, 2009, under Hacking, Linux, Tools

Per chi fosse interessato all’argomento wardriving, ho scritto un nuovo tool che genera un file .kml importabile in GoogleEarth, a partire da un log kismet in formato xml.
Il tool (uno script php, data la facilità con cui la libreria simple_xml gestisce il formato di partenza) genera ora un output aderente alle ultime specifiche kml (2.2), e si aspetta come argomento il pathname di un valido logfile xml prodotto da kismet, tipo:

# xml2kml /var/log/kismet/Kismet-Oct-11-2009-1.xml

Si attende anche che siano disponibili, su un web server locale, tre differenti icone per rappresentare in maniera differente gli accesspoints wireless completamente sprotetti da quelli protetti solo wep, e da quelli protetti wpa/wpa2.

Il file di output è /tmp/kismet.kml.

Script ed icone sono scaricabili.

Send post as PDF to PDF | PDF Creator | PDF Converter
Leave a Comment :, , more...

Wardriving parte 2: da gpsmap a googleearth

by admin on Oct.14, 2009, under Hacking, Linux, Tools

Una volta raccolte, le informazioni relative alla attività di wardriving sono disponibili per successive elaborazioni, innanzitutto il mappaggio topografico, nell’ambito del quale sicuramente si distinguono per efficacia ed impatto visivo, le mappe di GoogleMap e GoogleEarth.

Il programma gpsmap, fornito insieme con kismet, riesce autonomamente a creare ottime mappe di networks wireless, tracciandone ad esempio le circonferenze relative alla potenza del segnale emesso, come nell’esempio seguente:

# gpsmap -t -r -R 50 -n 1 -D -S 7 -o gpsmap.png Kismet-Oct-02-2009-1.gps
Reading AP manufacturer data and defaults from //etc/kismet/ap_manuf
Reading client manufacturer data and defaults from //etc/kismet/client_manuf
NOTICE: Reading cached data for Kismet-Oct-02-2009-1.gps
Processing 5938 sample points.
Map image scale: 8600
Minimum Corner (lat/lon): 46.133003 x 12.180598
Maximum Corner (lat/lon): 46.154026 x 12.230023
Map center (lat/lon): 46.143515 x 12.205311
Loading map into Imagemagick structures.
Converting map to greyscale.
Calculating network coordinates and statistics...
Processing 401 raw networks.
Assigning network colors...
Plotting 401 networks...
Drawing track coordinates, width: 3...
Calculating and drawing network circles...

gpsmap

Il principale registro della attività di kismet è un file xml, contenente appunto tutte le informazioni sulle networks wireless rilevate, inclusi il loro SSID, il tipo di protezione, la velocità e la loro posizione geografica via gpsd.

E’ piuttosto semplice comporre uno script per effettuare il parsing del logfile e generare uno specifico KML file da usarsi con Google Earth.

Ad esempio in php, grazie alla libreria simplexml:

<?php
<?php
$myFile = "/var/www/tmp/kismet.kml";
$fh_out = fopen($myFile, 'w');
fwrite($fh_out, "<?xml version="1.0" encoding="UTF-8"?>"."n");
fwrite($fh_out, "<kml xmlns="http://earth.google.com/kml/2.0">"."n");
fwrite($fh_out, "<Folder>"."n");
fwrite($fh_out, "<name>Kismet Wireless Scan</name>"."n");
fwrite($fh_out, "<visibility>1</visibility>"."n");
$xml_file=$HTTP_GET_VARS[file];
$xml = simplexml_load_file($xml_file);
foreach ($xml->{’wireless-network’} as $wnet) {
. $ssid = $wnet->SSID;
. $bssid = substr($wnet->BSSID,0,17);
. $enc = $wnet->encryption;
. $lat = $wnet->{’gps-info’}->{’max-lat’};
. $lon = $wnet->{’gps-info’}->{’max-lon’};
. $chan = $wnet->channel;
. $maxrate = $wnet->maxrate;
. fwrite($fh_out, “n”);
. fwrite($fh_out, “<Placemark>”.”n”);
. fwrite($fh_out, ” <name>$ssid</name>”.”n”);
. fwrite($fh_out, ” <description><![CDATA[
. <p style="font-size:10pt;font-family:monospace;">$lon, $lat</p>
. <ul>
. <li> BSSID : $bssid </li>
. <li> Channel : $chan </li>
. <li> Max Rate: $maxrate </li>
. <li> Encrypt : $enc </li>
. </ul>
. ]]></description>”.”n”);
. fwrite($fh_out, ” <View>”.”n”);
. fwrite($fh_out, ” <longitude>$gpslon</longitude>”.”n”);
. fwrite($fh_out, ” <latitude>$gpslat</latitude>”.”n”);
. fwrite($fh_out, ” </View>”.”n”);
. fwrite($fh_out, ” <visibility>1</visibility>”.”n”);
. fwrite($fh_out, ” <styleUrl>root://styleMaps#default?iconId=0×307</styleUrl>”.”n”);
. fwrite($fh_out, ” <Point><coordinates>$lon,$lat,45</coordinates></Point>”.”n”);
. fwrite($fh_out, ” </Placemark>”.”n”);
}
fwrite($fh_out, “</Folder>”.”n”);
fwrite($fh_out, “</kml>”.”n”);
fclose($fh_out);
?>

wardriving e Goole Earth

Send post as PDF to PDF | PDF Creator | PDF Converter
Leave a Comment :, , , , , more...

Wardriving parte 1: kismet, gpsd + Royaltek RCD-1100

by admin on Oct.07, 2009, under Hacking, Sicurezza, Tools

Il wardriving è un’attività che consiste nell’intercettare e mappare reti Wi-Fi tramite le loro coordinate geografiche utilizzando un laptop dotato di apposito software e di un ricevitore GPS.
Il wardriving in sé stesso non è una attività illegale, non comportando alcun accesso alle reti individuate, ed anzi, nei paesi di riferimento per quanto riguarda le tecnologie informatiche, è spesso praticato come business basato sulla ricompensa per la segnalazione delle eventuali vulnerabilità scoperte ai diretti interessati. Talvolta viene addirittura praticato come servizio sociale, senza scopo di lucro.
In ogni caso è una attività molto interessante a livello di indagine per chi si occupa di sicurezza, anche se non proprio confortante, dato l’impressionante numero di reti mal protette o per nulla protette che è possibile rilevare.

Linux costituisce una piattaforma ideale per tale attività, che può contare, a livello software su una coppia di componenti fondamentali:

* gpsd
* kismet

packages entrambi installabili con apt-get:

# apt-get install gpsd
# apt-get install kismet

Unico prerequisito hardware è, a parte ovviamente il portatile con interfaccia wifi impostabile in modalità monitor, un rilevatore GPS dotato di interfaccia bluetooth oppure usb/seriale.
Si può utilizzare un navigatore di tipo Garmin, TomTom o Magellan, ma si può anche usare qualcosa di veramente economico, come ho fatto ad esempio io, acquistando per meno di 30 Euro un rilevatore GPS bluetooth RCD-1100 della RoyalTek.
E’ un apparecchietto molto comodo, in quanto può ricevere direttamente l’alimentazione dal portatile tramite la porta miniUSB, e comunicare invece tramite l’interfaccia bluetooth.
Il laptop deve essere logicamente dotato in tal caso del supporto bluetooth e di una interfaccia specifica, tipo un semplice dongle:

# hcitool dev
Devices:
hci0    00:14:35:00:14:AC

Se in tal modo si è avuta conferma del corretto riconoscimento del dongle, per scoprire l’indirizzo fisico del rilevatore:

# hcitool scan
Scanning ...

00:0A:3A:2D:45:04 BlueGPS 2D4504

Per scoprire quali servizi metta a disposizione e determinarne le caratteristiche:

# sdptool browse 00:0A:3A:2D:45:04

se il comando precedente non dovesse generare alcun output si può ricorrere a:

# sdptool records 00:0A:3A:2D:45:04
Service Name: Dev B
Service RecHandle: 0x10001
Service Class ID List:
"Serial Port" (0x1101)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Language Base Attr List:
code_ISO639: 0x656e
encoding:    0x6a
base_offset: 0x100

in tal caso il canale 1 è quello che ci interessa:

# vi /etc/bluetooth/rfcomm.conf
rfcomm0 {
bind yes;
device 00:0A:3A:2D:45:04;
channel    1;
}

Una volta effettuato il pairing con il rilevatore col classico codice “0000″, si può avviare il daemon gpsd con:

# gpsd /dev/rfcomm0

e verificare la regolarità della comunicazione fra i due elementi con:

# telnet localhost 2947
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

r
GPSD,R=1
$GPGGA,092605.000,4607.9862,N,01211.6053,E,1,06,1.7,402.4,M,46.9,M,,0000*5E
$GPGSA,A,3,09,27,29,26,04,02,,,,,,,2.5,1.7,1.8*3F
$GPGSV,3,1,10,12,78,333,21,09,57,130,35,27,49,132,42,26,48,262,21*7A
$GPGSV,3,2,10,30,47,273,20,14,37,298,,04,22,081,37,02,21,115,38*79
$GPGSV,3,3,10,29,13,206,37,17,06,040,*75
$GPRMC,092605.000,A,4607.9862,N,01211.6053,E,0.00,328.98,071009,,,A*62

r
....
GPSD,R=0

A questo punto, tutto quello che resta da fare per essere operativi è configurare /etc/kismet/kismet.conf per avvalersi dei servizi di gpsd:

[...]
gps=true
[...]

Da ora in avanti, tutti gli AP rilevati da kismet verranno registrati con le relative coordinate geografiche, rendendo possibile la loro localizzazione ad esempio sulle mappe di GoogleMaps o di GoogleEarth, argomento del prossimo post.

Send post as PDF to PDF | PDF Creator | PDF Converter
Leave a Comment :, , , , , , more...

Cerchi qualcosa in particolare?

Usa il form qui sotto per cercare nel sito:

Blogroll!

Alcuni links...

Archives

Tutte le entries, in ordine cronologio...