Wardriving HowTo
Ich hab hier mal kurz zusammengezimmert, was man zum Wardriven alles braucht. Da ich leider nicht für alle OS mit 100% Wissen glänzen kann, wärs cool wenn ihr hier miteditiert! :)
Hardware habe ich mal nicht berücksichtigt. Eine WLAN Karte die Monitor Mode kann, unter Windows auch ohne, ein GPS Receiver via Bluetooth oder anderweitig mit dem Laptop verbunden (seriell, etc.) reicht vollkommen aus. Natürlich kann man das alles pimpen. Dazu gibts von uns auch Antennenbauworkshops und ähnliches!
Linux
Kismet
Unter Linux gibts den de-facto Standard Kismet. Das Tool setzt die WLAN Karte in den sog. Monitor Mode und empfängt damit alles im WLAN Bereich passiv. Eure Karte muss monitor mode unterstützen! Damit ist es auch möglich Clients (Probes) zu finden. Kismet bietet eine Vielzahl an Einstellungsmöglichkeiten und Informationen über ein gefundenes WLAN. Vorzugsweise läuft Kismet auf der Shell (es gibt auch ein hässliches GTK GUI. Kismet hier komplett vorzustellen sprengt den Rahmen, daher beschränke ich mich hier auf die Installation, wer mehr wissen will findet hier die Doku.
Kismet ist mittlerweile mit fast allen gängigen Paket Managern verfügbar, also reicht zB ein apt-get install kismet. Wer gerne eine aktuelle Version möchte, muss schauen ob sein Paket Manager diese bietet oder den source ziehen und selbst compilen. Wie das geht steht hier auch.
Als nächstes muss man noch mindestens eine config Datei editieren: /etc/kismet/kismet.conf, kann auch sein das die Datei wo anderst liegt. Relevant sind hier folgende Änderungen:
# User to setid to (should be your normal user)
suiduser=your_user_here
Dort muss ein User anstelle von "your_user_here" eingetragen werden.
# YOU MUST CHANGE THIS TO BE THE SOURCE YOU WANT TO USE
source=none,none,addme
Hier muss eure WLAN Karte angegeben werden. Der Syntax ist "Typ der WLAN Karte","Interface Name","Name für die Einstellung, frei wählbar"
Was ihr jetzt hier angeben müsst steht ebenfalls in der Doku von Kismet. Im Kapitel 12, "Capture Sources" werdet ihr fündig. Dort steht ganz vorne der Typ, den Interface Name müsst ihr selbst rausfinden (iwconfig) und den Namen dürft ihr selbst wählen. Bei einer Intel WLAN KArte vom Typ 2915ABG sieht die Zeile zB so aus: source=ipw2200,eth1,meineipw
Ihr könnt hier auch mehrere Interfaces definieren, einfach eine weitere Zeile dazuschreiben, zB:
source=ipw2200,eth1,meineipw
source=hostap,wlan1,wlansource
Desweiteren sollte man hier noch was ändern:
- Users outside the US might want to use this list:
- defaultchannels=IEEE80211b:1,7,13,2,8,3,14,9,4,10,5,11,6,12
defaultchannels=IEEE80211b:1,6,11,2,7,3,8,4,9,5,10
Die voreingestellten Channels sind für US Bürger, dort gibts nur 11. In Deutschland findet man mitunter 14, mindestens aber 13 Channels. Eure Karte muss dies unterstützen. 13 sollten mit einer in Europa zugelassenen WLAN Karte auf jeden fall gehen. Also:
- Users outside the US might want to use this list:
defaultchannels=IEEE80211b:1,7,13,2,8,3,14,9,4,10,5,11,6,12
- defaultchannels=IEEE80211b:1,6,11,2,7,3,8,4,9,5,10
Ähnliches gilt für:
- 802.11a channels are non-overlapping so sequential is fine. You may want to
- adjust the list depending on the channels your card actually supports.
defaultchannels=IEEE80211a:36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140,149,153,157,161,184,188,192,196,200,204,208,212,216
- Combo cards like Atheros use both 'a' and 'b/g' channels. Of course, you
- can also explicitly override a given source. You can use the script
- extras/listchan.pl to extract all the channels your card supports.
defaultchannels=IEEE80211ab:1,6,11,2,7,3,8,4,9,5,10,36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140,149,153,157,161,184,188,192,196,200,204,208,212,216
Und hiermit kann man auch spielen:
- How many channels per second do we hop? (1-10)
channelvelocity=6
Dann hätten wir noch die GPS Einstellungen, die sollten so aussehen:
# Do we have a GPS?
gps=true
- Host:port that GPSD is running on. This can be localhost OR remote!
gpshost=localhost:2947
- Do we lock the mode? This overrides coordinates of lock "0", which will
- generate some bad information until you get a GPS lock, but it will
- fix problems with GPS units with broken NMEA that report lock 0
gpsmodelock=true
Jetzt sollte Kismet erstmal funktionieren.
gpsd
Es gibt jetzt mehrere Möglichkeiten um den gpsd zum laufen zu bringen. Entweder via Paket Manager, apt-get install gpsd zB. Man kann auch direkt den gpsd aus dem kismet Package benutzen. Problem ist hierbei, das gpsd teilweise etwas zu anspruchsvoll mit der Signalqualität ist, das führt in kismet dazu, dass unten in der GPS Statuszeile nicht immer angezeigt wird "Fix: 3D". Das führt wiederum dazu, dass einige WLANs schlichtweg nicht geloggt werden. Ich weiss nicht, ob dieses Problem immernoch besteht, falls ja, es gab mal einen fix dazu, ich hab ihn gerade nur nicht gefunden. Bei Bedarf such ich nochmal.
GPSd startet mit:
gpsd /dev/ttyS0
Ihr müsst also einfach euer device mit angeben. Bei Bluetooth GPS müsst ihr erstmal eine Verbindung herstellen. Dann sieht euer Befehl ungefähr so aus:
hcitool cc 00:0A:3A:DE:AD:AA
hcitool con
rfcomm bind /dev/rfcomm0 00:0A:3A:DE:AD:AA
gpsd /dev/rfcomm0
Wobei 00:0A:3A:DE:AD:AA die MAC eures Bluetooth GPS ist.
gpsdrive
Jetzt seit ihr eigentlich schon fertig. Ihr könnt jetzt die Koordinaten loggen. Wenn ihr das ganze noch schön auf ner Karte haben wollt installiert ihr euch jetzt noch gpsdrive. Die gängigen Paket Manager können das auch wieder, allerdings gibts da paar Sachen zu beachten: Eure WLANs werden in MySql gespeichert. Das heisst, es muss ein Mysql server laufen, auf der Kiste auf der ihr loggt. Manchmal wird das gleich mitinstalliert, manchmal nicht. Da der Entwickler von gpsdrive selbst wardriver ist, hat er ein schönes Plugin geschrieben für gpsdrive. Das heisst, gpsdrive ist kompatibel zu kismet. Wie ihr gpsdrive dazu bringt die Daten zu loggen die von Kismet kommen steht hier: http://www.larsen-b.com/Article/212.html Das ist eine kurze, aber schöne Beschreibung im Nachhinein auch noch nach Google Maps zu exportieren.
Anmerkungen
Bei gpsdrive ist eine gute Doku dabei, wie man das SQL Schema erstellt. Wichtig ist, dass ihr eure Tools in follgender Reihenfolge startet: 1. gpsd 2. kismet 3. gpsdrive. Beendet kismet _nicht_ vor gpsdrive, gpsdrive hängt sich sonst weg. Kismet bietet eine Filter Einstellung, da könnt ihr MAC Adressen eingeben von Leute die mit euch fahren. Dann werden diese in den Logs ignoriert. Ziemlich nützlich ist das, wenn ihr mit Leuten fahrt die Netstumbler benutzen, die rufen nämlich die ganze Zeit... Kismet bietet eine Sprachausgabe. Dazu braucht ihr festvox und ein paar Einstellungen in der kismet.conf, dann werden euch die SSIDs vorgelesen!
Windows
Unter Windows ist das ganze sehr viel einfacher... :) Installiert euch NetStumbler. Das tool hat ebenfalls eine GPS Unterstützung, arbeitet jedoch aktiv, das heisst es ruft aktiv nach WLANs. Ihr müsst bloss euer Device auswählen. Export der Daten in diverse Mapping Formate gibts auch: Google Earth, M$ Mappoint, google.
Mac
Unter Mac ist mir nur (neben kismet) KisMac als richtig gutes Werkzeug bekannt. Kismac bietet auch ein paar Penetration Tools. Ich hab keinen Mac, ich werd auch nie einen haben, so RTFM... :)
Windows Mobile Handheld
Unter WM gibt es WiFiFoFum. Hat auch eine GPS Unterstützung! Dann hätten wir noch AiroMap. Hab ich nie getestet, sieht aber gut aus.
Symbian OS
Da wäre mir nur PyNetMony bekannt. Hab ich nie getestet.