Iguell Weblog

noticias, manuales, review

Guía básica manual funcionamiento del Kismet (Linux)

Posted by iguell en enero 3, 2009

Manual funcionamiento básico del programa mas conocido en la auditoria wireless: Kismet.

Autor: Canido

Es el programa mas completo para la detección de redes inalámbricas en Linux. Esta guía ha sido elaborado por un amigo del foro: “canido“, aunque en este caso editarlo me ha llevado mucho mas tiempo que el manual del Netstumbler, realmente porque muchas cosas ni sabían que existían y me lo he empapado de arriba a abajo, ya que sinceramente me parece esplendido.

1.- ¿Que es Kismet?

Kismet es un programa para Linux que permite detectar redes inalámbricas (WLANs) mediante la utilización de  tarjetas wireless en los estándar 802.11a, 802.11b y 802.11g, vamos en la mayoría de las que se comercializan actualmente.

Tiene varios usos, como:

– Verificar que nuestra red está bien configurada y que puede trabajar en modo monitor.
– Detectar otras redes que pueden causar interferencias a la nuestra.
– También nos sirve para WarDriving, es decir, detectar todos los APs que están a nuestro alrededor.
– Para valorarnos a nosotros mismos, al saber si lo llegamos a usar correctamente, que tenemos ciertas habilidades con linux y somos capaces de compilar programas, de instalar programas y de configurarlos correctamente. Y mas cuando los resultados con poco trabajo son tan agradecidos y refrescantes.

Como vemos los usos son parecidos a los de Netstumbler, sin embargo Kismet tiene algunas ventajas:

– A diferencia de Netstumbler, Kismet muestra información sobre los clientes conectados a la red.
– Kismet nos indica el tipo de protección (WEP, WPA….) sin equivocarse tanto como Netstumbler.
– Kismet funciona con la tarjeta en modo monitor y guarda un archivo con los paquetes capturados. Esto es fundamental.

Además el funcionamiento del Kismet es completamente distinto al Netstumbler. Como ya hemos dicho anteriormente, la tarjeta debe y trabaja solo en modo monitor.

Una aclaración que siempre es confundida, el Netstumbler siempre emite su posición y es altamente detectable, de hecho en modo monitor en Windows, el Netstumbler no detectaría nada, esto es teórico puesto que hay una serie de tarjetas que incumplen quizás con definición en mano, con esta norma, por ejemplo mi Belkin, que además de funcionar con los mismos drivers, sea en modo monitor o en modo normal, si funciona con el Netstumbler con los drivers de wildpackets para modo monitor, pero si inicio la función de modo monitor a través de las librerías del Aeropeek (base del airodump para Windows y del winairodump) no detectaría ninguna señal, por lo tanto podemos afirmar que el Netstumbler no trabaja en modo monitor sino en modo normal.

Sin embargo, con el Kismet la cosa cambia, este programa no obliga a nuestra tarjeta a emitir ninguna señal, sino que trabaja teóricamente en pleno silencio, esto no es del todo cierto ya que como he dicho alguna vez, hay tarjetas en linux que en modo monitor cada cierto tiempo emiten “algo” al exterior, de forma que si son detectadas. Por lo tanto si nuestra tarjeta no acepta el modo monitor en linux, Kismet no funcionara. El Kismet se puede instalar de muchas maneras y en función de la distribución usada, por lo tanto es responsabilidad de cada uno leer los readme que acompañan a todas las aplicaciones de linux. Solo citare que muchas veces y siempre antes de ejecutar el programa, es necesario editar el fichero Kismet.conf. Esta configuración depende de la tarjeta utilizada entre otras cosas, como el abanico de posibilidades es muy grande, no podemos realizar una súper guía con todo tipo de instalación, los que conocéis un poquito linux ya sabéis como funciona este mundo, el cual es mas abierto  que no el mundo de Windows, donde todos hacemos los mismos pasos, en linux ya sabemos, es bien diferente, y eso lo hace atractivo a la vez que un poquito y solo un poquito mas complicado. Solo comentaremos algunos aspectos fundamentales a la hora de ejecutarlo, de instalarlo y de configurarlo.

De todas formas, si tenéis problema con la instalación y configuración del Kismet para cierta tarjeta en particular y ciertas distribuciones GNU/Linux en general, no dudéis en buscarlo (porque seguro ya estará mas que explicado) o preguntarlo en el foro wireless, donde se os ayudara gustosamente.

2.- ¿De donde lo descargamos?

http://www.kismetwireless.net/

O si tenemos una distro basada en debian y conexión a internet:

apt-get install kismet

Si entrar en problemas de dependencias y de repositorios y de instalaciones mal efectuadas. Recordad de leer la información de cada plataforma, y aunque me repita, si tenéis problema y dudas , ya sabéis donde estamos.

3.- Requisitos mínimos

Es necesario tener un S.O. Linux y que la tarjeta wireless que utilicemos tenga soporte para modo monitor. En la mayoría de Lives-CD como Auditor, Whax, Troppix o Backtrack ya viene incluido y solo es necesario escribir en una consola kismet para arrancarlo.

Los que lo queráis instalar en una distro de Linux en la que no venga incluido, podéis obtener información sobre el proceso de instalación en http://www.kismetwireless.net/

4.- Configurando kismet

En ciertos casos al ejecutarlo no se configura automáticamente por lo que tenemos dos alternativas:

1.- Indicarle la tarjeta que vamos a utilizar con el siguiente comando:

kismet -c [driver,interface,nombre]

driver es el nombre del driver (madwifi_g, rt2500, hostap…)

interface es el nombre de nuestra interface (ath0, ra0, wlan0…) que estamos utilizando

nombre podemos poner el nombre de la tarjeta (atheros, ralink, prism….). Pero no es obligatorio, es decir podemos poner el texto que queramos, pero es lo mas normal asociarlo a la tarjeta con la cual queremos trabajar, si bien yo personalmente siempre pongo “condor” ya que me fascina esta ave.

En este proceso no solo lo configuramos sino que a la par lo ejecutamos.

Por ejemplo para un ralink USB quedaría:

kismet -c rt2500,rausb0,ralink

Para una ralink PCI quedaría:

kismet -c rt2500,ra0,ralink

Para una atheros quedaría:

kismet -c madwifi_g,ath0,atheros

Nota:  Este proceso solo es temporal, y efectivo para cada ejecución de programa.

2.- Editar y configurar directamente el fichero Kismet.conf

Para poner en marcha kismet (o sea ejecutarlo), previamente deberemos configurar la aplicación en el fichero kismet.conf.

Habitualmente, se suele encontrar en el directorio /etc/kismet/ o /etc/. Aunque recuerdo que el Mandriva no lo ponía en ese lugar y era mas especifico.

Pero hay un método mas infalible, para no tener que recordar siempre la ruta de todas las cosas, y es ejecutar el siguiente comando, muy útil a la par que olvidado.

find /  -name ‘kismet.conf’

Así se os listara el lugar donde este ubicado. Este comando habitualmente se ejecuta en una shell (consola) y a ser posible como root, y además recordarlo siempre y evitareis hacer la pregunta mas repetida en el foro wireless,

¿me he descargado un fichero en linux via wget, donde se encuentra ubicado?

Pues sea el fichero que sea, si no lo encontráis, pero si conocéis, obviamente el nombre del mismo, entonces usar lo siguiente:

find /  -name ‘nombre’

¿Y si no recordamos el nombre? Haz crucigramas para ejercitar la memoria.

Como le hemos indicado el directorio raíz mediante “/”, nos listara todos los sitios, donde lo encuentre. Podemos sustituir el directorio raíz por cualquier otro directorio, pero lo mejor es poner el principal. Solo añadir que, también es valido poner comodines, por ejemplo hubiera bastado con:

find /  -name ‘kismet.*’ o también find /  -name ‘kismet*’

Lo podeis abrir usando vuestro 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… Recordar que el editor trabaje siempre como root, por si un caso luego tenemos problemas al grabar el fichero ya editado. Sobre todo en Mandriva.

Para el caso puntual de una configuración usando ralink USB:

source=rt2500,rausb0,Ralink_usb

Para el caso puntual de una configuración usando ralink PCI:

source=rt2500,ra0,Ralink_pci

Y para una atheros:

source=madwifi_g,ath0,condor

Si miráis en zonas próximas al final de este fichero, una vez que ya lo estáis editando, podeis encontrar información muy interesante al respecto.

Si os fijáis en esta línea (source), es muy similar (por no decir igual) al primer proceso explicado anteriormente para configurar y ejecutar a la misma vez. Solo que en esta solo se configura y queda grabada dicha información de configuración.

No os olvidéis de quitarle la # que puede aparecer al principio de la línea y guardar el archivo. Si no se interpretara como un comentario y el programa dará un error al ejecutarlo.

¿Que mas cosas 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 usser:pepito debería de poner en el kismet.conf:

suiduser=pepito

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:

wepkey=bssid,HEXkey

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.

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.

Hay muchas otras opciones que podríamos tocar, pero por ahora tenemos lo básico como para arrancar el kismet.

Nota:  Este proceso es permanente y efectivo para todas las ejecuciones del programa.

5.- Ejecutando Kismet

Si está bien configurado el kismet.conf escribiendo kismet en la línea de comando. En ciertos casos puede ser necesario tener la tarjeta en modo monitor, así que acordaros de:

iwconfig <interface> mode monitor;kismet

O primero:

iwconfig <interface> mode monitor

Y después:

kismet

También podemos ejecutarlo según lo explicado en el anterior apartado:

kismet -c [driver,interface,nombre]

Recordad que ciertas distribuciones requiere que se ejecute como root, y en lagunas como usser.

Y muchas veces, incluso ciertas distribuciones, no dejan ejecutar el Kismet correctamente, si se parte de la base de que la tarjeta no este en modo no monitor. Probarlo, ejecutáis el Kismet, saléis de el, y volvéis a ejecutarlo. En ese caso:

iwconfig <interface> mode managed;kismet

Y en algunas ocasiones me he encontrado, que para que la tarjeta puede trabajar d forma normal una vez hemos salido del Kismet, es decir autentificado a una red wireless, debo antes de deshabilitar la tarjeta y luego habilitarla, sino se dicha tarjeta, se queda recorriendo todos los canales sin autentificarse al que le hemos indicado. Son rarezas que no son de lo mas normal, casos como estos, son los que podemos analizar, matizar y explicar en el foro.

Para deshabilitar:

ifconfig <interface> down

Para habilitar:

ifconfig <interface> up

Donde <interface> puede corresponder a eth0, wlan0, rausb0, ra0, ath0, etc………

Aquí podeis ver la lista de chipsets compatibles, en el punto “12. Capture Sources” de la documentación en ingles del kismet:

http://www.kismetwireless.net/documentation.shtml

6.- Pantalla principal

Al arrancar el Kismet nos aparece una pantalla como esta:

Podeis ver que canido a estado escaneando el foro y ha encontrado las redes wireless de los moderadores. Esto se merece un baneo directo. xxxDDDDDDDDDD

La foto corresponde a la versión 2005-08-R1 del Kismet que viene incluida en el Live-CD Backtrack. En otras versiones, puede haber alguna pequeña diferencia en la pantalla de Network List. En esta página podeis ver diversas capturas de pantalla de versiones de Kismet anteriores:

http://www.kismetwireless.net/screenshot.shtml

Como vemos la interfaz de Kismet consta de 3 pantallas (y varias ventanas del tipo popup). La ventana principal “Network list” es donde aparecerán 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 últimos eventos, como redes descubiertas, IPS, direcciones MAC, etc.

Veamos las tres ventanas detalladamente:

A.- 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 de la red detectada. Al lado de Name podemos encontrar un signo de exclamación (!) un punto (.) o simplemente nada ( ), esto nos indica el tiempo que ha pasado desde que se recibió un paquete en esa red:

(!) Indica actividad detectada en los últimos 3 segundos.
(.) Indica actividad detectada en los últimos 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, y el rojo el propio gateway.

Quisiera añadir que el Kismet puede detectar el nombre o ESSID de una red wireless que este oculta, siempre  que haya clientes autentificados y asociados a la misma, en ese caso el color del ESSID o el nombre de la red será visible y se os mostrara en color azul. Si no hay clientes, al igual que Windows no podeis ver el nombre de la red inalámbrica detectada, la vera, pero no será capaz de determinar su nombre de red (ESSID).

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 ningún AP).

Columna W: Uso de encriptación: [Y] en caso de usar WEP, [N] si es abierta, [O] si usa otro tipo de encriptación.

Columna Ch: El canal en el que opera la red. Si es un grupo de redes [G] aparece un guión.

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

Columna Flags: Nos informará después de haber efectuado el análisis 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 IP, 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.

Ip range: Nos dirá el rango IP de la red o dispositivo detectado. Mientras se hace un análisis exhaustivo 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.

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

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

7.- 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 ordenar las redes según nuestros deseos. Presionando la tecla s podemos elegir la opción 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 ESSID

(p) por el número de paquetes capturados

(Q) por el nivel de señal

(w) por el tipo de encriptación….

(x) cancelamos.

8.- 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: Inhabilita/habilita 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…).

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.

9.- Ventanas tipo POPUP

h: Muestra la ventana de ayuda. Pero no solo la que sale en la ventana principal sino que también hay otras ventanas o popups que también tienen ayuda.

n: Permite cambiar el nombre de la red seleccionada

i: Muestra detallada información acerca de la red seleccionada. también se puede acceder con la tecla intro. Aquí podemos ver información de la red que no veíamos 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 sitúa 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.

10.- Archivos de kismet

Kismet grava los datos automáticamente mientras se está ejecutando. 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 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 (Cisco Discovery Protocol).
gps: Si tenemos gps, guarda las coordenadas de las redes

Se puede cambiar la variable logtypes en el archivo kismet.conf.

Por último, comentar que en el manual de Netstumbler hablamos de Stumbverter  pero este programa no funciona con kismet. Lo que se podría hacer es usar WarGlue (www.lostboxen.net/warglue) o WarKizniz  (www.personalwireless.org/tools/) para convertir los archivos de kismet al formato de Netstumbler y poderlos usar también con Stumbverter.

Como veis el Kismet es un magnifico programa, muy recomendado en la auditoria inalámbrica (wireless).

Sinceramente un magnifico manual elaborado por Canido, y presentado en el foro wireless, he intentado pasarlo a formato web (html), pero en este caso he de reconocer que es mas ameno de leer y vistoso donde el lo publico por primera vez: pinchar aquí.

También os recomiendo leer el manual sobre Netstumbler

Autor: Canido

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: