Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Preferred-Network-List-Sniffer — Una herramienta de reconocimiento para capturar y mostrar SSIDs de la Lista de Redes Preferidas del dispositivo. | Kitploit
Herramientas/GitHubGitHub/aleksamcode/preferred-network-list-sniffer
Sniffing y Análisis de PaquetesReconocimientoAuditoría Wi-FiRecopilación de InformaciónSeguridad InalámbricaRed Teaming
GitHubaleksamcode/preferred-network-list-sniffer

Preferred-Network-List-Sniffer

Una herramienta de reconocimiento para capturar y mostrar SSIDs de la Lista de Redes Preferidas del dispositivo.

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
1759hace 7 mesesRevisado por Kitploit

Sniffer de Lista de Redes Preferidas - PNLS

License: MIT

Sniffer de Lista de Redes Preferidas (PNLS) es una herramienta de auditoría Wi-Fi para Red Team con una interfaz web simple, capaz de interceptar SSID1 de la lista de redes preferidas (PNL)2 del dispositivo. Esto se logra mediante la captura de Solicitudes de Sonda en las cercanías, que luego se analizan para obtener el SSID y otra información, y finalmente se propagan a la interfaz web. La motivación principal de este proyecto fue investigar las Solicitudes de Sonda 802.11 y los riesgos de privacidad asociados con los datos que transmiten.

Vista general del sistema PNLS

Fig. 1: Vista general del sistema PNLS

[!WARNING] Todo el contenido de este proyecto está destinado únicamente a fines de investigación en seguridad.

[!NOTE]

  • Este proyecto es parte de mi investigación en curso sobre Protección de la Privacidad en Redes Wi-Fi.

    • Presentación del alcance del trabajo
  • Para monitorear el trabajo en curso en PNLS, consulte el tablero del proyecto.

Tabla de contenidos

  • Sniffer de Lista de Redes Preferidas - PNLS
    • Tabla de contenidos
    • Cómo construir el PNLS
      • Requisitos
      • Prerrequisitos
    • Configuración
      • Usando Docker
      • Usando Imagen Docker Preconstruida
      • Sin Docker
    • Solicitudes de Sonda
    • Filtrado de SSID
    • Arquitectura
      • ¿Por qué Interfaz de Puerta de Enlace de Servidor Asíncrono?
      • ¿Por qué WebSockets?
      • Modelo Pub-Sub
    • Capturas de pantalla
    • Acrónimos
    • Referencias

Cómo construir el PNLS

Esto es lo que necesitará para duplicar e implementar este proyecto, incluidos los componentes de hardware y software. Una vez que tenga su entorno de trabajo listo, diríjase a las secciones de configuración.

Requisitos

  • Raspberry Pi (RPi)
  • Fuente de alimentación adecuada para RPi (consulte la documentación de la fuente de alimentación para más detalles)
  • Tarjeta Micro SD (consulte la documentación de la tarjeta SD para más detalles)
  • Adaptador Wi-Fi USB (opcional)
    • Se utiliza para lograr un mayor alcance al capturar paquetes.
  • Cable HDMI (opcional)
    • Se utiliza para mostrar la interfaz web desde la RPi en lugar de conectarse de forma remota usando su computadora.

Prerrequisitos

  • Sistema operativo Kali Linux
    • Necesario para usar el modo monitor y la herramienta aircrack-ng. Puede descargar la imagen ARM de Kali Linux desde aquí.
      • Alternativamente, podría usar otro sistema operativo, pero necesitará parchear3 el kernel usando nexmon4 o usar un adaptador inalámbrico que soporte el modo monitor. Aquí hay un enlace para adaptadores USB compatibles con Raspberry Pi.
      • También deberá instalar la herramienta aircrack-ng, ya que solo viene preinstalada en Kali Linux.
  • Inicie su interfaz de red en modo monitor con: sudo airmon-ng start wlan0 [2].

[!NOTE]

La imagen de Kali utiliza el kernel de Re4son, que incluye los controladores para tarjetas Wi-Fi externas y el firmware Nexmon para la tarjeta inalámbrica incorporada en RPi 3 y 4 [3].

Dispositivo PNLS RPi 4

Fig. 2: PNLS ejecutándose en una RPi 4 con una antena externa y un banco de baterías

Dispositivo PNLS RPi 4 AWUS036ACS

Fig. 3: PNLS ejecutándose en una RPi 4 con una carcasa y una antena AWUS036ACS

Dispositivo PNLS RPi 4 AWUS036ACM

Fig. 4: PNLS ejecutándose en una RPi 4 con una antena AWUS036ACM

Configuración

Si no desea usar Docker, diríjase a la configuración sin Docker.

Usando Docker

Configure rápidamente una instancia de desarrollo:

root@kitploit:~
# Primero clone este repositorio.
git clone https://github.com/AleksaMCode/Preferred-Network-List-Sniffer.git
# Muévase a la carpeta raíz del proyecto.
cd Preferred-Network-List-Sniffer
# Construya la imagen del backend y del frontend.
docker compose build
# Inicie tanto el backend como el frontend.
docker compose up
# Muévase a la carpeta del sniffer.
cd sniffer
# Ejecute el servicio Sniffer.
sudo python3 sniffer.py

Usando Imagen Docker Preconstruida

Actualmente, no hay imágenes multi-plataforma disponibles, y el proyecto solo soporta la arquitectura ARM64v8. Descargue las últimas imágenes preconstruidas desde el Registro de Contenedores de GitHub y ejecútelas localmente.

root@kitploit:~
# Primero clone este repositorio.
git clone https://github.com/AleksaMCode/Preferred-Network-List-Sniffer.git
# Muévase a la carpeta raíz del proyecto.
cd Preferred-Network-List-Sniffer
# Descargue las imágenes preconstruidas.
docker pull ghcr.io/aleksamcode/pnls-backend-ghcr:latest
docker pull ghcr.io/aleksamcode/pnls-frontend-ghcr:latest
# Inicie tanto el backend como el frontend.
docker compose up
# Muévase a la carpeta del sniffer.
cd sniffer
# Ejecute el servicio Sniffer.
sudo python3 sniffer.py

Sin Docker

  • Backend: para iniciar los servidores ASGI y Redis y ejecutar los servicios necesarios, consulte estas instrucciones.

  • Frontend: para ejecutar el servidor React, consulte estas instrucciones.

Aquí hay una captura de pantalla cuando todo se ejecutó "manualmente":

  • Arriba a la izquierda: servidor Redis
  • Arriba a la derecha: servidor ASGI
  • Abajo a la izquierda: servicio Sniffer
  • Abajo a la derecha: servidor React

Captura de pantalla PNLS Kali

Fig. 5: Captura de pantalla de PNLS

Solicitudes de Sonda

Las Solicitudes de Sonda son tramas de gestión 802.11 que se utilizan para conectar dispositivos a Puntos de Acceso (AP) inalámbricos previamente asociados. Cada vez que un dispositivo tiene el Wi-Fi habilitado pero no está conectado a una red, envía periódicamente una ráfaga de Solicitudes de Sonda que contienen SSID de su PNL. Estas tramas se envían sin cifrar, y cualquier persona que esté monitoreando Radio Frecuencia (RF) puede capturarlas y leerlas. Las sondas se envían a la dirección de difusión DA (ff:ff:ff:ff:ff:ff). Una vez enviadas, el dispositivo inicia el Temporizador de Sonda. Al finalizar el temporizador, el dispositivo procesa la respuesta recibida. Si el dispositivo no ha recibido respuesta, pasará al siguiente canal y repetirá el proceso. Hay dos tipos de Solicitudes de Sonda:

  • Solicitudes de Sonda Dirigidas: utilizando un SSID específico de la PNL del dispositivo

  • Solicitudes de Sonda Nulas: utilizando un SSID Comodín (SSID vacío)

    • Las Solicitudes en Blanco se envían para obtener una respuesta de todos los AP disponibles que estén al alcance.

    • Además de filtrar las tramas de Solicitud de Sonda 802.11 de todos los paquetes capturados, el Sniffer también filtrará los SSID comodín.

Filtrado de SSID

Al capturar Solicitudes de Sonda en lugares donde hay una gran red local con muchos clientes Wi-Fi, PNLS inevitablemente capturará muchas Solicitudes de Sonda que contienen el SSID de dicha red. El filtrado de tales SSID puede ser ventajoso, ya que no tienen valor para nosotros y pueden provocar un aumento en la carga del socket. Filtrar estos SSID no solo reducirá la carga en las conexiones de socket, sino que también evitará el spam de los SSID mencionados en la interfaz web.

Al usar esta función, deberá realizar pequeños ajustes en el código fuente. Concretamente, deberá actualizar la lista SSID_FILTER en el archivo settings.py con el valor que desea que el Sniffer ignore. Una vez actualizado, reconstruya el proyecto e inicie PNLS.

Arquitectura

Este proyecto utiliza una arquitectura basada en eventos (EDA), diseñada sobre arquitecturas basadas en mensajes. Si bien este proyecto utiliza una solución centralizada (todo se ejecuta desde la RPi), debido a componentes débilmente acoplados como resultado del uso de EDA, es posible crear una solución descentralizada si es necesario. PNLS consta de un publicador de eventos (sniffer), un consumidor de eventos (aplicación web) y un canal de eventos. Aquí, el canal de eventos se implementa como Middleware Orientado a Mensajes (MOM).

Diagrama de despliegue del sistema PNLS

Fig. 6: Diagrama de despliegue del sistema PNLS

¿Por qué Interfaz de Puerta de Enlace de Servidor Asíncrono?

La Interfaz de Puerta de Enlace de Servidor Asíncrono (ASGI) proporciona una interfaz estandarizada entre servidores web Python con capacidad asíncrona y servicios [4]. Se eligió ASGI debido a la necesidad del proyecto de una conexión WebSocket de larga duración para facilitar las comunicaciones asíncronas entre diferentes clientes. Además, también permite la utilización de corrutinas en segundo plano durante las llamadas API. PNLS utiliza la implementación uvicorn para Python con el fin de usar el servidor web ASGI.

¿Por qué WebSockets?

Mediante el uso del protocolo de comunicación WebSocket, podemos facilitar la comunicación bidireccional full-duplex. Si bien este proyecto no necesita comunicación bidireccional, sí necesita interacción en tiempo real entre los componentes del sistema. De esta manera, los datos olfateados estarán disponibles para el usuario final tan pronto como sean capturados.

Modelo Pub-Sub

El MOM del proyecto se realiza a través del Message Broker usando Redis. En el modelo de publicación-suscripción (pub-sub), el Sniffer es responsable de producir mensajes, mientras que la aplicación web (suscriptor) se registra para el Tópico específico (canal de Redis). Cuando el Sniffer envía un mensaje a un Tópico, se distribuye a todos los consumidores suscritos, permitiendo una comunicación asíncrona y escalable. PNLS utiliza el protocolo de mensajería ligero Redis Pub/Sub para la difusión de mensajes con el fin de propagar mensajes de corta duración con baja latencia y alto rendimiento [5][6]. De esta manera, se han evitado las sobrecargas asociadas con la codificación de estructuras de datos en una forma que pueda escribirse en un disco. Al hacerlo, esta solución tendrá potencialmente un mejor rendimiento [7]. La siguiente figura muestra la actividad simplificada del sistema a través del flujo de trabajo basado en eventos.

Diagrama de secuencia pub-sub

Fig. 7: Diagrama de secuencia del modelo Pub-Sub de PNLS

[!NOTE] El MOM implementado no proporciona almacenamiento persistente ni una cola de mensajes para la acumulación de datos, lo que significa que los mensajes se perderán si se publican en un Tópico sin suscriptores.

Capturas de pantalla

A continuación se muestra un ejemplo de una interfaz web que muestra SSID de prueba publicados.

Web PNLS - ejemplo con SSID de prueba

Fig. 8: Web PNLS - ejemplo con SSID de prueba

Acrónimos

Referencias

  1. Repositorio Git de Nexmon
  2. Documentación de Aircrack-ng
  3. Documentación de Kali en ARM
  4. Documentación de ASGI
  5. Software de cola de mensajes y broker de baja latencia
  6. Redis - Pub/Sub Definido
  7. Stephen M. Rumble, Ankita Kejriwal, and John K. Ousterhout, “Log-Structured Memory for DRAM-Based Storage,” at 12th USENIX Conference on File and Storage Technologies (FAST)
  8. Habilitar Modo Monitor e Inyección de Paquetes en Raspberry Pi

Footnotes

  1. Un Identificador de Conjunto de Servicios (SSID) es un ID 802.11 utilizado para nombrar una red Wi-Fi que consta de un máximo de 32 caracteres que pueden contener letras, números y caracteres especiales sensibles a mayúsculas y minúsculas, sin exceder los 32 caracteres. ↩

  2. Una Lista de Redes Preferidas es una colección de SSID guardados con configuraciones adicionales que creó la primera vez que conectó su dispositivo a esas redes. ↩

  3. Broadcom nunca admitió oficialmente el modo monitor, lo que limitó la utilidad de las tarjetas inalámbricas en los dispositivos Raspberry Pi [8]. El proyecto Nexmon es un parche de firmware para los chips Broadcom utilizados en dispositivos RPi [1]. Este parche le permitirá usar el modo monitor en su dispositivo RPi. ↩

  4. El Framework de Parcheo de Firmware basado en C para Chips Wi-Fi Broadcom/Cypress que permite el Modo Monitor, la Inyección de Tramas y mucho más. ↩

Descargar herramienta
PNLLista de Redes Preferidas
PNLSSniffer de Lista de Redes Preferidas
SSIDIdentificador de Conjunto de Servicios
UIInterfaz de Usuario
RPiRaspberry Pi
OSSistema Operativo
APPuntos de Acceso
RFRadio Frecuencia
EDAArquitectura Basada en Eventos
MOMMiddleware Orientado a Mensajes
ASGIInterfaz de Puerta de Enlace de Servidor Asíncrono
pub-subpublicación-suscripción