Uso básico de Kismet

  Kismet, al igual que Wireshark y Snort, es un un husmeador de paquetes ("sniffer", en inglés), y un sistema de detección de intrusiones, mas exclusivo para redes inalámbricas 802.11. Este programa  funciona con cualquier tarjeta inalámbrica que soporte el modo de monitorización, y puede rastrear tráfico 802.11b, 802.11a, 802.11g y 802.11n. Puede utilizarse en Linux, FreeBSD, NetBSD, OpenBSD, y Mac OS X. El cliente puede también funcionar en Windows, aunque la única fuente entrante de paquetes compatible es otra sonda.
  Kismet se diferencia de la mayoría de los otros husmeadores de paquetes inalámbricos en su funcionamiento pasivo. Es decir que lo hace sin enviar ningún paquete detectable, permitiendo detectar la presencia de varios puntos de acceso y clientes inalámbricos, asociando unos con otros.
  Además, también incluye características básicas de los sistemas de detección de intrusos como detectar programas de rastreo inalámbricos (incluyendo a NetStumbler), así como también ciertos ataques de red inalámbricos.
  Kismet tiene tres partes diferenciadas:
  •   Sonda: Puede usarse para recoger paquetes, que son enviados a un servidor para su interpretación.
  •   Servidor: Puede o bien ser usado en conjunción con una sonda, o consigo mismo, interpretando los datos de los paquetes, extrapolando la información inalámbrica, y organizándola.
  •   Cliente: Se comunica con el servidor y muestra la información que el servidor recoge.
  Entre los usos más concretos de este programa destacan: 
  •   Verificar que una red concreta está bien configurada y que puede trabajar en modo monitor.
  •   Detectar otras redes que puedan causar interferencias a la red empleada por el usuario.
  •   Buscar de redes inalámbricas Wi-Fi desde un vehículo en movimiento ("WarDriving", en inglés), lo que permite al usuario detectar todos los puntos de acceso inalámbricos que están a su alrededor.
  Kismet posee, entre otras, las siguientes ventajas:
  •   Muestra información sobre los clientes conectados a la red.
  •   Indica al usuario el tipo de protección (WEP, WPA….) con mucha precisión.
  •  Funciona con la tarjeta en modo monitor y guarda un archivo con los paquetes capturados.
  Se debe tener en cuenta que, si bien Kismetno obliga a una tarjeta a emitir ninguna señal, sino que trabaja teóricamente en pleno silencio, esto no es del todo cierto ya que existen tarjetas en Linux que en modo monitor emiten "algo" al exterior cada cierto tiempo, de forma que sí son detectadas.

INSTALACIÓN

  Si no se tiene una distribución Linux de tipo debian, se puede descargar el programa desde el siguiente enlace, o bien clonar el repositorio de Git empleando el comando git clone https://www.kismetwireless.net/git/kismet.git (anteponiendo sudo si no se ha iniciado sesión como usuario administrador).
  En caso contrario, se debe actualizar la lista de paquetes mediante el comando apt-get update (anteponiendo sudo si no se ha iniciado sesión como usuario administrador), actualizar todo lo instalado usando el comando apt-get upgrade (anteponiendo sudo si no se ha iniciado sesión como usuario administrador), e instalar el paquete empleando el comando apt-get install kismet (anteponiendo sudo si no se ha iniciado sesión como usuario administrador).
  Si estas no se han descargado e instalado automáticamente, a continuación se deben descargar e instalar las dependencias necesarias, para lo que se emplearán los siguientes comandos apt-get install build-essential git libmicrohttpd-dev zlib1g-dev libnl-3-dev libnl-genl-3-dev libcap-dev libpcap-dev libncurses5-dev libnm-dev libdw-dev libsqlite3-dev (anteponiendo sudo si no se ha iniciado sesión como usuario administrador).

CONFIGURACIONES PREVIAS

  El archivo de configuración de Kismet es "kismet.conf", y, generalmente, se encuentra en la ruta "/etc/kismet/". Para editarlo, basta con ejecutar el editor de texto que se desee y se encuentre previamente instalado (nano, joe, vimkwrite, etc.) como administrador, y abrir el archivo antes mencionado (no es obligatorio realizar los cambios descritos a continuación, pero sí conveniente).
  Una de las primeras líneas que se deben buscar es la que comienza por ncsource=, puesto que es en esta donde se puede asignar permanentemente una tarjeta de red al programa, y así no tener que indicársela cada vez que se inicie este. Para designar una tarjeta de red al programa se debe utilizar la siguiente estructura de valores tras el parámetro (al que previamente habrá que quitarle la # del inicio de la línea para descomentarla):
<tarjeta de red>:<opción 1>,<opción 2>...

    El valor tarjeta de red es obligatorio, y hace referencia a la denominación de la tarjeta de red (ath0, ra0, wlan0…), que se empleará con el programa; esta tarjeta de red deberá ser inalámbrica y compatible con el modo monitor. Entre las opciones más relevantes se encuentran:
  •   Controlador: Se trata del nombre del controlador ("driver", en inglés) de la tarjeta de red (madwifi_g, rt2500, hostap…). Se emplea con el parámetro type=. No es un valor obligatorio, pero sí recomendable.
  •   Nombre: Denominación que se desee poner a la conexión. Lo habitual es poner un nombre relacionado con la tarjeta (como su marca o modelo). Se utiliza con el parámetro name=. Este valor no es obligatorio, pero sí recomendable.
  •   Canal:  Permite elegir el canal en el que Kismet husmeará. Se usa con el parámetro channel=, pero no es obligatorio.
  •   Alternancia: Es un valor booleano que permite al usuario modificar el modo en el que este programa husmeará en los canales; si su valor es verdadero ("true"), el programa alternará los canales y buscará en todos los disponibles; si su valor es falso ("false") el programa sólo husmeará en el canal que se le especifique. Se utiliza mediante el parámetro hop=. No es un valor obligatorio.
  Por ejemplo, si la tarjeta de red fuera una "Ralink PCI", la línea quedaría del siguiente modo: ncsource=ra0:rtype=t2500,name=Ralink_pci.

  Otra línea interesante del archivo "kismet.conf" es la de suiduser=, en la que se puede definir al usuario que puede emplear el programa sin tener que ser administrador. Establecer este parámetro correctamente permite evitar que el programa no arranque por no coincidir el nombre del usuario con el valor del mismo.
  El parámetro wepkey= permite al usuario ver los paquetes desencriptados de una red determinada. No obstante, se deben conocer primero el BSSID de la red (obtenido a partir de la MAC) y su clave WEP (en hexadecimal), puesto que estos son los valores que se deben añadir al parámetro del siguiente modo: <BSSID><clave WEP>.
  En el parámetro logprefix= se puede determinar la ruta del directorio donde se guardarán las capturas.  
  Por último,  el parámetro channel velocity=, como su nombre indica, modifica el número de veces que este programa forzará la tarjeta de red para husmear diferentes canales en un segundo (el valor predeterminado es "5"). Se aumentará o disminuirá el valor numérico según la necesidad del usuario de husmear más o menos canales por segundo respectivamente.
  Hay que guardar los cambios en el archivo para que estos permanezcan.
  Por último, como no es recomendable utilizar el programa como administrador (aunque en algunas distribuciones es obligatorio), es mejor unir el usuario al grupo kismet mediante el comando usermod -a -G kismet $USER (anteponiendo sudo si no se ha iniciado sesión como usuario administrador).

INICIANDO EL PROGRAMA

  Desde una terminal, se ejecutará el comando kismet (si se tiene todo configurado en el archivo correspondiente), kismet -c <[controlador],tarjeta de red,[nombre]> (si no es así) o kismet_client -c <tarjeta de red> (en versiones más actuales del programa).
  Aparecerá la pantalla principal con una ventana emergente ("Terminal colors"), donde hay que responder "Yes" (seleccionándolo si no lo está, con el botón del tabulador, y pulsando sobre la barra espaciadora).
  Acto seguido aparecerá una nueva ventana emergente, "Start Kismet Server", en la que se debe responder "Yes" también.
 
  A continuación, la ventana "Start Kismet Server" cambiará, y se deberá seleccionar la opción "Start" y activar el servidor.

  Por último, en la ventana emergente "Kismet Server Console" se debe seleccionar la opción "Close Console Window" y pulsar la barra espaciadora (o el botón de entrada).

 

PANTALLA PRINCIPAL

  En esta pantalla puede verse el menú principal, compuesto por "Kismet", "Sort", "View" y "Windows". Así como varias ventanas ("Network List", "Status" y "General Info" son las más relevantes).

 
Menú Kismet
  Contiene las opciones genéricas del programa tales como iniciar el servidor, acceder a la consola del servidor, conectar y desconectar el servidor (aunque la primera opción suele estar apagada porque el servidor se suele conectar al iniciar Kismet), añadir fuentes, configurar canal, complementos, preferencias y salir del programa. A la izquierda del menú pueden verse las teclas de los atajos de teclado referentes a las opciones del mismo.

Menú Sort
  Organiza las redes mostradas según el orden solicitado. Cuando se hace, se desactiva el modo "auto-fit" (modo predeterminado del programa que hace que vayan apareciendo las redes según va detectando el tráfico en las mismas), que es la primera opción de este menú. Seguidamente, se puede escoger cualquiera de las opciones para organizar las redes que se vean en la ventana "Network list": "Type" para el tipo, "Channel" para el canal, "Encryption" para la encriptación, "First Seen" para hacerlo desde la primera red detectada en adelante, "First Seen (descending)" para hacerlo desde la primera red detectada hacia atrás, "Last Seen" para ordenarlas desde la última red hacia atrás, "Last Seen (descending)" para organizarlas en orden descendente hasta la última red detectada, "BSSID", para ordenarlas por su identificador BSSID, "SSID" para organizarlas por su nombre de red, "Signal" para hacerlo según la potencia de la señal, "Packets" para hacerlo según el número de paquetes capturados, y "Packets (descending)" para hacerlo por el número de paquetes capturados en orden descendente. A la izquierda del menú pueden verse las teclas de los atajos de teclado referentes a las opciones del mismo.

Menú View
  Muestra y/u oculta las diferentes ventanas que se pueden ver en la primera pantalla. Las ventanas visibles tienen un símbolo "x" a su izquierda. Se pueden mostrar u ocultar las siguientes ventanas: "Network List", "Client list" (lista de clientes del programa), "GPS Data" (datos del GPS), "Battery" (nivel de la batería), "General Info", "Status", "Packet Graph" (gráfico del tráfico de paquetes), y "Source Info" (información sobre la tarjeta de red con la que actúa Kismet). A la izquierda del menú pueden verse las teclas de los atajos de teclado referentes a las opciones del mismo.

Menú Windows
  Navega hasta otras ventanas (normalmente emergentes) del programa, permitiendo al usuario cambiar el modo de visualización para ver más datos de una red concreta o ver la carga que soporta cada canal entre otra información. Sus opciones son: "Network Details..." (detalles de la red), "Client List..." (lista de clientes de la red), "Network Note..." (añade un comentario a la red y muestra los comentarios que tenga), "Cannel Details..." (detalles del canal), "GPS Details..." (detalles del GPS), "Alerts..." (alertas). A la izquierda del menú pueden verse las teclas de los atajos de teclado referentes a las opciones del mismo.

Ventana Network List
    Es  la ventana central, donde aparecerán las diversas redes que se pueden llegar a ver. Se divide en varias columnas, las cuales informarán al usuario, según vaya capturando redes, con diversa información:
  •  Name: ESSID o nombre de la red detectada. Al lado de cada nombre se puede encontrar algún símbolo que indica el tiempo que ha pasado desde que se recibió un paquete en esa red [signo de exclamación ("!"; últimos 3 segundos) un punto ("."; últimos 6 segundos)] o simplemente nada (no hay actividad).
  •  C: Indica el número de clientes detectados en esa red o grupo de redes.
  •  T: Indica el modo de funcionamiento del dispositivo inalámbrico detectado. Dicha bandera, nos ofrecerá diferentes valores como "A" si es un punto de acceso ["acces point" ("AP"), en inglés], "H" si esta en modo ad-hoc, "G" si es un grupo de redes inalámbricas o "P" si es un dispositivo en modo "probe request" (tarjeta wifi que no está conectada a ningún AP).
  •   Ch: Canal en el que opera la red. Si es un grupo de redes, aparece un guión.
  •   Pkts: Número de paquetes capturados.
  •   Size: Indica el tamaño de los paquetes capturados de cada red.
  •   BSSID: Identificador único de todos los paquetes de una red inalámbrica para identificarlos como parte de esa red (aparece cuando se selecciona la red con el modo auto-fit detenido).
  Por otra parte, el esquema de colores de las redes también muestra información acerca de las mismas al usuario. Pueden verse cuatro colores significativos:
  •   Verde: Indica encriptación.
  •   Amarillo: Indica que no hay encriptación.
  •   Rojo: Indica que es una puerta de enlace.
  •   Azul: Indica que esa red está oculta. Sólo aparecerá el nombre de la red si hay clientes autentificados y asociados a la misma, en caso contrario, Kismet la vera, pero no será capaz de determinar su nombre de red, por lo que éste no se verá.

Ventana Status
  Situada en la parte inferior de la pantalla, muestra información acerca de las redes y clientes que va encontrando y otras alertas, así como el estado de la batería (si procede).

Ventana General Info
  Se encuentra a la derecha de la pantalla. Suele mostrar la siguiente información:
  •   Elapsed: Tiempo que se lleva ejecutando el programa.
  •   Networks: Número total de redes encontradas.
  •   Packets: Número total de paquetes capturados.
  •   Pkt/Sec: Número de paquetes capturados por segundo.
  •   Filtered: Número de paquetes filtrados.


OTRAS PANTALLAS RELEVANTES

Network Details
  Muestra detalladamente las características de la red seleccionada. Predeterminadamente puede verse la lista de dichas características y el gráfico del ritmo del tráfico de paquetes.
  Posee un menú con dos entradas:
  •    Network: Donde se encuentran las opciones básicas de la ventana. Sus entradas son: "Network Note..." (añadir una nota a la red), "Next network" (siguiente red de la lista principal), "Prev network" (red anterior en la lista principal), "Close window" (cierra la ventana). A la izquierda del menú pueden verse las teclas de los atajos de teclado referentes a las opciones del mismo.
  •   View: Opciones de los campos que muestra la ventana y acceso a otras ventanas relacionadas. Existen las siguientes: "Network Details" (lista de las características de la red), "Clients" (accede a la ventana de la lista de clientes), "Signal level" (muestra un gráfico de la fuerza de señal de la red), "Packet Rate" (muestra un gráfico del ritmo del tráfico de paquetes), "Retry Rate" (muestra los detalles y un gráfico de los paquetes capturados hasta ese momento y reinicia la captura de paquetes). Por defecto muestra la lista de clientes de la red. A la izquierda del menú pueden verse las teclas de los atajos de teclado referentes a las opciones del mismo.


Client List
  Permite al usuario ver más información sobre cada cliente en tiempo real. Puede accederse desde el menú principal (ruta "Windows > Client List..."), o desde el menú de la ventana "Network Details" (ruta "View > Clients"). En esta pantalla hay un menú con las siguientes opciones:
  •   Clients: Muestra las opciones básicas de los clientes de una red. Sus opciones son: "Next network" (cambia a la siguiente red), "Prev network" (cambia a  la red  anterior), "Preferences" (administra las preferencias de las columnas de los clientes y de sus extras), "Close window" (sale de esta ventana). A la izquierda del menú pueden verse las teclas de los atajos de teclado referentes a las opciones del mismo.
  •   Sort: Organiza la información de los clientes según el orden solicitado y activa/desactiva el auto-fit. La primera opción es para activar y/o desactivar el "auto-fit", después se encuentran las opciones en las que se pueden organizar las redes clientes detectadas: "Client type" (nombre del cliente), "First Seen" (desde la primera red detectada en adelante), "First Seen (descending)" (desde la primera red detectada hacia atrás), "Latest Seen" (desde la última red hacia atrás), "Last Seen (descending)" (orden descendente hasta la última red detectada), "Signal" (potencia de la señal), "MAC" (dirección MAC), "Packets" (número de paquetes capturados), y "Packets (descending)" (número de paquetes capturados en orden descendente). A la izquierda del menú pueden verse las teclas de los atajos de teclado referentes a las opciones del mismo.
  •   Windows: Navega hasta otras ventanas para interactuar con la red cliente. Posee las siguientes opciones: "Add Note..." (agrega un comentario a la red cliente), "Client details..." (accede a la ventana de detalles del cliente seleccionado). A la izquierda del menú pueden verse las teclas de los atajos de teclado referentes a las opciones del mismo.

  Al salir, aparece una ventana emergente que preguntará (básicamente), si se quiere detener el servidor definitivamente o si se desea dejarlo en segundo plano. Si se ha terminado de utilizar el programa para lo que se necesite de él, lo mejor es parar el servidor de todo (opción "Kill").

  Sin embargo, se debe tener cuidado cuando se cierra el programa, ya que no siempre devuelve la interfaz de red a su estado original, es decir, la deja en modo monitor. Para devolver la tarjeta de red a su función principal se debe reiniciar la propia tarjeta de red [comando  
ip link set <nombre de dispositivo de red> down (anteponiendo sudo si no se ha iniciado sesión como usuario administrador) para desactivarla e ip link set <nombre de dispositivo de red> up (anteponiendo sudo si no se ha iniciado sesión como usuario administrador) para reactivarla]; también es válido reiniciar el servicio de red [comando systemctl restart networking.service (anteponiendo sudo si no se ha iniciado sesión como usuario administrador)], o reiniciar el sistema operativo.

TECLAS BÁSICAS

  Dado que este programa se ejecuta desde terminal carece de puntero, por lo que el teclado es el único modo de interactuar con él. Como se ha visto, cada menú tiene sus correspondientes atajos de teclado, no obstante, hay teclas que funcionan del mismo modo en cualquier ventana del programa. Las más importantes son:
  •   Tabulador: Sirve para seleccionar una entre diferentes opciones.
  •   Barra espaciadora: Marca o desmarca opciones con recuadros; también da entrada a una opción seleccionada (especialmente en los menús).
  •   Flechas de dirección: Cambiar de opción en cualquier dirección.
  •   Entrar:  Da entrada a una opción seleccionada.
  •   +/-:  Si se utiliza seleccionando una opción agrupada, expande (+) o contrae (-) el grupo. Cuando se utiliza en ciertas ventanas emergentes (suelen indicar que existe esta opción), reorganiza las opciones en dicha ventana ("+" baja un puesto de la opción seleccionada en la lista, "-" sube un puesto de la opción seleccionada en la lista).
  Asimismo, los atajos de teclado más relevantes son:
  •   Alt Gr + ~: Entra en el menú de la ventana.
  •   Alt + <tecla  alfanumérica>:  Entra en el menú de la ventana.
  •   Escape + <teclas de dirección>: Selecciona  o deselecciona una de las opciones principales del menú de la ventana.

ARCHIVOS DE SALIDA

  Kismet graba los datos automáticamente mientras se está ejecutando, generando archivos de los siguientes tipos:
  •   ALERT: Contiene todo lo que el programa considera extraño. Puede verse su contenido con cualquier editor de texto.
  •   GPSXML: Si se tiene activo un GPS, guarda las coordenadas de las redes. Puede verse su contenido con cualquier editor de texto.
  •   NETTXT: Registro con información detallada sobre las redes escaneadas. Puede verse su contenido con cualquier editor de texto.
  •   NETXML: Contiene la misma información que el fichero anterior, solo que en formato XML. Puede verse su contenido con cualquier editor de texto.
  •   PCAPDUMP: Archivo de volcado de memoria que contiene el volcado de todo lo que Kismet pudo husmear. Este fichero de captura puede ser abierto por cualquier analizador de tráfico (TCPDump, Wireshark, Cain&Abel, etc...), y por programas como Aircrack-ng.
  Estos archivos se guardan en el lugar desde donde se lanza el programa si antes no se configura una ruta alternativa en el archivo "kismet.conf".


  Aguardo que la presente entrada haya sido interesante para el lector. Si es así, espero que éste la comente y/o la comparta, por favor.

No hay comentarios:

Publicar un comentario

Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.