Kismet, herramienta de auditoria wireless en linux
Kismet es un programa para Linux que permite detectar WLANs usando tarjetas wireless 802.11a, 802.11b y 802.11g. Tiene varios usos, como:
1.- Verificar que nuestra red está bien configurada.
2.- Detectar otras redes que pueden causar interferencias a la nuestra.
3.- Tambien nos sirve para WarDriving, es decir, detectar todos los APs que estan a nuestro alrededor.
Lo podemos descargar desde la pagina oficial: http://www.kismetwireless.net/
O si tenemos una distro basada en debian y conexión a internet:
puedes obtener información sobre el proceso de instalación en http://www.kismetwireless.net/
Configurando kismet:
En ciertos casos al ejecutarlo no se configura automaticamente por lo que tenemos dos alternativas:
1.- Indicarle la tarjeta que vamos a utilizar con el siguiente comando:
kismet -c [driver,interface,nombre]
donde driver es el nombre del driver (rt2500, hostap…) interface es el nombre de nuestra interface (ra0, wlan0…) que estamos utilizando y nombre podemos poner el nombre de la tarjeta (ralink, prism….). Por ejemplo para un ralink pci quedaría:
kismet -c rt2500,ra0,ralink
2.- Para poner en marcha kismet, previamente deberemos configurar la aplicación en el fichero kismet.conf, que se suele encontrar en el directorio etc/kismet o etc/. Lo puedes abrir usando tu editor favorito, por ejemplo vi, pico, kwrite o emacs. Allí deberemos indicar detalles tan imprescindibles como el tipo de tarjeta que usamos, la interfaz de red en la cual funciona, si queremos habilitar sonidos de aviso, etc… Para el caso puntual de una configuracion usando ralink:
source=rt2500,ra0,Ralink_g
No olvides de quitarle la # que puede aparecer al principio de la linea y guardar el archivo. El primer parámetro representa el controlador de la tarjeta bajo Linux; el segundo, el dispositivo de la tarjeta (desde la línea de comandos la orden iwconfig te mostrará los posibles); y, por último, un nombre escogido al azar.
Otras cosas que podemos tocar en el archivo kismet.conf:
Nombre de usuario: A veces el kismet no arranca porque en el kismet.conf esta configurado un nombre de usuario que no es el que estamos usando. Por ejemplo si estamos como user elohim debería de poner en el kismet.conf:
Clave wep: Si sabemos la clave wep de alguna red y queremos ver en el kismet los paquetes desencriptados de la misma, podemos especificar en el kismet.conf la clave wep de la siguiente forma:
Por ejemplo:
wepkey=00:DE:AD:C0:DE:00,FEEDFACEDEADBEEF01020304050607080900
Channelhop: Si es =true kismet alternará los canales y buscará en todos los disponibles. Si es =false snifaras unicamente el canal que le especifiques a kismet.
Sourcechannels: Si queremos que la aplicación únicamente vigile un único canal, necesitaras añadir una línea como esta: sourcechannels=Ralink_g:1, siendo el primer parámetro el nombre que asignamos al azar a nuestra fuente de captura y el segundo, el canal a vigilar. Si no especificamos esta última línea, Kismet saltará de canal en canal y con toda probabilidad perderá algunos de los paquetes.
Channel Velocity: Este es el número de veces que kismet forzará la tarjeta para “monitorear o sniffar” diferentes canales en un segundo. Por defecto está configurado a 5. Para sniffar mas canales por segundo hay que incrementar este valor y para sniffar menos canales por segundo habrá que reducir el valor.
Beaconlog: Sirve para indicarle a kismet si queremos que guarde en el archivo de captura las “beacons” (beaconlog=true) o si no las queremos guardar (beaconlog=false). Esta opción es muy util para reducir el tamaño de los archivos de captura.
Hay muchas otras opciones que podríamos tocar, pero por ahora tenemos lo básico como para arrancar el kismet.
Ejecutando Kismet:
Si está bien configurado el kismet.conf escribiendo kismet en la linea de comando sera suficiente para arrancarlo. En ciertos casos puede ser necesario tener la tarjeta en modo monitor, así recordar habilitar este modo:
iwconfig ra0 mode monitor;kismet
Pantalla principal:
Al arrancar el Kismet nos aparece una pantalla como esta:

Como vemos la interfaz de Kismet consta de 3 pantallas (y varias ventanas de tipo popup). La ventana principal “Network list” es donde apareceran las diversas “Redes” que podemos llegar a ver. La ventana “Info” donde se puede llevar un conteo de los paquetes recibidos, redes detectadas, paquetes encriptados, paquetes débiles, canal actual, tiempo, etc. Por último la ventana de estado “Status” en donde se remarcan los ultimos eventos, como redes descubiertas, IPs, direcciones MAC, etc. Veamos las tres ventanas detalladamente:
1.- NETWORK LIST:
La ventana central, “Network list” está dividida en varias columnas, las cuales nos informarán según vaya capturando redes de diversa información :
- Name: Essid o nombre (”alias”) de la red detectada. Al lado de Name 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.
Los colores indican si usan encriptación y , en general, cuan seguro es cada uno. El verde indica encriptación, el amarillo sin encriptación, el rojo equipos que están con la configuración de fábrica (sin wep) y el azul redes con essid oculto.
- Columna Clnt: Nos indica el número de clientes detectados en esa red o grupo de redes.
- Columna T: Nos indica el modo de funcionamiento del dispositivo Wifi detectado. Dicha bandera, nos ofrecerá diferentes valores como [A] si es un punto de acceso (AP: acces point), [H] si esta en modo ad-hoc, [G] si es un grupo de redes wireless o [P] si es un dispositivo en modo “probe request” (tarjeta wifi que no está conectada a ningun AP).
- Columna Ch: El canal en el que opera la red. Si es un grupo de redes [G] aparece un guion.
- Columna Rate: La velocidad máxima de la red (11, 22, 54….).
- Columna SignalGraph: La intensidad de la señal en modo gráfico. No está soportado por todas las tarjetas.
- Columna Nse: El ruido detectado en esa red. Tampoco esta soportado por todos los chipsets.
- Columna Packets: El número de paquetes capturadados.
- Columna Flags: Nos informará trás el analisis de los paquetes con diversos valores de banderas el tipo de clase de red que estamos investigando. Para ello nos mostrará valores por ejemplo como T3 en caso de tratarse de tráfico TCP , U3 en caso de tratarse de tráfico UDP, A3 en caso de tratarse de tráfico ARP, D si es tráfico DHCP, W si es un paquete de datos WEP desencriptados por haber introducido la key en el kismet.conf etc…
- Ip range: Nos dirá el rango IP de la red o dispositivo detectado. Mientras se hace un análisis exhautivo de las tramas detectadas este valor aparecerá con valor 0.0.0.0
- Size: Nos indica el tamaño de los paquetes capturados de cada red.
2.- VENTANA STATUS:
Está en la parte inferior de la pantalla y nos mantiene informados sobre las redes y clientes que va encontrando y otras alertas, así como el estado de la batería.
3.- VENTANA INFO:
Es la que está en el lado derecho y muestra:
- El número total de redes encontradas (Ntwrks)
- El número total de paquetes capturados (Pckets)
- El número de paquetes encriptados capturados (Cryptd)
- El número de paquetes con IVs débiles (Weak)
- El nivel de ruido (Noise)
- El número de paquetes descartados (Discrd)
- El número de paquetes capturados por segundo (Pkts/s)
- El tipo de tarjeta usada (orinoco, prism…)
- El canal en el que está sniffando (Ch:)
- El tiempo que kismet lleva ejecutándose (Elapsd)
Opciones de Kismet:
Podemos interactuar con el programa para obtener más detalles de una red en particular, lo primero es sacar la
ventana de redes del modo Autofit (modo con que se inicia kismet y que hace que vayan apareciendo las redes según va detectando el tráfico en las mismas), y ordernar las redes según nuestros deseos. Presionando la tecla s podemos elegir la opcion de orden que queramos:

En la imagen podemos ver las opciones que tenemos: Pulsando la tecla (a) activamos el modo autofit, (f) las ordena desde la primera red detectada a la última, (l) desde la última a la primera, (b) por el BSSID, (s) por el SSID, (p) por el número de paquetes capturados, (Q) por el nivel de señal, (w) por el tipo de encriptación…. y con la tecla (x) cancelamos.
Comandos o Teclas de Kismet:
Cuando se está ejecutando kismet, podemos usar varias teclas para conseguir mas información. Si no estás seguro de cual es la letra que tenemos que pulsar, la ayuda corresponde a la tecla h:

e Nos muestra los datos de “kismet servers”
z Deja a la vista únicamente la pantalla “Network List”. Si pulsamos de nuevo volvemos a ver las 3 pantallas.
m Inhabilta/habililta los sonidos.
t Marcar/Desmarcar con un * la red seleccionada.
g Agrupa las redes marcadas con la opción anterior (t)
u Desagrupa las redes marcadas con la opción (t).
c Muestra los datos de los clientes de la red actual (MAC, Manuf., paquetes, IP…). Los tipos de clientes son:
T: Equipo transmitiendo al AP.
F: Equipos en la LAN (si se ven es porque el AP es un puente, bridge).
I: Acces Point.
E: Equipo en la WLAN.
L Bloquea la búsqueda al canal de la red seleccionada. Es una opción muy útil para capturar paquetes en un único canal.
H Vuelve al estado normal de búsqueda en todos los canales.
+/- Expandir/Contraer grupo seleccionado.
Ventanas tipo POPUP:
h Muestra la ventana de ayuda. Pero no solo la que sale en la ventana principal sino que tambien hay otras ventanas o popups que tambien tienen ayuda.
n Permite cambiar el nombre de la red seleccionada
i Muestra detallada información acerca de la red seleccionada. Tambien se puede acceder con la tecla intro. Aquí podemos ver información de la red que no veiamos en la pantalla principal, por ejemplo el tipo de encriptación, wep o wpa.
s Ordenar redes
l Muestra el nivel de señal de la red seleccionada, siempre que la tarjeta wireless lo soporte.
d Muestra los paquetes que no están encriptados. En esta ventana podemos usar algunas teclas como (c) para limpiar la pantalla o (p) para pausar el “scroll”
r Muestra un gráfico con el número de paquetes capturados en función del tiempo transcurrido.
a Estadísticas.
p Muestra el tipo de paquetes capturados (beacons, data, probe response…)
f Si tenemos GPS nos situa la red.
w Nos muestra las últimas alertas y la hora a la que tuvieron lugar (son las alertas que se oyen con un sonido y aparecen en la ventana status)
x Cierra ventana popup
q Para salir de cualquier ventana. Con shift+Q cerramos el programa.
Archivos de kismet:
kismet grava los datos automaticamente mientras se está ejecutando. Dependiendo de la versión de Kismet, o de la fuente desde donde lo hayamos instalado, los guardará en un lugar o en otro. Normalmente los guarda en /var/log/Kismet. Para cerrar kismet ya hemos dicho que hay que pulsar Q. Por defecto, kismet genera los 7 archivos siguientes:
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; formato CSV (Comma Separated Value).
xml: Archivo de texto con los datos de las redes detectadas en formato xml.
weak: Paquetes debiles 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 (Cisco Discovery Protocol).
gps: Si tenemos gps, guarda las coordenadas de las redes
Se puede cambiar la variable logtypes en el archivo kismet.conf.