Kismet Mini-mini-howto: Una guia para Mendoza-Wireless

Harpo MAxx


Tabla de contenidos
1. Razon de este documento.
1.1. Que incluye este documento?
1.2. Que no incluye este documento.
2. Que es Kismet y por que me puede servir.
3. Consiguiendo Kismet.
4. Configurando Kismet
4.1. Que programas incluye Kismet
5. Editando kismet.conf.
6. Utilizando Kismet
6.1. Ejecutando por primera vez
6.2. Investigando el interface Curses.
6.3. Algunas Opciones mas del interfaz Curses.
6.4. Filtrando por direccion MAC.
6.5. Usando la placa de Sonido
6.6. Analizando los logs.
7. Comentario Final

2. Que es Kismet y por que me puede servir.

Kismet es un sniffer para redes wireless basadas en la norma 802.11b de la IEEE. El cual ha resultado ser de mucha utilidad para la deteccion de problemas de conectividad en las primeras etapas del enlace de un nodo a la MW.

Como cualquier sniffer Kismet coloca la placa de red en un modo Promiscuo (modo RF monitor) y podemos ver que es lo que esta pasando en las capas mas bajas de nuestra Red.

Hay que tener en cuenta que no todas las placas tienen la posibilidad de pasarse a modo Monitor, y aun en algunos casos en que la placa posea dicha capacidad , no todos los drivers lo tienen soportado.

Imagenlo como un ethereal http://www.ethereal.org pero para conexiones wireless.

Algo realmente interesante es que si la maquina dispone de una placa de sonido Kismet da la posibilidad de ejecutar sonidos frente a ciertos tipos de eventos, particularmente a mi me resulto muy util esto ultimo, ya que muchas veces tenia que subir al techo de casa e ir moviendo la antena, y no tenia a nadie abajo mirando el monitor de Kismet y avisandome cada vez que detectaba una nueva red o cada vez que habian paquetes viajando por alguna de la redes encontradas.

Kismet se encuentra entre las primeras pruebas a realizar, ya que al permitir ver lo que esta "viajando" por el aire, podemos decir que si no vemos nada con Kismet, entonces ESTAMOS EN PROBLEMAS!!!


3. Consiguiendo Kismet.

Kismet viene en la distro que uso habitualemte (Debian Sid), por lo que no tengo mas que hacer un

  harpo@wired#  
 apt-get install kismet

y salgo andando.

Pero tengo entendido que muchas otras distros lo incluyen entre sus paquetes.

Como siempre si se sienten alocados, puede bajarse la ultima version de kismet de la homepage del proyecto. http://www.kismetwireless.net y seguir los pasos que alli se indican.

La ultima version estable a la hora de escribir este documento es la version 2.8.1, sin embargo en mi distro la version que existe es la 2.6.2 por lo que desgraciadamente este documento se basara principalmente en esa version.


5. Editando kismet.conf.

Bueno ahora vamos a lo bueno. Vamos a tocar solamente las opciones necesarias para tener kismet andando.

Estas son las tres principales opciones que tenemos que tocar en el archivo de configuracion de kismet.

capinterface=wlanX|ethX

Obviamente seleccionamos el interfaz que queremos poner en modo monitor, normalmente wlan0 o eth0 serian opciones validas.

captype=pcap|prism2

Esta opcion permite seleccionar el motor de captura que va usar kismet, normalmente uno creeria que deberiamos seleccionar prism2 como el motor por defecto, sin embargo no es asi, a partir de las ultimas versiones de los drivers wlan-ng y hostap, la opcion adecuada es pcap. Que como se imaginan no otra que la vieja y querida libpcap que usan tcpdump y ethereal entre otros muchos programas. Aunque ha sido especialmente modificada para trabajar con redes wireless.

cardtype=prism2_pcap

En la version 2.8.1 la sintaxis cambio y para configurarla usar la seccion source siguiendo este orden source=capture_cardtype,capture_interface,capture_name

Para el caso puntual de una configuracion usando hostap

source=prism2_hostap,wlan0,Kismet

Aca tenemos que seleccionar nuestro driver, hay una gran cantidad de drivers que podemos elegir, nosotros los chicos prism2.x deberiamos jugar con prism2_pcap si usamos wlan-ng o prism2_hostap si usamos hostAp. ** Falta ver como hacerlo andar con las Samsumg **

Si queremos que el script kismet lance automaticamente el kismet_monitor y kismet_hooper. Deberiamos setear :

auto_monitor=true
auto_hooper=true

En la version 2.8.1 permite seleccionar logeo de capa fisica (PHY) y de los beacons que el AP manda. Es recomendable colocar estas opciones como true

beaconlog=true
phylog=true

Hay muchas otras opciones que podriamos tocar, pero por ahora tenemos lo basico como para para salir a sniffear.


6. Utilizando Kismet


6.2. Investigando el interface Curses.

El interfaz Curses de kismet es realmente completo, tiene una gran cantidad de opciones, asi que vamos a ir comentando las que a mi me fueron de utilidad.

La interfaz de Kismet consta de 3 pantallas y varias ventanas de tipo popup. La ventana principal es donde apareceran las diversas "Redes" que podemos llegar a ver.

La ventana de estadisticas, donde se puede llevar un conteo de los paquetes recibidos, el tiempo, etc.

Por ultimo la ventana de estado en donde se remarcan los ultimos eventos, como ser redes descubiertas, IPs, direcciones MAC, etc

   Network List
   Name			T W Ch Packts  Flags  IP Range
   !lugmen	        A N  6  1243          0.0.0.0
   .centro		A N  9  2121 
   
				  Figura 1.
				  

En mis pruebas en distintos puntos de mendoza era comun cruzarse con varias redes wireless mas alla de la MW. En la Figura 1 como vemos tenemos 2 redes "lugmen" es el SSID del AP de MW y "centro" que vaya uno a quien pertenece jeje.

Ahora vemos a interpretar esto un poco. Al lado de Name encontramos un podemos encontrar un signo de exclamacion (!) un punto (.) o simplemente nada ( ), esto nos indica el tiempo que ha pasado desde que se recibio un paquete en esa red.

(!) Indica actividad detectada en los ultimos 3 segundos.
(.) Indica actividad detectada en los ultimos 6 segundos.
( ) No hay actividad.

La "T" nos indica el tipo de red, siendo (A) para AP Mode y (H) para AD-HOC Mode.

La "W" indica si esta utilizando WEP.

Con esta informacion podemos facilmente ubicar nuestra red y ver la taza de trasnferencias de paquetes que recibimos, ubicar el rango de ip en que trabaja.

Con lo anterior tenemos lo basico, como dije antes si no logramos ver con kismet el AP del lugmen, entonces estamos mal. Sin embargo el hecho de verlo no nos garantiza que tengamos la posibilidad de asociarnos.

Segun mi interpretacion el hecho de toparnos con el AP del lugmen, solo nos garantiza que podemos recibir, pero no garantiza que tengamos capacidad para transmitir.


6.6. Analizando los logs.

Kismet mantiene una cantidad de logs en /var/log/kismet cada uno en diversos formatos, la opcion logtypes establece el formato de archivo en que vamos a realizar el log.

  
logtypes=dump,network,csv,xml,weak,cisco,gps
 

En este ejemplo estamos seleccionando todos los tipos de logs.

EL mas interesenta en mi opinion es el formato dump el cual posteriormente puede ser procesado por ethereal o tcpdump. tethereal -i wlan0< /var/log/kismet/Kismet-Jan-20-2003-10.dump

Con este comando basico podemos volver el archivo .dump a un archivo ASCii que con toda la informacion sobre los paquetes capturados.

Frame 1 
(92 bytes on wire, 92 bytes captured)
    Arrival Time: Jan 19, 2003 21:40:40.181691000
    Time delta from previous packet: 0.000000000 seconds
    Time relative to first packet: 0.000000000 seconds
    Frame Number: 1
    Packet Length: 92 bytes
    Capture Length: 92 bytes
IEEE 802.11
    Type/Subtype: Beacon frame (8)
    Frame Control: 0x0080
        Version: 0
        Type: Management frame (0)
        Subtype: 8
        Flags: 0x0
            DS status: Not leaving DS or network is operating in AD-HOC mode 
(To DS: 0  From DS: 0) (0x00)
            .... .0.. = More Fragments: This is the last fragment
            .... 0... = Retry: Frame is not being retransmitted
            ...0 .... = PWR MGT: STA will stay up
            ..0. .... = More Data: No data buffered
            .0.. .... = WEP flag: WEP is disabled
            0... .... = Order flag: Not strictly ordered
    Duration: 0
    Destination address: ff:ff:ff:ff:ff:ff (Broadcast)
    Source address: 00:e0:03:04:b0:a2 (NokiaWir_04:b0:a2)
    BSS Id: 00:e0:03:04:b0:a2 (NokiaWir_04:b0:a2)
    Fragment number: 0
    Sequence number: 4038
IEEE 802.11 wireless LAN management frame
    Fixed parameters (12 bytes)
        Timestamp: 0x0000002A5085027E
        Beacon Interval: 0.102400 [Seconds]
        Capability Information: 0x0001
            .... .... .... ...1 = ESS capabilities: Transmitter is an AP
            .... .... .... ..0. = IBSS status: Transmitter belongs to a BSS
            .... .... .... 00.. = CFP participation capabilities: No point 
coordinator at AP (0x0000)
            .... .... ...0 .... = Privacy: AP/STA cannot support WEP
            .... .... ..0. .... = Short Preamble: Short preamble not allowed
            .... .... .0.. .... = PBCC: PBCC modulation not allowed
            .... .... 0... .... = Channel Agility: Channel agility not in use
            .... .0.. .... .... = Short Slot Time: Short slot time not in use
            ..0. .... .... .... = DSSS-OFDM: DSSS-OFDM modulation not allowed
    Tagged parameters (56 bytes)
        Tag Number: 0 (SSID parameter set)
        Tag length: 6
        Tag interpretation: lugmen
        Tag Number: 1 (Supported Rates)
        Tag length: 4
        Tag interpretation: Supported rates: 1.0(B) 2.0(B) 5.5 11.0 [Mbit/sec]
        Tag Number: 3 (DS Parameter set)
        Tag length: 1
        Tag interpretation: Current Channel: 6
        Tag Number: 5 ((TIM) Traffic Indication Map)
        Tag length: 4
        Tag interpretation: DTIM count 0, DTIM period 5, Bitmap control 0x0, 
(Bitmap suppressed)
        Tag Number: 133 (Reserved tag number)
        Tag length: 31
        Tag interpretation: Not interpreted

Lo anterior fue solo un estracto de la informacion que tiene un beacon del SSID "Lugmen"