30 junio 2014

Wardriving con gpsdrive y kismet

¿Que es Wardriving?
Es la búsqueda de redes inalámbricas Wi-Fi desde un vehículo en movimiento. Implica usar un coche o camioneta, un ordenador equipado con Wi-Fi para detectar las redes y un GPS para poder ubicarlas.

Existen múltiples programas y configuraciones para intentarlo, pero me decanto por la combinación de gpsdrive y kismet ya que parece que están integrados y es la configuración que mas documentada he visto en internet.

Kistmet
¿Que es?
Kismet es un sniffer y un sistema de detección de intrusiones para redes inalámbricas 802.11. Como características tiene que su funcionamiento es pasivo, de forma que no es detectable y además tiene una integración con gps y gpsdrive para representar las redes localizadas.
Considero interesante señalar que además de la información que muestra en pantalla deja traza de las operaciones en /var/log/kismet. Las trazas que deja son:
  • *.dump: Extensión similar a la .cap que usa el airodump.
  • *.network: Archivo de texto con los datos de las redes detectadas.
  • *.csv: Archivo de texto con los datos de las redes detectadas separados por comas.
  • *.xml: Archivo de texto con los datos de las redes detectadas en formato xml.
  • *.weak: Paquetes débiles detectados, en formato para ser utilizados con AirSnort, con el fin de crackear claves WEP.
  • *.cisco: Recoge información sobre los equipos cisco detectados en formato CDP.
  • *.gps: Si tenemos gps, guarda las coordenadas de las redes

Instalando.
~$  sudo apt-get install kismet

Configurando
Me he encontrado varias pegas al configurar kismet para que eche a andar.

Para arrancar kismet es necesario indicarle el driver de la tarjeta, la interfaz que se monitorizará y el nombre que le asignamos. Inicialmente arrancamos desde línea de comando y una vez fijemos la configuración correcta la pasaremos al fichero de configuración.

Para determinar el driver de la tarjeta le echamos un ojo al dispositivo de red con lspci:
~$ lspci -v

10:00.0 Network controller: Intel Corporation PRO/Wireless 4965 AG 
      or AGN [Kedron] Network Connection (rev 61)
 Subsystem: Intel Corporation Device 1101
 Flags: bus master, fast devsel, latency 0, IRQ 2297
      Memory at d8000000 (64-bit, non-prefetchable) [size=8K]
      Capabilities: 
      Kernel driver in use: iwlagn
      Kernel modules: iwlagn

Vemos que el módulo de kernel que se carga para la interfaz wifi es iwlang, ahora vamos a la documentación de kismet y vemos el driver que hay que usar:

iwlagn Intel/Centrino Linux iwl4965

Lo siguiente es identificar la interfaz:
~$ ifconfig
...
wlan0     Link encap:Ethernet  direcciónHW XX:XX:XX:XX:XX: XX  
   inet dirección:X.X.X.X  Difusión: X.X.X.X  Máscara:X.X.X.X
dirección inet6: fe80::221:5cff:fe1d:f9f/64 Alcance:Vínculo
  ARRIBA DIFUSIÓN CORRIENDO MULTICAST  MTU:1500  Métrica:1
 RX packets:155903 errors:0 dropped:0 overruns:0 frame:0
 TX packets:144372 errors:0 dropped:0 overruns:0 carrier:0
  colisiones:0 txqueuelen:1000 
  RX bytes:132902452 (132.9 MB)  TX bytes:64660675 (64.6 MB)

Arrancamos kismet
~$ sudo kismet -c iwl4965,wlan0,wlan0

Si todo va bien veremos algo como:

Para empezar a trabajar pulsamos el espacio, para salir a Q y para la ayuda h.
Como toda ha ido bien modificamos el fichero de configuración que se encuentra en /etc/kismet/kismet.conf. Se edita y se modifica la sección:
# Sources are defined as:
# source=sourcetype,interface,name[,initialchannel]
# Source types and required drivers are listed in the README under the
# CAPTURE SOURCES section.
# The initial channel is optional, if hopping is not enabled it can be used
# to set the channel the interface listens on.
# YOU MUST CHANGE THIS TO BE THE SOURCE YOU WANT TO USE
source=iwl4965,wlan0,wlan0

Lo siguiente es configurar el GPS, tenemos dos opciones:
1.Generar un fichero de traza que sea capaz de leer gpsdrive. Sólo mostrará la bssid de la wifi y su localización. Para ello se edita el fichero de configuración en la sección:
# Do we write waypoints for gpsdrive to load?  Note:  This is NOT related to
# recent versions of GPSDrive's native support of Kismet.
waypoints=true
# GPSDrive waypoint file.  This WILL be truncated.
waypointdata=%h/.gpsdrive/way_kismet.txt
# Do we want ESSID or BSSID as the waypoint name ?
waypoint_essid=false

Se marca waipoints a true para que genere el fichero y en waypointdata la ruta donde se dejará. La ruta del fichero será $HOME/.gpsdrive/way_kistmet.txt del usuario que use gpsdrive. A tener en cuenta que para que gpsdrive interprete la traza habrá que renombrarla a way.txt

2.Integración a través de mysql. Es mucho mas rica que la anterior. Para esta configuración no es necesario hacer nada en kismet, lo que habrá que hacer es generar la base de datos de mysql para almacenar los datos después de instalar gpsdrive.

Gpsdrive
¿Que es?
Es un sistema de navegación que muestra la posición determinada por un gps (a traves de gpsd) en un mapa. Los mapas de puede descargar de internet y se escoge la resolución en función del mapa que mejor ajuste a la posición que se tenga.

Instalando.
~$  sudo apt-get install gpsdrive

Para ejecutarlo;
~$ gpsdrive

Configurando
Si no hemos cambiado el puerto donde publica gpsd lo único que nos queda por configurar es la base de datos mysql para que se almacene la información de kismet.
geoinfo --create-db --fill-defaults --db-user=root --db-password=clave
Crea una base de datos con usuario y clave gast

Todo junto.
Pues echamos a andar todo junto y crucemos los dedos.
  • Conectamos el gpsbluetooth:
~$ sudo rfcomm connect 4

  • Arrancamos gpsd:
sudo gpsd -N -D 4 /dev/rfcomm4
(con trazas a nivel de debug y en foreground, una manía mia)

  • Arrancamos kismet:
sudo kismet

  • Arrancamos gpsdrive:
gpsdrive

Le damos la vuelta a la manzana, y el resultado es:


Eventualmente se puede mostrar el resultado en Google Earth
Tomado de: http://enunmomentillo.blogspot.com.ar/2009/08/wardriving-con-gpsdrive-y-kismet.html

No hay comentarios: