iSniff-GPS - захват и визуализация данных (раскрытых IOS устройствами) нахождения Wi-Fi
UnderMindВ этой статье я расскажу о такой утилите, как iSniff-GPS.
iSniff GPS пассивно сниффит (прослушивает) SSID зонды, широковещательные пакеты ARP и MDNS (Bonjour) близлежащих iPhone, iPad и других беспроводных устройств. Цель - собрать данные, которые можно использовать для идентификации каждого устройства и определения предыдущих географических расположений, основываясь исключительно на информации от каждого устройства о беспроводных сетях WiFi, к которым они ранее подключались.
iOS устройства пересылают ARP, которые иногда содержат MAC адреса (BSSID) WiFi сетей, к которым они ранее подключались. iSniff GPS захватывает эти ARP и отправляет MAC адреса службе локации Apple's WiFi (притворяесь устройством iOS) для получения GPS координат данной BSSID. Если были захвачены только SSID зонды для конкретного устройства, iSniff GPS может делать запросы по имени сети на wigle.net и визуализировать возможные локации.
Выяснив расположение нескольких SSID и MAC адресов WiFi роутеров, возможно определить, где устройство (и, косвенно, владелец) вероятно находились.
Установка в Kali Linux
Скачиваем файлы программы, устанавливаем зависимости:
apt-get install
python-scapy
git clone https://github.com/hubert3/iSniff-GPS.git
cd
iSniff-GPS/
pip install
-U -r requirements.txt
Инициализируем базу данных
./manage.py syncdb
Запускаем веб-сервер для пользовательского графического интерфейса:
./manage.py runserver 127.0.0.1:8000 &
Веб-интерфейс теперь доступен по адресу http://127.0.0.1:8000/
Переводим беспроводную карту в режим монитора:
t=`iw dev | grep
'Interface'
| sed
's/Interface //'`;sudo
ip link set
$t down && sudo
iw $t set
monitor control && sudo
ip link set
$t up
Проверяем имя беспроводного сетевого интерфейса:
iw dev
Запускаем пассивный сниффинг:
./run.sh -i wlan0
Необязательно прослушивать данные с живого интерфейса - также можно анализировать файл pcap, импорт данных из файла захвата wifi pcap можно сделать выполнив:
./run.sh -r <chan11.pcap>
Использование
Опциональные аргументы:
-h, --help показать справку и выйти
-r PCAP pcap файл для чтения
-i INTERFACE интерфейс для прослушивания (по умолчанию mon0)
Для выпрашивания ARP из iOS устройств, настройте точку доступа с отключённым DHCP (например, используя airbase-ng) и настройте ваш интерфейс сниффинга на этот же канал.
После подключения iOS устройства будут отправлять до трёх ARP, предназначенные для MAC адреса DHCP сервера предыдущих сетей, к которым они подключались. На типичном домашнем WiFi роутере MAC адрес DHCP сервера такой же как и MAC адрес WiFi интерфейса, который может быть использован для точной геолокации. В больших корпоративных WiFi сетях MAC DHCP сервера может быть другим и, таким образом, не может использоваться для геолокации.
Обратите внимание, что по состоянию на iOS 6, DNAv4 ARP, содержащие раскрывающую информацию, должны отправляться только зашифрованным сетям.
Примеры запуска iSniff-GPS
Импорт данных из файла захвата wifi pcap:
./run.sh -r <chan11.pcap>
Запуск пассивного прослушивания на “живом” источнике (беспроводной сетевой интерфейс Wi-Fi):
./run.sh -i wlan0
Компоненты iSniff-GPS
iSniff GPS содержит 2 главных компонента и следующие python модули:
- iSniff_import.py использует Scapy для извлечения данных из живого захвата или файла pcap и вставки в базу данных (по умолчанию iSniff_GPS.sqlite3).
- A Django web application обеспечивает графический интерфейс в браузере для просмотра и анализа собранных данных. Сюда включён просмотр всех выявленных устройств и SSID / BSSID, каждое из которых зондировало, просмотр сетей, просмотр Google Maps для визуализации возможных расположений данных BSSID или SSID и круговая диаграмма показывающая разбивку популярности устройств по производителям (данные определяются исходя из MAC адреса Ethernet OUI).
- wloc.py обеспечивает функцию QueryBSSID(), которая ищет данный BSSID (MAC адрес ТД) на сервисе локаций Apple's WiFi. Она вернёт координаты для запрошенного MAC и обычно 400 дополнительных близлижащих BSSID и их координаты.
- wigle_api.py обеспечивает функцию getLocation() для запроса по оданному SSID по базе данных wigle.net и возвращает GPS координаты. В файле the settings.py должны быть установлены валидные имя пользователя и пароль.
Спасибо за прочтение!
Также вы можете присылать ваши статьи в бота (оформляйте в телеграфе, я их просмотрю, если всё ОК - опубликую статью на канале с указанием автора.