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