Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Preferred-Network-List-Sniffer — Uma ferramenta de reconhecimento para capturar e exibir SSIDs da Lista de Redes Preferidas do dispositivo. | Kitploit
Ferramentas/GitHubGitHub/aleksamcode/preferred-network-list-sniffer
Sniffing e Análise de PacotesReconhecimentoAuditoria de Wi-FiColeta de InformaçõesSegurança Sem FioRed Teaming
GitHubaleksamcode/preferred-network-list-sniffer

Preferred-Network-List-Sniffer

Uma ferramenta de reconhecimento para capturar e exibir SSIDs da Lista de Redes Preferidas do dispositivo.

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório
1759há 7 mesesRevisado pelo Kitploit

Sniffer de Lista de Redes Preferidas - PNLS

License: MIT

Preferred Network List Sniffer (PNLS) é uma ferramenta de auditoria Wi-Fi da Red Team com uma interface web simples, capaz de interceptar SSIDs1 da lista de redes preferidas (PNL)2 do dispositivo. Isso é feito capturando Probe Requests nas proximidades, que são então analisados para obter SSID e outras informações e, finalmente, propagados para a interface web. A motivação principal deste projeto foi investigar os Probe Requests 802.11 e os riscos de privacidade associados aos dados que eles transmitem.

PNLS system overview

Fig. 1: Visão geral do sistema PNLS

[!WARNING] Todo o conteúdo deste projeto é destinado apenas para fins de pesquisa em segurança.

[!NOTE]

  • Este projeto faz parte da minha pesquisa em andamento sobre Proteção de Privacidade em Redes Wi-Fi.

    • Apresentação do escopo de trabalho
  • Para acompanhar o trabalho em andamento no PNLS, consulte o quadro do projeto.

Tabela de conteúdos

  • Sniffer de Lista de Redes Preferidas - PNLS
    • Tabela de conteúdos
    • Como construir o PNLS
      • Requisitos
      • Pré-requisitos
    • Configuração
      • Usando Docker
      • Usando Imagem Docker Pré-construída
      • Sem Docker
    • Probe Requests
    • Filtragem de SSID
    • Arquitetura
      • Por que Asynchronous Server Gateway Interface?
      • Por que WebSockets?
      • Modelo Pub-Sub
    • Capturas de tela
    • Acrônimos
    • Referências

Como construir o PNLS

Aqui está o que você precisará para duplicar e implantar este projeto, incluindo os componentes de hardware e software. Depois de ter seu ambiente de trabalho pronto, vá para as seções de configuração.

Requisitos

  • Raspberry Pi (RPi)
  • Fonte de alimentação adequada para RPi (consulte a documentação da fonte de alimentação para detalhes)
  • Cartão Micro SD (consulte a documentação do cartão SD para detalhes)
  • Adaptador Wi-Fi USB (opcional)
    • Usado para obter um alcance maior ao capturar pacotes.
  • Cabo HDMI (opcional)
    • Usado para exibir a interface web a partir do RPi em vez de conectar-se remotamente usando seu computador.

Pré-requisitos

  • Kali Linux OS
    • Necessário para usar o modo monitor e a ferramenta aircrack-ng. Você pode baixar a imagem ARM do Kali Linux aqui.
      • Alternativamente, você pode usar outro sistema operacional, mas precisará corrigir3 o kernel usando o nexmon4 ou usar um adaptador sem fio que suporte o modo monitor. Aqui está um link para adaptadores USB suportados pelo Raspberry Pi.
      • Você também precisará instalar a ferramenta aircrack-ng, pois ela só vem pré-instalada no Kali Linux.
  • Inicie sua interface de rede em modo monitor com: sudo airmon-ng start wlan0 [2].

[!NOTE]

A imagem Kali usa o kernel do Re4son, que inclui os drivers para placas Wi-Fi externas e o firmware Nexmon para a placa sem fio integrada no RPi 3 e 4 [3].

PNLS RPi 4 device

Fig. 2: PNLS executando em um RPi 4 com antena externa e banco de bateria

PNLS RPi 4 device AWUS036ACS

Fig. 3: PNLS executando em um RPi 4 com uma caixa e uma antena AWUS036ACS

PNLS RPi 4 device AWUS036ACM

Fig. 4: PNLS executando em um RPi 4 com uma antena AWUS036ACM

Configuração

Se você não quiser usar Docker, vá para configuração sem Docker.

Usando Docker

Configure rapidamente uma instância de desenvolvimento:

root@kitploit:~
# First clone this repo.
git clone https://github.com/AleksaMCode/Preferred-Network-List-Sniffer.git
# Move to the project root folder.
cd Preferred-Network-List-Sniffer
# Build backend and frontend image.
docker compose build
# Bring up both the backend and the frontend server.
docker compose up
# Move into the sniffer folder.
cd sniffer
# Run the Sniffer service.
sudo python3 sniffer.py

Usando Imagem Docker Pré-construída

Atualmente, imagens multi-plataforma não estão disponíveis, e o projeto suporta apenas a arquitetura ARM64v8. Baixe as imagens pré-construídas mais recentes do GitHub Container Registry e execute-as localmente.

root@kitploit:~
# First clone this repo.
git clone https://github.com/AleksaMCode/Preferred-Network-List-Sniffer.git
# Move to the project root folder.
cd Preferred-Network-List-Sniffer
# Download the prebuild images.
docker pull ghcr.io/aleksamcode/pnls-backend-ghcr:latest
docker pull ghcr.io/aleksamcode/pnls-frontend-ghcr:latest
# Bring up both the backend and the frontend server.
docker compose up
# Move into the sniffer folder.
cd sniffer
# Run the Sniffer service.
sudo python3 sniffer.py

Sem Docker

  • Backend: para iniciar os servidores ASGI e Redis e executar os serviços necessários, veja estas instruções.

  • Frontend: para executar o servidor React, veja estas instruções.

Aqui está uma captura de tela quando tudo foi executado "manualmente":

  • Canto superior esquerdo: servidor Redis
  • Canto superior direito: servidor ASGI
  • Canto inferior esquerdo: serviço Sniffer
  • Canto inferior direito: servidor React

PNLS Kali screenshot

Fig. 5: Captura de tela do PNLS

Probe Requests

Probe Requests são quadros de gerenciamento 802.11 usados para conectar dispositivos aos Pontos de Acesso (AP) sem fio previamente associados. Sempre que um dispositivo tem o Wi-Fi ativado, mas não está conectado a uma rede, ele envia periodicamente uma rajada de Probe Requests contendo SSIDs de sua PNL. Esses quadros são enviados sem criptografia, e qualquer pessoa que esteja monitorando Radiofrequência (RF) pode capturá-los e lê-los. Os Probes são enviados para o endereço DA de broadcast (ff:ff:ff:ff:ff:ff). Uma vez enviados, o dispositivo inicia o Probe Timer. Ao final do timer, o dispositivo processa a resposta recebida. Se o dispositivo não recebeu uma resposta, ele irá para o próximo canal e repetirá o processo. Existem dois tipos de Probe Requests:

  • Directed Probe Requests: usando SSID específico da PNL do dispositivo

  • Null Probe Requests: usando Wildcard SSID (SSID vazio)

    • Blank Requests são enviados para obter uma resposta de todos os APs disponíveis que estão ao alcance.

    • Além de filtrar quadros 802.11 Probe Request de todos os pacotes capturados, o Sniffer também filtrará os Wildcard SSIDs.

Filtragem de SSID

Ao capturar Probe Requests em locais onde há uma grande rede local com muitos clientes Wi-Fi, o PNLS inevitavelmente capturará muitos Probe Requests que contêm o SSID da referida rede. A filtragem desses SSIDs pode ser vantajosa, pois eles não têm valor para nós e podem causar um aumento na carga dos sockets. Filtrar esses SSIDs não apenas reduzirá a carga nas conexões socket, mas também evitará o spam dos SSIDs mencionados na interface web.

Ao usar este recurso, você precisará fazer pequenos ajustes no código-fonte. Precisamente, você precisará atualizar a lista SSID_FILTER no arquivo settings.py com o valor que deseja que o Sniffer ignore. Depois de atualizado, reconstrua o projeto e inicie o PNLS.

Arquitetura

Este projeto usa arquitetura orientada a eventos (EDA), que é projetada sobre arquiteturas orientadas a mensagens. Embora este projeto use uma solução centralizada (tudo é executado a partir do RPi), devido aos componentes fracamente acoplados como resultado do uso de EDA, é possível criar uma solução descentralizada, se necessário. O PNLS consiste em um publicador de eventos (sniffer), um consumidor de eventos (aplicação web) e um canal de eventos. Aqui, o canal de eventos é implementado como Middleware Orientado a Mensagens (MOM).

PNLS system deployment diagram

Fig. 6: Diagrama de implantação do sistema PNLS

Por que Asynchronous Server Gateway Interface?

A Asynchronous Server Gateway Interface (ASGI) fornece uma interface padronizada entre servidores web Python com capacidade assíncrona e serviços [4]. A ASGI foi escolhida devido à necessidade do projeto de uma conexão WebSocket de longa duração para facilitar comunicações assíncronas entre diferentes clientes. Além disso, também permite a utilização de corrotinas em segundo plano durante chamadas de API. O PNLS usa a implementação uvicorn para Python a fim de usar o servidor web ASGI.

Por que WebSockets?

Através da utilização do protocolo de comunicação WebSocket, podemos facilitar a comunicação full-duplex bidirecional. Embora este projeto não tenha a necessidade de comunicação bidirecional, ele tem a necessidade de interação em tempo real entre os componentes do sistema. Desta forma, os dados capturados estarão disponíveis para o usuário final assim que forem capturados.

Modelo Pub-Sub

O MOM do projeto é realizado através do Message Broker usando Redis. No modelo publish-subscribe (pub-sub), o Sniffer é responsável por produzir mensagens, enquanto a aplicação web (subscritor) se registra para o Tópico específico (canal Redis). Quando o Sniffer envia uma mensagem para um Tópico, ela é distribuída a todos os consumidores inscritos, permitindo uma comunicação assíncrona e escalável. O PNLS usa o protocolo de mensagens leve Redis Pub/Sub para transmissão de mensagens, a fim de propagar mensagens de curta duração com baixa latência e grande taxa de transferência [5][6]. Desta forma, as sobrecargas associadas à codificação de estruturas de dados em um formato que possa ser gravado em disco foram evitadas. Ao fazer isso, esta solução terá potencialmente melhor desempenho [7]. A figura abaixo exibe a atividade simplificada do sistema através do fluxo de trabalho orientado a eventos.

pub-sub sequence diagram

Fig. 7: Diagrama de sequência do modelo Pub-Sub do PNLS

[!NOTE] O MOM implementado não fornece armazenamento persistente ou uma fila de mensagens para acumulação de dados, o que significa que as mensagens serão perdidas se forem publicadas em um Tópico sem assinantes.

Capturas de tela

Abaixo está um exemplo de uma interface web exibindo SSIDs de teste publicados.

PNLS web - example with test SSIDs

Fig. 8: PNLS web - exemplo com SSIDs de teste

Acrônimos

Referências

  1. Repositório Git do Nexmon
  2. Documentação do Aircrack-ng
  3. Documentação do Kali no ARM
  4. Documentação do ASGI
  5. Software de fila de mensagens e broker de baixa latência
  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. Ative o Modo Monitor e Injeção de Pacotes no Raspberry Pi

Footnotes

  1. Um Service Set Identifier (SSID) é um ID 802.11 usado para nomear uma rede Wi-Fi, consistindo de no máximo 32 caracteres que podem conter letras maiúsculas/minúsculas, números e caracteres especiais, com comprimento não superior a 32 caracteres. ↩

  2. Uma Preferred Network List é uma coleção de SSIDs salvos com configurações adicionais que você criou na primeira vez que conectou seu dispositivo a essas redes. ↩

  3. A Broadcom nunca suportou oficialmente o modo monitor, o que limitou a utilidade das placas sem fio em dispositivos Raspberry Pi [8]. O projeto Nexmon é um patch de firmware para os chips Broadcom em uso nos dispositivos RPi. [1]. Este patch permitirá que você use o modo monitor em seu dispositivo RPi. ↩

  4. O C-based Firmware Patching Framework para Chips Wi-Fi Broadcom/Cypress que permite Modo Monitor, Injeção de Quadros e muito mais. ↩

Baixar ferramenta
PNLLista de Redes Preferidas
PNLSSniffer de Lista de Redes Preferidas
SSIDIdentificador de Conjunto de Serviço
UIInterface de Usuário
RPiRaspberry Pi
OSSistema Operacional
APPontos de Acesso
RFRadiofrequência
EDAArquitetura Orientada a Eventos
MOMMiddleware Orientado a Mensagens
ASGIAsynchronous Server Gateway Interface
pub-subpublicar-assinar