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...

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);
?>



