WiFi_DB Herramienta para Recogida y Análisis Datos de Redes Inalámbricas
WiFi_DB Herramienta para Recogida y Análisis Datos de Redes Inalámbricas

WiFi_DB: Herramienta de Recogida y Análisis de Datos de Redes Inalámbricas

Script para parsear las capturas de Aircrack-ng en una base de datos SQLite y extraer información útil como handshakes (en formato hashcat 22000), identidades MGT, relaciones interesantes entre APs, clientes y sus sondas, información WPS y una vista global de todos los APs vistos.

Una de las características más notables de wifi_db es su capacidad para identificar rápidamente las relaciones entre APs y clientes. También agiliza el proceso de descifrar redes PSK, obtener identidades en redes empresariales y detectar redes almacenadas en dispositivos conectados a redes corporativas que podrían ser vulnerables a ataques.

Características de WiFi_DB

  • Muestra si una red está encubierta (oculta) aunque se tenga el ESSID.
  • Muestra una tabla detallada de los clientes conectados y sus respectivos APs.
  • Identifica las sondas de clientes conectadas a APs, proporcionando una visión de los riesgos potenciales de seguridad utilizando Rogue APs.
  • Extrae handshakes para su uso con hashcat, facilitando el descifrado de contraseñas.
  • Muestra información de identidad de redes empresariales, incluido el método EAP utilizado para la autenticación.
  • Genera un resumen de cada grupo de AP por ESSID y cifrado, dando una visión general del estado de seguridad de las redes cercanas.
  • Proporciona una tabla de información WPS para cada AP, detallando información sobre la configuración Wi-Fi Protected Setup de la red.
  • Registra todos los casos en los que se ha visto un cliente o AP con los datos GPS y la marca de tiempo, lo que permite realizar análisis basados en la ubicación.
  • Carga de archivos con carpeta o archivo de captura. Esta opción admite el uso de comodines (*) para seleccionar varios archivos o carpetas.
  • Versión Docker en Docker Hub para evitar dependencias.
  • Modo ofuscado para demostraciones y conferencias.
  • Posibilidad de añadir datos GPS estáticos.

Instalación de WiFi_DB

Desde DockerHub (RECOMENDADO)

docker pull r4ulcl/wifi_db

Instalación manual

Sistemas basados en Debian (Ubuntu, Kali, Parrot, etc.)

Dependencias:

  • python3
  • python3-pip
  • tshark
  • hcxtools
sudo apt install tshark
sudo apt install python3 python3-pip

git clone https://github.com/ZerBea/hcxtools.git
cd hcxtools
make 
sudo make install
cd ..

Instalación

git clone https://github.com/r4ulcl/wifi_db
cd wifi_db
pip3 install -r requirements.txt 

Arch

Dependencias:

  • python3
  • python3-pip
  • tshark
  • hcxtools
sudo pacman -S wireshark-qt
sudo pacman -S python-pip python

git clone https://github.com/ZerBea/hcxtools.git
cd hcxtools
make 
sudo make install
cd ..

Instalación

git clone https://github.com/r4ulcl/wifi_db
cd wifi_db
pip3 install -r requirements.txt 

Uso de WiFi_DB

Escanear con airodump-ng

Ejecuta airodump-ng guardando la salida con -w:

🤞 ¡No te pierdas ningún truco de seguridad!

¡No enviamos spam! Lee nuestra Política de Privacidad para más información.

sudo airodump-ng wlan0mon -w scan --manufacturer --wps --gpsd

Crear la base de datos SQLite utilizando Docker:

#Carpeta con capturas
CAPTURESFOLDER=/home/user/wifi

# Salida de la base de datos
touch db.SQLITE

docker run -t -v $PWD/db.SQLITE:/db.SQLITE -v $CAPTURESFOLDER:/captures/ r4ulcl/wifi_db
  • -v $PWD/db.SQLITE:/db.SQLITE: Para guardar la salida en la carpeta actual archivo db.SQLITE
  • -v $CAPTURESFOLDER:/captures/: Para compartir la carpeta con las capturas con el docker
Uso de WiFi_DB con docker
Uso de WiFi_DB con docker

Crear la base de datos SQLite mediante instalación manual

Una vez creada la captura, podemos crear la base de datos importando la captura. Para ello ponemos el nombre de la captura sin formato.

python3 wifi_db.py scan-01

En el caso de que tengamos varias capturas podemos cargar directamente la carpeta en la que están. Y con -d podemos renombrar la base de datos de salida.

python3 wifi_db.py -d database.sqlite scan-folder
Ejemplo de uso de WiFi_DB
Ejemplo de uso de WiFi_DB

Abrir base de datos

La base de datos se puede abrir con:

Interfaz de Sqlitebrowser
Interfaz de Sqlitebrowser

A continuación, se muestra un ejemplo de una tabla ProbeClientsConnected.

Tabla de ProbeClientsConnected
Tabla de ProbeClientsConnected

Argumentos:

usage: wifi_db.py [-h] [-v] [--debug] [-o] [-t LAT] [-n LON] [--source [{aircrack-ng,kismet,wigle}]] [-d DATABASE] capture [capture ...]

positional arguments:
  capture               capture folder or file with extensions .csv, .kismet.csv, .kismet.netxml, or .log.csv. If no extension is provided, all types will
                        be added. This option supports the use of wildcards (*) to select multiple files or folders.

options:
  -h, --help            show this help message and exit
  -v, --verbose         increase output verbosity
  --debug               increase output verbosity to debug
  -o, --obfuscated      Obfuscate MAC and BSSID with AA:BB:CC:XX:XX:XX-defghi (WARNING: replace all database)
  -t LAT, --lat LAT     insert a fake lat in the new elements
  -n LON, --lon LON     insert a fake lon in the new elements
  --source [{aircrack-ng,kismet,wigle}]
                        source from capture data (default: aircrack-ng)
  -d DATABASE, --database DATABASE
                        output database, if exist append to the given database (default name: db.SQLITE)

Base de Datos

wifi_db contiene varias tablas para almacenar información relacionada con el tráfico de red inalámbrica capturado por airodump-ng. Las tablas son las siguientes:

  • AP: Esta tabla almacena información sobre los puntos de acceso (AP) detectados durante las capturas, incluyendo su dirección MAC (bssid), nombre de red (ssid), si la red está camuflada (cloaked), fabricante (manuf), canal (channel), frecuencia (frequency), portadora (carrier), tipo de encriptación (encryption), y total de paquetes recibidos desde este AP (packetsTotal). La tabla utiliza la dirección MAC como clave primaria.
  • Client: Esta tabla almacena información sobre los clientes inalámbricos detectados durante las capturas, incluyendo su dirección MAC (mac), nombre de red (ssid), fabricante (manuf), tipo de dispositivo (type) y total de paquetes recibidos de este cliente (packetsTotal). La tabla utiliza la dirección MAC como clave primaria.
  • SeenClient: Esta tabla almacena información sobre los clientes vistos durante las capturas, incluyendo su dirección MAC (mac), hora de detección (time), herramienta utilizada para capturar los datos (tool), intensidad de la señal (signal_rssi), latitud (lat), longitud (lon), altitud (alt). La tabla utiliza la combinación de dirección MAC y hora de detección como clave primaria, y tiene una relación de clave foránea con la tabla Client.
  • Connected: Esta tabla almacena información sobre los clientes inalámbricos que están conectados a un punto de acceso, incluyendo la dirección MAC del punto de acceso (bssid) y del cliente (mac). La tabla utiliza una combinación de direcciones MAC de punto de acceso y cliente como clave primaria, y tiene relaciones de clave foránea con las tablas AP y Client.
  • WPS: Esta tabla almacena información sobre los puntos de acceso que tienen activada la configuración Wi-Fi protegida (WPS), incluida su dirección MAC (bssid), nombre de red (wlan_ssid), versión WPS (wps_version), nombre de dispositivo (wps_device_name), nombre de modelo (wps_model_name), número de modelo (wps_model_number), métodos de configuración (wps_config_methods) y métodos de configuración de teclado (wps_config_methods_keypad). La tabla utiliza la dirección MAC como clave primaria y tiene una relación de clave foránea con la tabla AP.
  • SeenAp: Esta tabla almacena información sobre los puntos de acceso vistos durante las capturas, incluida su dirección MAC (bssid), hora de detección (time), herramienta utilizada para capturar los datos (tool), intensidad de la señal (signal_rssi), latitud (lat), longitud (lon), altitud (alt) y marca de tiempo (bsstimestamp). La tabla utiliza la combinación de la dirección MAC del punto de acceso y la hora de detección como clave primaria, y tiene una relación de clave foránea con la tabla AP.
  • Probe: Esta tabla almacena información sobre las sondas enviadas por los clientes, incluida la dirección MAC del cliente (mac), el nombre de la red (ssid) y la hora de la sonda (time). La tabla utiliza una combinación de la dirección MAC del cliente y el nombre de la red como clave principal, y tiene una relación de clave foránea con la tabla Client.
  • Handshake: Esta tabla almacena información sobre los handshakes capturados durante las capturas, incluyendo la dirección MAC del punto de acceso (bssid), del cliente (mac), el nombre del archivo (file), y el formato hashcat (hashcat). La tabla utiliza una combinación de direcciones MAC del punto de acceso y del cliente, y el nombre del archivo como clave primaria, y tiene relaciones de clave foránea con las tablas AP y Client.
  • Identity: Esta tabla representa las identidades y métodos EAP (Extensible Authentication Protocol) utilizados en la autenticación inalámbrica. Los campos bssid y mac son claves externas que hacen referencia a las tablas AP y Client, respectivamente. Otros campos incluyen la identidad y el método utilizados en el proceso de autenticación.

Vistas

  • ProbeClients: Esta vista selecciona la dirección MAC de la sonda, el fabricante y el tipo del dispositivo cliente, el número total de paquetes transmitidos por el cliente y el SSID de la sonda. Une las tablas Probe y Client en la dirección MAC y ordena los resultados por SSID.
  • ConnectedAP: Esta vista selecciona el BSSID del punto de acceso conectado, el SSID del punto de acceso, la dirección MAC del dispositivo cliente conectado y el fabricante del dispositivo cliente. Une las tablas Connected, AP y Client en el BSSID y la dirección MAC, respectivamente, y ordena los resultados por BSSID.
  • ProbeClientsConnected: Esta vista selecciona el BSSID y el SSID del punto de acceso conectado, la dirección MAC de la sonda, el fabricante y el tipo del dispositivo cliente, el número total de paquetes transmitidos por el cliente y el SSID de la sonda. Une las tablas Probe, Client y ConnectedAP en la dirección MAC de la sonda y filtra los resultados para excluir las sondas que están conectadas al mismo SSID que están sondeando. Los resultados se ordenan por el SSID de la sonda.
  • HandshakeAP: Esta vista selecciona el BSSID del punto de acceso, el SSID del punto de acceso, la dirección MAC del dispositivo cliente que realizó el handshake, el fabricante del dispositivo cliente, el archivo que contiene el handshake y la salida hashcat. Une las tablas Handshake, AP y Client en el BSSID y la dirección MAC, respectivamente, y ordena los resultados por BSSID.
  • HandshakeAPUnique: Esta vista selecciona el BSSID del punto de acceso, el SSID del punto de acceso, la dirección MAC del dispositivo cliente que realizó el handshake, el fabricante del dispositivo cliente, el archivo que contiene el handshake y la salida hashcat. Une las tablas Handshake, AP y Client en el BSSID y la dirección MAC, respectivamente, y filtra los resultados para excluir los handshakes que no fueron crackeados por hashcat. Los resultados se agrupan por SSID y se ordenan por BSSID.
  • IdentityAP: Esta vista selecciona el BSSID del punto de acceso, el SSID del punto de acceso, la dirección MAC del dispositivo cliente que realizó la solicitud de identidad, el fabricante del dispositivo cliente, la cadena de identidad y el método utilizado para la solicitud de identidad. Une las tablas Identity, AP y Client en el BSSID y la dirección MAC, respectivamente, y ordena los resultados por BSSID.
  • SummaryAP: Esta vista selecciona el SSID, el número de puntos de acceso que emiten el SSID, el tipo de cifrado, el fabricante del punto de acceso y si el SSID está oculto. Agrupa los resultados por SSID y los ordena por el recuento de puntos de acceso en orden descendente.

Cada vez que se ejecuta el programa, se añade nueva información a la base de datos, uniéndola a la ya existente. Además, se pueden importar carpetas completas sin necesidad de ir archivo por archivo.

https://github.com/r4ulcl/wifi_db

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda