
Инструмент разведки для захвата и отображения SSID из списка предпочтительных сетей устройства.

Предпочтительный сниффер списка сетей (PNLS) — это инструмент для аудита Wi-Fi Red Team с простым веб-интерфейсом, способный перехватывать SSID[^1] из списка предпочтительных сетей (PNL)[^2] устройства. Это достигается путём сканирования Probe Request'ов в ближайшей окрестности, которые затем анализируются для получения SSID и другой информации и, наконец, передаются в веб-интерфейс. Основной мотивацией для этого проекта было исследование 802.11 Probe Request'ов и рисков для конфиденциальности, связанных с передаваемыми ими данными.
Рис. 1: Общая схема системы PNLS
[!WARNING] Все материалы в этом проекте предназначены только для целей исследования безопасности.
[!NOTE]
Этот проект является частью моих текущих исследований в области защиты конфиденциальности в сетях Wi-Fi.
Чтобы отслеживать текущую работу над PNLS, смотрите доску проекта.
Вот что вам понадобится для дублирования и развёртывания этого проекта, включая аппаратные и программные компоненты. Когда ваше рабочее окружение будет готово, переходите к разделу настройка.
sudo airmon-ng start wlan0 [2].[!NOTE]
Образ Kali использует ядро Re4son, которое включает драйверы для внешних Wi-Fi-карт и прошивку Nexmon для встроенной беспроводной карты на RPi 3 и 4 [3].
Рис. 2: PNLS, работающий на RPi 4 с внешней антенной и внешним аккумулятором
Рис. 3: PNLS, работающий на RPi 4 в корпусе с антенной AWUS036ACS
Рис. 4: PNLS, работающий на RPi 4 с антенной AWUS036ACM
Если вы не хотите использовать Docker, перейдите к настройке без Docker.
Быстрая настройка экземпляра для разработки:
# Сначала клонируйте этот репозиторий.
git clone https://github.com/AleksaMCode/Preferred-Network-List-Sniffer.git
# Перейдите в корневую папку проекта.
cd Preferred-Network-List-Sniffer
# Соберите образы backend и frontend.
docker compose build
# Запустите серверы backend и frontend.
docker compose up
# Перейдите в папку сниффера.
cd sniffer
# Запустите сервис Sniffer.
sudo python3 sniffer.py
В настоящее время образов для нескольких платформ нет, проект поддерживает только архитектуру ARM64v8. Загрузите последние предварительно собранные образы из реестра контейнеров GitHub и запустите их локально.
# Сначала клонируйте этот репозиторий.
git clone https://github.com/AleksaMCode/Preferred-Network-List-Sniffer.git
# Перейдите в корневую папку проекта.
cd Preferred-Network-List-Sniffer
# Загрузите предварительно собранные образы.
docker pull ghcr.io/aleksamcode/pnls-backend-ghcr:latest
docker pull ghcr.io/aleksamcode/pnls-frontend-ghcr:latest
# Запустите серверы backend и frontend.
docker compose up
# Перейдите в папку сниффера.
cd sniffer
# Запустите сервис Sniffer.
sudo python3 sniffer.py
Backend: для запуска серверов ASGI и Redis и необходимых служб смотрите эти инструкции.
Frontend: для запуска сервера React смотрите эти инструкции.
Вот скриншот, когда всё было запущено «вручную»:
Рис. 5: Скриншот PNLS