Raspberry pi zero wifi sniffer

Невидимый гость: вскрываем беспроводную сеть компании с Kali Linux и Raspberry Pi

Сегодня рассмотрим, как относительно незаметно протестировать безопасность беспроводной сети компании. В качестве основы будет использоваться Raspberry Pi, который поддерживает установку Kali Linux. Установка дистрибутива довольно проста:

  • Загрузить официальный образ с сайта kali.org;
  • Записать его на SD-диск с помощью Win32image для Windows и Gparted для Linux;
  • Запустить Raspberry Pi с установленной в него SD-картой.

После установки, по желанию, можно обновить пакеты, если они будут доступны. Но для полноценной работы больше не требуется никаких действий. Требуемый размер карты памяти — 8Гб и выше. Чтобы система нормально функционировала, желательно использовать больший объем.

Статья носит информационный характер. Не нарушайте законодательство.

Теперь, когда система готова к работе, осталось только настроить запуск программ при старте системы, т.к. предполагается, что Raspberry Pi будет установлена непосредственно в радиусе действия нужной точки доступа для автономного сбора данных авторизации Wi-Fi. Для работы с WPA2-Personal есть множество инструментов с различной степенью интерактивности, но нестареющей классикой все же является набор aircrack-ng. В его состав входят различные вспомогательные модули, которые позволяют полноценно провести тестирование беспроводных сетей от переключения интерфейса в режим монитора до перебора пароля. В нашем случае необходимо только перехватить хендшейки Wi-Fi и сохранить их для последующего анализа.
Сделать это можно с помощью планировщика заданий crontab. Соответствующие строчки нужно добавить для запуска скриптов wifi.sh и eaphammer.sh:

Wifi.sh будет переводить беспроводной интерфейс в режим монитора и запускать инструмент airodump-ng с сохранением найденных хендшейков WPA2-Personal в файл для дальнейшего анализа.

В команде запуска airodump-ng необходимо обязательно указать параметры беспроводного интерфейса и файл, в который будут сохраняться полученные рукопожатия (данные, которые передаются во время подключения пользователя к точке доступа), используя ключ -w. Дополнительно рекомендуется указывать BSSID (MAC-адрес точки доступа) с помощью ключа —bssid и канал, на котором она работает, используя . Это не обязательно, но если указать, то перехватываться будут только нужные данные.

Второй скрипт будет запускать инструмент eaphammer, предназначенный для перехвата учетных данных при использовании протокола WPA2-Enterprise.

Инструмент работает по принципу «злого двойника», поэтому в параметрах запуска инструмента обязательно указывать:

  • -i — название сетевого интерфейса. Если одновременно запускается несколько инструментов, использующих беспроводную сеть, то необходимо добавить дополнительные интерфейсы;
  • —essid — имя точки доступа;
  • —channel — канал, на котором работает точка доступа;
  • —auth — метод аутентификации;
  • —creds — сбор учетных записей.

Также для проведения атаки необходимо сгенерировать сертификат, выполнив команду ./eaphammer —cert-wizard. В интерактивном меню можно указать абсолютно любую информацию, это не будет влиять на качество атаки.

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

Тестирование

Для проведения тестирования необходимо любым удобным способом расположить Raspberry Pi в радиусе действия точки доступа так, чтобы его никто не заметил, пока будут собираться данные. Установке для работы необходимо обеспечить 5V и 2-2.5A питания. Исключив возможность использовать адаптер для подключения к розетке, необходимо подумать об аккумуляторе типа powerbank’а для обеспечения бесперебойной работы на весь срок тестирования.
В завершение остается только забрать установку и проанализировать полученные данные. При использовании eaphammer данные будут в виде хендшейка записываться в папку loot, которая находится там же, где и сам инструмент, но лучше перестраховаться и добавить в скрипте запуска инструмента перенаправление вывода для записи в какой-нибудь файл. Тогда анализ будет заключаться только в поиске учетных данных в выходном файле.

Если удалось перехватить данные для подключения к WPA2-Personal, то останется только попытаться подобрать пароль по словарю. Выполнить перебор можно разными инструментами:

  • с помощью Aircrack-ng;
  • инструментом Pyrit, который позволяет использовать при переборе мощности видеокарты;
  • CowPatty — предоставляет перебор с помощью радужных таблиц.

А также с помощью довольно популярных инструментов для перебора:

  • John The Ripperи Hashсat — они также имеют поддержку перебора по радужным таблицам и использование мощностей не только CPU, но и GPU.

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

Если же сравнивать производительность инструментов, позволяющих использовать мощности CPU и GPU при переборе, то разница между, например, Aircrack-ng и Hashсat будет довольно существенна. Даже если сравнивать режимы перебора с использованием мощностей CPU и GPU по отдельности при переборе через Hashсat, то в первом случае, используя, например, CPU Xeon E5450 скорость будет

3500 PMK/s, а при использовании GPU, например, GTX 1050Ti скорость возрастет до

Исходя из того, что перехвачено всего одно рукопожатие, то целесообразнее будет перебирать пароль с помощью Aircrack-ng. Так как изначально указывался только номер канала, для которого захватывались рукопожатия, то и при чтении дампа будет указан работающий на этом канале список точек доступа, а также информация о том, был ли для какой-то из них получен хендшейк.

Выбираем интересующую сеть «PTT», и начинается процесс перебора. В Интернете есть множество различных ресурсов, где можно подобрать интересующий словарь, например, тут или тут.

Помимо открытых ресурсов, есть и специализированные инструменты для генерации собственных словарей. Одним из таких является Crunch, который в использовании довольно прост:

  • 89 — минимальная и максимальная длина паролей в словаре;
  • 1234567890 — используемые символы. Допускается использовать как цифры, так и буквы, и специальные символы;
  • -o — файл, в который будут записаны все варианты.

В результате пароль оказался «password».

Рекомендации для снижения возможности компрометации беспроводной сети

  • при использовании WPA2-Personal рекомендуемая длина пароля должна быть больше, чем минимально требуемые 8 символов, к тому же использование словарных паролей значительно сокращает время их подбора. По данным на 2020 год, одними из самых популярных 8-символьных паролей все еще являются «12345678» и «password»;
  • в компаниях с небольшим количеством пользователей можно дополнительно организовать фильтрацию на основе MAC-адреса устройства. Но данный метод может быть лишь одним из дополнительных элементов защиты, поскольку злоумышленник, начав процесс мониторинга беспроводной сети, в любом случае увидит MAC-адреса пользователей, которые подключены к точке доступа. Дальнейшее изменение собственного MAC-адреса при подключении останется лишь делом техники. К тому же, с увеличением количества клиентов «белый список» также будет увеличиваться, что не всегда бывает удобно для администратора;
  • разделение сети на гостевую и корпоративную. Гостевая сеть может иметь доступ только в сеть Интернет. Корпоративная может иметь доступ к локальной сети. Используйте сегментирование (VLAN) для разных сетей;
  • изолирование пользователей беспроводной сети друг от друга с целью предотвращения злоумышленником взаимодействия с другими клиентами точки доступа;
  • если есть возможность использовать WPA2-Enterprise, то рекомендуется использовать его, дополнительно обеспечив подключение с помощью сертификатов безопасности;
  • использование средств обнаружения вторжений в беспроводные сети (WIPS). Они предназначены для мониторинга беспроводной активности и определения/предотвращения попыток внутренних и внешних сетевых вторжений. Основывая свой анализ на канальном и физическом уровнях сетевой модели OSI, WIPS позволяет организациям успешно идентифицировать и защищать свои сети от несанкционированных точек доступа, атак на беспроводные сети и атак типа “отказ в обслуживании”.
  • использование протоколов IEEE с повышенной безопасностью (например, 802.11w-2009), позволяющих блокировать попытки диссоциации/деаунтефикации и т.д.

Источник

JulianWindeck/wsniff

Use Git or checkout with SVN using the web URL.

Work fast with our official CLI. Learn more.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

A WiFi sniffer you can use with your Raspberry Pi and simply control over your smartphone — discover 802.11 networks, capture their traffic or create interactive wardriving maps. The all-in-one solution with a comfortable graphical user interface. 🌱

Example for a sniffer running wsniff and a map it created.

Table of Contents

  • a Raspberry Pi (at least the 3B version)
  • a GPS module connected to the Pi in case you want to use the wardriving functions
  • a USB WiFi adapter that supports monitor mode (otherwise sniffing would not make sense anyway)

Before you begin with this setup process, make sure you have an active Internet connection. It’s also recommendable to execute sudo apt-get update and sudo apt-get upgrade before you start.

  1. It might be the case your Wi-Fi is blocked by rfkill because you haven’t set your Wi-Fi country yet. In order to fix this, use raspi-config to set the country before use:

In this dialog, first choose ‘Localization Options’ and then ‘WLAN Country’. Here you should select your country and then confirm your choice by pressing . After that, you can exit the settings menu by pressing .

  1. Clone the project from Github
  1. In theory, you are now ready to go and can start the software. However, if you want to be able to control your sniffer with your smartphone or another mobile device, you should set up the internal WiFi card of the Pi as an Access Point. In order to do that, be sure you are in the wsniff directory and execute the following script (which automates the steps from this official manual):

After a reboot ( sudo systemctl reboot ), you should be able to connect to the new wireless network of the Raspberry.

  • SSID: wsniff
  • default password: feedmepackets

Recommendation: Connect with your smartphone since it can be quite fun to control your sniffer with it.

Be sure you are in the wsniff directory which you cloned from Github.

Then, you can start wsniff with (it can be you have to prepend ‘sudo’):

After you have executed that command, you can use the browser of the device you have connected to the Pi in the previous step and type in the Pi’s IP-address. Now the web interface of wsniff should appear where you should create a new account first. If you have used the setupAccessPoint.py script from above to set up the Raspberry as a wireless access point, you can also browse to ‘wsniff.com’ after connecting to the ‘wsniff’ WiFi network.

Источник

alvarop/rpi_sniffer

Use Git or checkout with SVN using the web URL.

Work fast with our official CLI. Learn more.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

RPi WiFi Sniffer

This project was created to analyze the network traffic of WiFi IoT devices. It uses a Raspberry Pi 3B as a WiFi access point that devices connect to and captures all traffic flowing through the wireless interface.

Instead of having to install a bunch of software and run lots of commands, this only assumes that you have a newly flashed Raspberry Pi connected over ethernet to your local network. An installation script is run on your local machine and uses ssh to connect to the Pi and install all required software.

A separate script can then be used to send all the network traffic from the Pi’s WiFi interface to the local host for analysis. This can be both using Wireshark to live-view the incoming packets or just saving a pcap file for later analisys.

  • Computer running Linux or MacOS
  • Raspberry Pi 3B (This will not work on the 3B+ without modifications)
  • SD Card (4GB and above)
  • Ethernet cable
  • Micro USB Power adapter or Micro USB Cable and USB Hub

Sofware (on local machine)

Flashing SD Card

  1. Download Raspbian Stretch Lite
  2. Install the OS image to the SD card.
    • The Raspberry Pi Instructions recommend using Etcher.io
  3. After flashing, create an empty file named ssh in the boot/ directory.
    • For example, in linux/MacOS run touch ssh while in the boot directory.
  1. Connect RPi 3B to your router via ethernet (you can also connect directly to your host machine and do internet sharing, but I’ll leave that as an exercise to the reader.)
  2. Insert SD card and power up!
  3. Connect USB power cable to power supply/hub and to the Pi

Finding IP Address

If you have access to your router’s admin panel, you can find out the newly assigned IP address for the Pi.

If not, you can use nmap to scan your local network and see who has port 22 open. For example: nmap -p 22 —open 192.168.1.0/24

Run configuration script

You should only have to do this once

  1. Run ./install.sh
  2. You’ll likely have to type yes to accept the new host key
  3. You’ll have to enter the raspberry pi’s password once here, it’s raspberry
  4. The rest of the installation/configuration might take a few min

NOTE: If you get a «WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!», you’ll have to go into your

/.ssh/known_hosts and remove the old signature

The default configuration is:

To change these values, you’ll have to edit install.sh

IP Forwarding is DISABLED by default, which means any device connecting to the rpi AP will not have access to the internet. Both of the capture_ scripts enable ip forwarding before starting and disable it after finishing.

Источник

Adblock
detector