10 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд

Raspberry Pi Packet Sniffer

Raspberry Pi Packet Sniffer

Posted 1 year ago — 3 min read


To gather the dataset for my univeristy project I built a packet sniffing device based around a Raspberry Pi 3 B+. The Raspberry Pi ran Kali Linux (Re4son — Sticky Fingers Fork) used a monitor mode compatible Wi-Fi adapter (Alfa AWUS036NEH), GPS receiver (GlobalSat BU-353) and ran a my custom Python script [GitHub]. This Python script allows you to capture network management packets (probe requests) being broadcast from devices, the co-ordinates from where they been discovered, device manufacturers and the networks being seached for, in CSV format.

A rudimentary case was produced from a plastic container and zip ties to allow for transportation in a backpack during data collection. The device was powered using a high capacity power bank which allowed the device to run for around 4 hours, dependent on the levels of GPS & WI-Fi activity received.

Using a Bluetooth keyboard and the 3.5” TFT running from the Raspberry Pi’s GPIO (General Purpose Input Output) interface, the system could be operated anywhere. This focus on portability removed the need to SSH into the Raspberry Pi.



The Alfa AWUS036NEH Wi-Fi adapter was selected as it operated at 2.4GHz and can scan all b/g/n 802.11 standards. The adapter comes equipped with a removable high gain aerial which out of the box gives very high range, and uses the Ralink RT3070 Chipset which was capable of being switched into monitor mode. Terminal commands demonstrating turning the chosen adapter from station mode into monitor mode using airmon-ng from the aircrack-NG suite can be seen here;

Discovering devices and their trusted networks

The collection script developed for the project tested capable of detecting the closed set of devices through their MAC addresses and SSIDs contained within directed probe requests. As illustrated in this highlighted dataset.

Due to factors such as different onboard hardware running on each device and operating systems, probes are transmitted in different patterns of network discovery packets and with different densities and timings. MAC identifiers for Laptops and mobile devices we’re discovered throughout testing with this script and worryingly devices which should by now hide personally identifiable MAC addresses we’re vunerable to disclosing both you and the networks you have been previously connected to. If you’d like to read more about how this device was used check out my Visualising Device Footprints Through 802.11 Probe Requests project.

Adam G Robinson
Crafter. Explorer. Coder.


Нам понадобиться не без-известная программа aircrack-ng, она должна быть в репозиториях. (Дальше и вообще в пределах этой статьи используем только консоль, GUI и другие рюрешечки я не оцениваю и не смог прикрутить).

Отлично, имеем пакет, на основе моих знаний разберём состав: airmon-ng необходим для перевода карточки Wi-Fi в режим мониторинга без него никак. airodump-ng необходим для прослушивания и сохранения прослушанных пакетов. aireplay-ng необходим для разных «Хуков», в частности для дисконекта клиента/ов от точки доступа. aircrack-ng собственно сама программа для брутфорса и перебора, к ней нужно иметь набор словарей, кои можно сделать самому или найти в интернетах — *Тысячи их!*.

Теперь нужно перевести сетевой адаптер в режим мониторинга. Узнаем имя адаптера, при помощи команды ifconfig или ip a . Это должно быть что-то вроде wlan0 или wlan1 .

Для переключения адаптера в режим мониторинга введем в терминале sudo airmon-ng start wlan1 , где wlan1 – имя сетевого адаптера.

Наберем ifconfig или ip a снова, чтобы проверить, запущен ли адаптер и как он теперь называется.

Читать еще:  Установка Linux Mint в VirtualBox. Самая подробная пошаговая инструкция

Убедившись, что адаптер находится в режиме мониторинга, начнем работу с Bettercap, введя sudo bettercap —iface wlan1mon в новом окне терминала, заменив wlan1mon названием адаптера.

Как только откроется Bettercap, введем help , чтобы увидеть список всех запущенных модулей и команд. Модуль Wi-Fi по умолчанию не запускается.

Using Wireshark in Monitor Mode

Once a wireless card is in monitor/promiscuous mode, the data can be viewed live using Wireshark in Monitor Mode.

Note: The following screenshots were taken using an old (pre v2.0) version of Wireshark. To enable Monitor Mode in newer versions, please reference the Wireshark Wiki for details.

In the example below, interface en0 (Mac) or mon0 (Linux) was selected and specified to use monitor mode.

Once this mode is selected and the capture is started in Wireshark, the 802.11 frames will start to fill the screen. This will be the majority of the traffic, and since there aren’t any coloring rules for 802.11 traffic by default, they should be white:

NOTE: For more information about decrypting 802.11 traffic in Wireshark, please refer to this link.

Using Airmon-ng in Kali Linux 2020.2

For an ethical hacker, it is used to capture all these packets to check if the router is vulnerable or not. It is also used to check if the network is vulnerable to any threat or not. It has all the crucial information on every device. It is further used for observing the widespread traffic.

If you have the wireless adapter that supports the monitor mode, then you can easily set the wireless interface.

Configure wireless cards to turn on monitor mode:

For this purpose, we will use the POSIX sh script specifically designed to carry out this function:

$usage: airmon-ng [channel or frequency]

See the interface’s status

To view the interface’s status, type the following command into the terminal:

Kill background processes

Use the following syntax to check if any program is running in the background

You can also terminate any process that you think is interfering with airmon_ng or taking up memory using:

How to enable Monitor Mode using Airmon-ng

If you have tried enabling monitor mode by using iw and failed, then the good idea is to try to enable monitor mode by using a different method.

The first step is to get the information about your wireless interface

Of course, you would like to kill any process that can interfere with using the adapter in monitor mode. To do that, you can use a program called airmon-ng or else use the following command.

Now we can enable the Monitor Mode without any interference.

Wlan0mon is created.

Now, you can use the following commands to disable the monitor mode and return to the managed mode.

Follow the command to restart the network manager.

How to turn off the NetworkManager that prevents Monitor Mode


Enabling monitor mode is the best way of sniffing and spying. There are several ways to use airmon-ng, and the best way to use airmon-ng is to activate monitor mode with it. Every method does not work for every adapter. So, you can go for any method if your adapter does not behave as expected.

About the author

Younis Said

I am a freelancing software project developer, a software engineering graduate and a content writer. I love working with Linux and open-source software.

Анализ трафика в открытых Wi-Fi сетях

В процессе работы airodump-ng будет создан файл с расширением .cap, например, openap-01.cap.

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

Откройте файл с захваченными данными в Wireshark.

Для выделения разных данных нам понадобятся фильтры Wireshark. Здесь я покажу пример использования только некоторых фильтров, рекомендуется изучить большую подборку полезных фильтров Wireshark здесь.

Для оценки качества захвата, можно начать с фильтров, которые выводят результаты анализа TCP протокола.

Этот фильтр выводит информацию о фреймах с флагом ACK, которые являются дублями. Большое количество таких фреймов может говорить о проблемах связи между Клиентом и Точкой Доступа.

Фильтр показа фреймов для которых не захвачен предыдущий сегмент:

Это нормально в начале захвата данных — поскольку информация перехватывается не с самого начала. Но если эта ошибка часто возникает в дальнейшем, значит вы находитесь слишком далеко от Точки Доступа или Клиентов и вы не захватывает часть данных, которые они передают.

Читать еще:  Метерпретер из состава инструментов Метасплой?

Для показа фреймов, которые являются ретрансмиссией (отправляются повторно):

Большое количество таких фреймов может говорить о том, что между Клиентом и ТД плохая связь и им часто приходится отправлять повторно одни и те же данные.

С помощью фильтра

Можно увидеть ARP трафик — с его помощью удобно анализировать, сколько всего устройств в данный момент подключено к локальной сети, какие у них IP адреса и какие MAC адреса. Зная MAC адрес устройства можно узнать его производителя.

С помощью фильтра

можно увидеть все отправленные DNS запросы.

Благодаря этим запросам можно узнать, какие сайты посещали пользователи (даже если эти сайты используют HTTPS!), а также к каким онлайн сервисам были сделаны запросы.

Например, на скриншоте можно увидеть адреса онлайн кинотеатра Netflix, Facebook, различных сервисов Google.

Для фильтрации HTTP трафика фильтр:

Здесь можно узнать множество интересной информации. Например, можно увидеть запросы к сервисам и передаваемые данные, в том числе API ключи, идентификаторы устройств и прочее:

Можно увидеть посещённые URL адреса со всеми передаваемыми параметрами:

Видны информация авторизации, используемой при отправке данных:

Видны загруженные и открытые в Интернете файлы:

Вы можете сохранить любой переданный файл. Для этого выделите мышкой пакет, который его содержит (1), затем в средней панели, которая содержит подробную информацию, пролистните в самый низ, чтобы найти поле с данными и кликните на него правой кнопкой мыши, чтобы вызвать контекстное меню (2), в контекстном меню выберите Export Selected Packet Bytes (3) — Экспортировать байты выбранного пакета:

Введите имя файла, выберите расположение и сохраните его.

Кто-то обновляет Windows:

Также видны установленные пользователю кукиз или переданные им кукиз:

С помощью фильтра

можно увидеть HTTP запросы, в которых передавались кукиз.

А с помощью фильтра

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

Соседи скачивают странные торренты:

Переданные методом POST данные также видны:

Для поиска любых переданных изображений:

Для поиска определённых видов изображений:

Для поиска файлов определённого типа:

Поиска в Wireshark запросов на получения файлов определённого типа. Например, для поиска переданных ZIP архивов:

Вместо http.request.uri для большей точности можно использовать фильтры http.request.uri.path или http.request.uri.query, например, для поиска запросов на скачивание файлов JPG (ссылки на картинки):

Фильтр, который показывает только данные, переданные методом POST:

Фильтр, который показывает только данные, переданные методом GET:

Поиск запросов к определённому сайту (хосту):

Поиск запросов к определённому сайту по части имени:


Wireshark является одним из лучших анализаторов пакетов данных. Он анализирует пакеты на уровне кадра. Вы можете получить дополнительную информацию о Wireshark на официальном сайте: https://www.wireshark.org/.

В Kali Linux она находится в Applications → Sniffing & Spoofing → wireshark.

После запуска wireshark, перед нами появляется GUI.

Жмем “Start” и начинается захват пакетов на интерфейсе (показано ниже на скриншоте)


Проверить, поддерживает ли карта инъекцию пакетов (injection_test) [подробнее, doc]

ifconfig wlan0mon hw ether 00:00:00:00:aa:bb

Увеличение мощности WiFi сигнала

country RU:
(2402.000 — 2482.000 @ 40.000), (N/A, 20.00)

country BZ:
(2402.000 — 2482.000 @ 40.000), (N/A, 30.00)

ifconfig wlan0 downвыключаем интерфейс
macchanger -r wlan0меняем MAC
iw reg set BZвыставляем регион Белиз
iwconfig wlan0 txpower 30увеличиваем мощность
ifconfig wlan0 upподнимаем интерфейс

Метод перехвата handshake (WEP, WPA, WPA2)

Самый простой способ. Необходимо перехватить момент авторизации клиента, получить т.н. handshake и используя последний подобрать пароль уже в офлайне. Ждать пока один из клиентов сети подключится к ней не обязательно, можно отключить его от сети и подождать переподключения, как правило оно происходит автоматически. Подробнее, но на английском: http://www.aircrack-ng.or g/doku.php?id=cracking_wp a

1. Промониторить доступные WiFi сети:

—bssid — bssid точки доступа.

В случае если во время перехвата пакетов возникает ошибка » fixed channel -1 » , то её можно попытаться исправить передав ключ —ignore-negative-one . Такой же ключ нужно передать и программе airoplay-ng . [askubuntu],[kali]

-0 режим отсылки пакетов деаутентификации
-a bssid точки доступа
ssid клиента, кого следует деаутентифицировать (необязательный параметр)

4. Ждать получения handshake.
Пакеты деаутентификации посылаются напрямую клиентам, а они как правило имеют меньший радиус «слышимости» чем точка доступа. Проследить получение клиентом пакетов можно по количеству ответных ACK пакетов от него.
возможно стоит поэкспериментировать со скоростью работы карты iwconfig rate auto [1MB, 2MB, 11MB, 54MB, etc] чтобы она совпадала со скоростью работы точки доступа.

Читать еще:  Nmap : сканирование портов - как это работает

Иногда airodump-ng не сообщает о получении handshake, поэтому стоит время от времени проверять cap файл на наличие handshake.

Самый простой способ это сделать, открыть файл например с помощью wireshark и применить фильтр eapol .

tshark -r n-01.cap -Y «eapol«

Для брута пароля необходимо два первых последовательных пакета»рукопожатия» (производимого с ТД за 4 шага). В них содержатся случайные строки сгенерированные клиентом и ТД — A-nonce и S-nonce, которые необходимы для генерации ключа PTK, а также MIC который используется для подбора пароля.

Network security: сетевые атаки (kali, yersinia, arpspoof, dns2proxy, mitmproxy, aircrack, etc)

Kali linux
  • Легко запускается в virtualbox/vmware
    • Скачать можно тут.
    • kali/kali default username/password
  • Можно поставить и life образ на flash, например, используя rufus.
  • Образ для QEMU, пригодится для GNS3 (доступ через vnc для GUI, ssh для CLI, но нужно включать).
    • default password toor (-> root)
  • Если есть проблема в работе NetworkManager в Kali Linux (нет апплета, не применяются настройки, падает интерфейс и проч) – лучше всего его снести (застопить, в конфиге /etc/NetworkManager/NetworkManager.conf убрать использование через managed=false, настроить интерфейсы статически в /etc/network/interfaces).
  • Если есть проблема с установкой стандартный пакетов (например, pip для python2 “Unable to locate package python-pip”) – добавляем репозитории debian в apt.
KALI MITM routing

Для mitm атак чаще всего нужно включать маршрутизацию (ip_forward). Тут как это сделать.


yersinia – утилита на kali, куча атак (dhcp, dtp, stp, mpls, cdp).

interactive mode – хорош, но надо знать hotkeys.

graphical mode проще и в целом глюков при использовании не было (глюки были аналогичные interactive).

dtp attack (enable trunking). Защита в switchport nonegotiate + static access/trunk.

vtp attack (delete all vlans). Защита в vtp off/transparent.

vtp attack (add vlan). Защита в vtp off/transparent.

stp (root role). Подменяет MAC, сохраняя приоритет текущего root bridge, что на первый взгляд довольно незаметно! Защита в root guard (spanning-tree guard root на интерфейсах к хостам), bpdu filter.

dhcp (starvation, dhcp discover flood). Защита в dhcp snooping binding (не подменяем в dhcp запросе фактический MAC на другой), flood traffic rate limit.

dhcp (rogue server). Атака особенно опасна тем, что может позволять реализовывать MITM и прослушивать трафик/etc. Защита в dhcp snooping, ACL (фильтр ответов на клиентских портах).

WPA bruteforce

  • Перехватить handshake можно и штатными утилитами, но для захвата может потребоваться много времени (ночи может не хватить по практике). Лучше использовать deauth, например, с помощью aireplay-ng и собирать handshake повторных аутентификаций.
  • Дампы с wireless sniffer MAC OS собираются в папку /var/tmp/

Подбор паролей для перехваченных хендшейков не своими руками.


Можно использовать usb wifi stick, если:

  1. есть проблемы с переводом сетевой в monitor режим или беспроводной сетевой вообще нет
  2. не хочется на машину с беспроводной сетевой ставить хакерский софт
  3. хочется иметь возможность останавливать на время подбор hash, без перезапуска утилиты (suspend VM)

Monitor режим поддерживают многие usb stick. Лично у меня заработало и с Xiaomi Mi Wi-Fi USB, единственное:

  1. в Windows можно не пробовать – там с monitor mode проблемы
  2. в Linux нужно обновить ядро, чтобы установились драйвера для MediaTek MT7601U
  3. нужно быть уверенным, что USB дает достаточное питание для Wi-Fi USB. У меня были проблемы с поиском сетей (находилось всего 6) при подключении через USB 3.0 одного дангла (переходника), при подключении в USB 2.0 другого переходника начали обнаруживаться более 20 сетей.

При ошибке ниже ставим пакет из исходника.

Не забываем что утилиты в таком случае собираются в скаченной папке.

Подробно usage утилит aircrack (airmon-ng, airodump-ng, aireplay-ng,aircrack-ng) описан тут. Я скопипастил оттуда команды.

WPS (Pixie Dust with wash + reaver)

Объединение разных утилит для взлома сетей через python скрипт, которые видны адаптером, как то:

  1. атаки на wps – pixie dust, pin attack
  2. атаки на wpa – включа деаунтификацию клиентов, захват handshake, подбор по словарю



Перед стартом желательно отключить потенциально конфликтующие службы.

MISC Tools

arpspoof -i eth0 -t -r – делаем спуфинг между двумя хостами (не важно кого указать target, кого host).

dns2proxy – подменяем DNS запросы для трафика, который через нас проходит (напр. сначала arp-spoof, потом dns2proxy).

mitmproxy – https proxy для mitm. Использовался например челом, нашедшим проблему у ингос, ситимобил.

sslsplit – ssl proxy для mitm.

Ссылка на основную публикацию
Статьи c упоминанием слов: