
Un outil de reconnaissance pour capturer et afficher les SSIDs à partir de la liste des réseaux préférés de l'appareil.

Sniffeur de Liste de Réseaux Préférés (PNLS) est un outil d'audit Wi-Fi pour équipes rouges, doté d'une interface web simple, capable d'intercepter les SSID[^1] de la liste des réseaux préférés (PNL)[^2] d'un appareil. Cela est réalisé en reniflant les Probe Requests à proximité, qui sont ensuite analysées pour en extraire le SSID et d'autres informations, et enfin propagées vers l'interface web. La motivation principale de ce projet était d'étudier les Probe Requests 802.11 et les risques pour la vie privée associés aux données qu'elles transmettent.
Fig. 1 : Aperçu du système PNLS
[!WARNING] Tout le contenu de ce projet est destiné uniquement à des fins de recherche en sécurité.
[!NOTE]
Ce projet fait partie de ma recherche en cours sur la Protection de la vie privée dans les réseaux Wi-Fi.
Pour suivre les travaux en cours sur le PNLS, consultez le tableau du projet.
Voici ce dont vous aurez besoin pour dupliquer et déployer ce projet, incluant à la fois les composants matériels et logiciels. Une fois votre environnement de travail prêt, rendez-vous dans la section Installation.
sudo airmon-ng start wlan0 [2].[!NOTE]
L'image Kali utilise le noyau Re4son, qui inclut les pilotes pour les cartes Wi-Fi externes et le firmware Nexmon pour la carte sans fil intégrée du RPi 3 et 4 [3].
Fig. 2 : PNLS fonctionnant sur un RPi 4 avec une antenne externe et une batterie externe
Fig. 3 : PNLS fonctionnant sur un RPi 4 avec un boîtier équipé d'une antenne AWUS036ACS
Fig. 4 : PNLS fonctionnant sur un RPi 4 avec une antenne AWUS036ACM
Si vous ne souhaitez pas utiliser Docker, rendez-vous dans la section installation sans Docker.
Configurez rapidement une instance de développement :
# Clonez d'abord ce dépôt.
git clone https://github.com/AleksaMCode/Preferred-Network-List-Sniffer.git
# Placez-vous dans le dossier racine du projet.
cd Preferred-Network-List-Sniffer
# Construisez l'image du backend et du frontend.
docker compose build
# Lancez à la fois le serveur backend et le serveur frontend.
docker compose up
# Placez-vous dans le dossier sniffer.
cd sniffer
# Lancez le service Sniffer.
sudo python3 sniffer.py
Actuellement, les images multi-plateformes ne sont pas disponibles et le projet ne supporte que l'architecture ARM64v8. Téléchargez les dernières images préconstruites depuis le GitHub Container Registry et exécutez-les localement.
# Clonez d'abord ce dépôt.
git clone https://github.com/AleksaMCode/Preferred-Network-List-Sniffer.git
# Placez-vous dans le dossier racine du projet.
cd Preferred-Network-List-Sniffer
# Téléchargez les images préconstruites.
docker pull ghcr.io/aleksamcode/pnls-backend-ghcr:latest
docker pull ghcr.io/aleksamcode/pnls-frontend-ghcr:latest
# Lancez à la fois le serveur backend et le serveur frontend.
docker compose up
# Placez-vous dans le dossier sniffer.
cd sniffer
# Lancez le service Sniffer.
sudo python3 sniffer.py