Продвинутое слежение за Wi-Fi устройствами.

Продвинутое слежение за Wi-Fi устройствами.

Social Engineering

В этой статье я расскажу об инструменте trackerjacker, который не только выводит список устройств в округе, но и умеет выполнять различные действия по заданным условиям.

Как установить trackerjacker.

Установка trackerjacker в Kali Linux, Debian, Linux Mint, Ubuntu и в любой другой дистрибутив выполняется следующим образом:

sudo pip3 install trackerjacker

В Arch Linux предыдущая команда тоже подходоит.

При установке trackerjacker в BlackArch нужно иметь в виду, что эта программа присутствует в стандартном репозитории и её можно установить так:

sudo pacman -S python-trackerjacker

Но проблема в том, что она не будет работать, поскольку для trackerjacker нужен scapy версии ровно 2.4.0, а в BlackArch (как и в Arch Linux) все пакеты всегда самой последней версии. Поэтому если вам нужно, чтобы программа заработала, то дополнительно выполните эту команду:

sudo pip3 install scapy==2.4.0

Для других дистрибутивов этого не требуется, поскольку при установке с помощью pip3 автоматически устанавливается scapy==2.4.0 в качестве зависимости.

Инструкция по использованию trackerjacker.

У этой программы имеется 2 главных режима использования: map mode (режим карты — собирается информация о всех устройствах в округе) и track mode (режим слежения).

В последующих командах вам нужно указать имя своего беспроводного интерфейса — вставьте его вместо wlp0s20f0u1 (это имя Wi-Fi интерфейса в моей системе).

sudo trackerjacker -i wlp0s20f0u1 --map

В стандартный вывод программа будет показывать информацию о переключении каналов и обнаруженных устройствах.

Основной интерес представляет «карта», которая сохраняется в файл формата YAML. Это карта всех близлежащих Wi-Fi сетей и их пользователей. По умолчанию имя файла wifi_map.yaml (имя и расположение файла можно поменять опцией --map-file). Пример такого файла:

Поскольку это формат YAML, то вы с лёгкостью может использовать его в качестве ввода для других скриптов вашей разработки. Автор trackerjacker написал простой скрипт parse_trackerjacker_wifi_map.py. В зависимости от способа установки, этот скрипт может отсутствовать, чтобы его скачать:

wget https://raw.githubusercontent.com/calebmadrigal/trackerjacker/master/helpful_scripts/parse_wifi_map.py

Запуск:

python3 ./parse_wifi_map.py

Пример работы скрипта:

Режим слежения в trackerjacker

Режим слежения позволяет вам указать ряд MAC адресов для наблюдения и предупреждать вас или выполнять указанную программу в случае превышения порога передаваемых данных. Пример запуска команды:

sudo trackerjacker --track -i wlp0s20f0u1 -m 3c:2e:ff:31:32:59 --t 4000 --trigger-command "./alert.sh" --channels-to-monitor 10,11,12,44

В ней:

  • --track — включение режима слежения
  • -i wlp0s20f0u1 — беспроводной интерфейс для использования
  • -m 3c:2e:ff:31:32:59 — MAC адрес за которым нужно следить. Можно указать несколько адресов через запятую или файл со списком адресов (один MAC на одну строку) - это реализовано в одном из плагинов
  • --t 4000 — порог в байтах, при превышении которого показываются предупреждения и выполняется указанная команда
  • --trigger-command "./alert.sh" — команда, которую нужно выполнить в случае наступления события (превышения указанного порога)
  • --channels-to-monitor 10,11,12,44 — каналы, которые нужно мониторить

В этом конкретном примере автор программы trackerjacker наблюдал за камерой безопасности чтобы определить, когда она выгружает видео (это свидетельствует о том, что ей замечено движение). Это, кстати, и было причиной появления проекта: наблюдение за сторонними камерами, к которым нет другого доступа — это позволяло дистанционно определить, что камеры кого-то заметили.

Плагин foxhunt.

Плагин foxhunt выводит список всех обнаруженных в округе Wi-Fi устройств в порядке убывания мощности сигнала. В тех случаях, когда возможно, выводится информация о производителях. Плагин можно указать опцией --trigger-plugin после которой нужно указать имя плагина (если он находится в соответствующей поддиректории программы), либо путь до файла плагина. Пример запуска с использованием плагина foxhunt:

sudo trackerjacker -i wlp0s20f0u1 --track --trigger-plugin foxhunt

Будет выведено примерно следующее:

Плагины trackerjacker.

Обратите внимание, что foxhunt это встроенный плагин. Встроенных плагинов, на самом деле, всего один. Также имеется несколько примеров плагинов, которые в зависимости от установки могут не попасть в систему.

Эти примеры вы найдёте на странице (там же можете их и скачать): https://github.com/calebmadrigal/trackerjacker/tree/master/plugin_examples

Далее краткое описание каждого плагина:

  • foxhunt.py

Выводит упорядоченный список Wi-Fi устройств, отсортированных на основе мощности их сигнала.

  • count_apples.py

Считает устройства Apple.

wget https://raw.githubusercontent.com/calebmadrigal/trackerjacker/master/plugin_examples/count_apples.py
sudo trackerjacker -i wlp0s20f0u1 --track --trigger-plugin count_apples.py
  • count_manufacturers.py

Подсчёт устройств разных производителей.

Пример запуска:

wget https://raw.githubusercontent.com/calebmadrigal/trackerjacker/master/plugin_examples/count_manufacturers.py
sudo trackerjacker -i wlp0s20f0u1 --track --trigger-plugin count_manufacturers.py
  • deauth_attack.py

Деаутентифицирует Wi-Fi устройства, то есть постоянно отключает их от беспроводных точек доступа, в результате чего они не могут нормально работать. Для этого используется программа aircrack-ng. Атака происходит на основе установленного mac_to_deauth (одного или нескольких адресов для деаутентификации) или vendor_to_deauth (то есть вендора (производителя) — в результате чего отключаются от сети все устройства от указанного производителя.

Будьте осторожны с vendor_to_deauth — атака деаутентификации выполняется в отношении каждого устройства определённого производителя, это определяется на основе его MAC адреса.

Пример вызова:

sudo trackerjacker --track --plugin plugin_examples/deauth_attack.py --plugin-config "{'vendor_to_deauth': 'Apple'}"
  • find_nearby_strangers.py

Найти всех незнакомцев. Будет сообщено о всех новых устройствах, которые появились рядом с вами.

  • monitor_device_list.py

Следит за MAC адресами из списка, указанного в файле.

Пример запуска:

sudo trackerjacker --track --plugin plugin_examples/monitor_device_list.py --plugin-config "{'device_list': 'deepsec_devices.txt'}"

В этом файле (deepsec_devices.txt) список должен иметь один MAC адрес на одну строку.

Отслеживание появления новых электронных устройств в непосредственной близости.

Допустим, мы хотим узнать об устройствах, которые внезапно появились рядом с нами.

Скачиваем плагин.

wget https://raw.githubusercontent.com/calebmadrigal/trackerjacker/master/plugin_examples/find_nearby_strangers.py

Откройте скаченный файл:

gedit find_nearby_strangers.py

В нём вы найдёте ряд настроек:

# устройства, которые нужно игнорировать
DEVS_TO_IGNORE = {'ff:ff:ff:ff:ff:ff', '00:00:00:00:00:00'}
# показывать только устройства, порог мощности которых выше
POWER_THRESHOLD = -50
# время порога
TIME_THRESHOLD = 15 * 60 # 15 минут
# период сохранения
SAVE_PERIOD = 30 # секунд
# файл для сохранения
SAVE_FILE = 'find_nearby_strangers.pkl'

В первую очередь обратите внимание на переменную POWER_THRESHOLD. Мощность вы можете подобрать опытным путём в зависимости от ваших условий. Это должно быть отрицательное число больше -100. Чтобы показать тех, кто действительно близко (примерно в одной комнате), установите на -30.

Также вы можете дополнить список DEVS_TO_IGNORE — устройства должны быть указаны через запятую.

Для сброса базы данных удалите файл find_nearby_strangers.pkl.

Пример запуска:

sudo trackerjacker -i wlp0s20f0u1 --track --trigger-plugin find_nearby_strangers.py

Примечание: опция --power (порог мощности) в случае с плагином не работает.

Отслеживание появления определённого устройства.

Выше уже показано, как отследить, когда определённое устройство или устройства начинают интенсивно обмениваться данными. Также рассказано о плагине для мониторинга списка устройств (monitor_device_list.py). Но предположим, что нас интересует одно определённое устройство — когда оно появляется, когда оно приближается/удаляется или исчезает и т.д.

Пример команды для слежения за устройствомо с MAC-адресом 8c:77:16:45:1d:c3:

sudo trackerjacker -i wlp0s20f0u2 --track -m 8c:77:16:45:1d:c3 --power -70 --channels-to-monitor 1,2,3,4,5,6,7,8,9,10,11,12,13,14

С помощью опции --trigger-cooldown можно указать время, через которое будет выводиться информация (если есть условия для срабатывания триггера). То есть если целевое устройство находится в диапазоне доступности, то информация о его мощности будет выводиться каждую минуту. С помощью указанной опции можно установить другие интервалы времени.

Кстати, в выводимой информации в данном случае очень не хватает времени — если добавить время, то можно сутками мониторить определённый телефон/планшет/компьютер и составить примерно расписание (работа-дом-туалет-балкон).

Значение --power (порог мощности устройства, при котором будет выведена информация о нём) устанавливать необязательно — зависит от сценария использования.

Настройка trackerjacker с помощью конфигурационного файла.

Настройки из командной строки можно перенести в конфигурационный файл и запускать trackerjacker с опцией -c, после которой нужно указать путь до конфигурационного файла:

sudo trackerjacker -c my_config.json

Пример такого файла my_config.json:

{
    "iface": "wlan0",
    "devices_to_watch": [
        {"mac": "5f:cb:53:1c:8a:2c", "name": "Bob's iPhone"},
        {"mac": "32:44:1b:d7:a1:5b", "name": "Alice's iPhone"},
        {"mac": "f2:43:2b:e5:c3:6d", "name": "Security camera", "threshold": 20000},
        "44:61:32:C6:34:8F"],
    "aps_to_watch": {"c6:23:ef:33:cc:a2": 500},
    "threshold_window": 10,
    "channels_to_monitor": [1, 6, 11, 52],
    "channel_switch_scheme": "round_robin"
}

Примечания к данному файлу:

  • threshold_bytes — это порог байтов по умолчанию, если обмен данных достигает его, то вызывается функция предупреждения
  • threshold_window — это промежуток времени, за который анализируются threshold_bytes (то есть достигло ли количество threshold_bytes за время threshold_window)
  • devices_to_watch — это список, который может содержать как строки (представляющие MAC адреса) или Python Dictionaries (в этом формате можно указывать name и threshold для данного устройства)
  • name — это просто та надпись, которую вы хотите чтобы выводилась когда увидено это устройство
  • threshold — в "Security camera" это сколько байт должно быть увидено, чтобы был вызван триггер
  • channels_to_monitor — список 802.11 Wi-Fi каналов для мониторинга. Когда запускается trackerjacker, будет напечатан список каналов, которые поддерживает ваша Wi-Fi карта. По умолчанию мониторятся все поддерживаемые каналы.
  • channel_switch_scheme — варианты default, round_robin или traffic_based. Если выбрана traffic_based, то определяются каналы с наибольшим количеством передаваемого трафика и им выделяется больше времени. При варианте round_robin всем каналам выделяется равное количество времени.

Следующая команда покажет опции по умолчанию в виде конфигурационного файла. Вы можете использовать эту команду чтобы сгенерировать конфигурационный файл, который вы можете взять за основу для вашей настройки:

sudo trackerjacker --print-default-config

Будет показано примерно следующее:

{
   "aps_to_watch": [],
   "beep_on_trigger": false,
   "channel_switch_scheme": "default",
   "channels_to_monitor": null,
   "devices_to_watch": [],
   "display_all_packets": false,
   "display_matching_packets": false,
   "do_map": true,
   "iface": null,
   "log_level": "INFO",
   "log_path": null,
   "map_file": "wifi_map.yaml",
   "map_save_interval": 10,
   "plugin_config": null,
   "power": null,
   "remove_unseen_devices": false,
   "threshold": null,
   "threshold_window": 10,
   "time_per_channel": 0.5,
   "trigger_command": null,
   "trigger_cooldown": 30,
   "trigger_plugin": null
}

Включение и отключение режима монитора, переключение Wi-Fi адаптера на определённый канал.

Trackerjacker поставляется с несколькими другими простыми функциями, имеющими отношение к Wi-Fi хакингу. Одна из них — это способность включать режим монитора на указанном беспроводном интерфейсе.

Чтобы включить режим монитора:

sudo trackerjacker --monitor-mode-on -i wlan0

Чтобы отключить режим монитора:

sudo trackerjacker --monitor-mode-off -i wlan0mon

Обратите внимание, что trackerjacker автоматически включит/отключит режим монитора по мере необходимости. Эта функциональность полезна если вы просто хотите включить режим монитора на беспроводном интрфейсе для использования с другими приложениями (или для более быстрого запуска trackerjacker, если вы планируете запуск/выход для тестирования чего-то).

Переключение беспроводного адаптера на определённый канал:

sudo trackerjacker --set-channel 11 -i wlan0

Обратите внимание, что trackerjacker будет автоматически переключать каналы по мере необходимости во время обычных действий map/track. Эта опция полезна если вы хотите переключить интерфейс на определённый канал для использования с другими приложениями.

Опции trackerjacker.

Другие опции trackerjacker вы сможете найти в карточке программы: https://kali.tools/?p=4956

Рекомендуемое железо.

Автор trackerjacker рекомендует следующие Wi-Fi адаптеры:

По своему опыту могу дополнить, что подойдут любые адаптеры из этого списка. Для наибольшей чувствительности рекомендую обязательно выбирать адаптеры с внешней антенной (или несколькими антеннами). Причём чем антенна больше, тем лучше чувствительность.

Social Engineering - Канал посвященный психологии, социальной инженерии, профайлингу, НЛП, Хакингу, Анонимности и безопасности в сети интернет, Даркнету и все что с ним связано. Добро пожаловать ;-)

S.E.Book - Литература социального инженера.

@Social_Engineering_bot - Бот обратной связи.

  1. Поиск информации в оперативной памяти.
  2. Социальная Инженерия. OSINT и DataSploit.
  3. Поисковая система Shodan.
  4. Социальная Инженерия. Приёмы провокации.
  5. Социальная инженерия. Trape. Фишинг.
  6. Прослушка и перехват СМС. Теория и практика.
Создано с помощью Tgraph.io