Новая версия Kismet

Программа для мониторинга Wi-Fi

Kismet — это детектор беспроводных сетей 802.11, сниффер и система выявления вторжений. Программа мониторит беспроводное пространство и ведёт журналы обнаруженных устройств и различных событий (например, беспроводных атак). При использовании GPS модуля, Kismet умеет записывать координаты увиденных точек доступа. Благодаря этому впоследствии можно накладывать найденные Wi-Fi точки доступа на карту.

На протяжении последних лет ведётся активная работа над новой версией Kismet. Эта версия находится в стадии BETA, но она хорошо работает. Самое главное — новая версия принесла множество изменений!

Теперь Kismet — это программа для обнаружения беспроводных сетей и устройств, сниффер, инструмент вардрайвинга и платформа WIDS (обнаружения беспроводных вторжений). Kismet работает с Wi-Fi интерфейсами, Bluetooth интерфейсами, некоторыми устройствами SDR (software defined radio) такими как RTLSDR и другим специализированным железом по захвату данных.

Kismet работает на Linux, OSX, и, в некоторой степени, Windows 10 под платформой WSL. На Linux она работает с большинством Wi-Fi карт, Bluetooth интерфейсами и другими аппаратными составляющими. На OSX она работает с встроенными Wi-Fi интерфейсами, а на Windows 10 она будет работать с удалёнными захватчиками.

Kismet находится в стадии активной разработки, последние тестовые версии представили:

  • Новые графический пользовательский веб интерфейс
  • HTTP/HTTPS API с поддержкой скриптов с записями данных JSON
  • Новый унифицированный формат журнала kismetdb, который сохраняет пакеты, локации, сообщения и записи устройств в единый файл
  • Живая трансляция PCAP захвата через HTTP
  • Выборочный поиск по истории пакетов
  • Новый супер лёгкий код удалённого захвата для использования на устройствах с экстримально ограниченным объёмом оперативной памяти (RAM) и хранилищем
  • Прозрачный удаленный захват пакетов от сетевых датчиков
  • PCAP-NG мульти интерфейсный multi-dlt захват
  • Поддержка не-Wi-Fi протоколов, таких как Bluetooth, низкочастотные датчики окружающей среды, беспроводные клавиатуры и мыши и другое

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

Посмотреть скриншоты старой версии вы можете здесь: https://kali.tools/?p=1118

Либо вы можете запустить её в своей Kali Linux или BlackArch и посмотреть, как выглядит версия 2016_07_R1. Ниже в данной статье вы можете посмотреть как выглядит 2018-08-BETA1(номер версии вроде как августовский, но в код постоянно вносятся изменения.

Как установить новую версию Kismet

Нужно удалить предыдущую версию, если она была установлена. В Kali Linux для этого выполните:

sudo apt remove kismet

В BlackArch, Arch Linux для удаления Kismet выполните:

sudo pacman -R kismet

Кстати, о том как обновить бета версию Kismet показано в конце этой статьи — там же показано, как удалить Kismet, если она установлена вручную.

Теперь нужно установить зависимости.

В Kali Linux, Ubuntu, Debian, Linux Mint для этого выполните:

sudo apt install build-essential git libmicrohttpd-dev pkg-config zlib1g-dev libnl-3-dev libnl-genl-3-dev libcap-dev libpcap-dev libnm-dev libdw-dev libsqlite3-dev libprotobuf-dev libprotobuf-c-dev protobuf-compiler protobuf-c-compiler libsensors4-dev python python-setuptools python-protobuf python-requests librtlsdr0 python-usb python-paho-mqtt libusb-1.0-0-dev

В BlackArch, Arch Linux для установки зависимостей Kismet выполните:

sudo pacman -S libmicrohttpd git pkgconf zlib libnl libcap libpcap libnm libdwarf sqlite protobuf protobuf-c lm_sensors python2 python2-setuptools python2-protobuf python2-requests rtl-sdr python2-pyusb libusb --needed

Если вы не знаете, что такое rtl_433, то пропустите этот шаг. Для поддержки rtlsdr rtl_433 установите:

sudo pacman -S rtl-sdr python2-pyusb --needed
sudo pip2 install paho-mqtt

А также инструмент rtl_433 tool из https://github.com/merbanan/rtl_433.

Для поддержки Mousejack/nRF и других USB устройств установите:

sudo pacman -S libusb --needed

Установка зависимостей в Fedora (и родственные дистрибутивы):

sudo dnf install make automake gcc gcc-c++ kernel-devel git libmicrohttpd-devel pkg-config zlib-devel libnl3-devel libcap-devel libpcap-devel NetworkManager-libnm-devel libdwarf libdwarf-devel elfutils-devel libsqlite3x-devel protobuf-devel protobuf-c-devel protobuf-compiler protobuf-c-compiler lm_sensors-devel libusb-devel fftw-devel

Далее процесс установки одинаковый на всех системах.

Клонируем репозиторий:

git clone https://www.kismetwireless.net/git/kismet.git

Переходим в его папку:

cd kismet

Если репозиторий скачен ранее, то обновите его:

git pull

Запустите конфигурацию. Будут учтены все особенности вашей системы и выполнена подготовка для компиляции Kismet. Если у вас отсутствуют какие-либо зависимости или версии библиотек не совместимы, то вы узнаете о проблемах на этом этапе:

./configure

Если конфигурация прошла успешно, то будет выведено сообщение Configuration complete: и краткая информация, которая покажет какие ключевые функции включены или отключены. Там же будут предупреждения об отсутствующих зависимостях, которые коренным образом повлияют на скомпилированную Kismet.

Компиляция выполняется командой:

make

Но вы можете значительно ускорить процесс, добавив опцию -j # с которой укажите количество имеющихся у вас ядер CPU. Для автоматической компиляции на всех доступных ядрах:

make -j$(nproc)

Этот второй вариант является предпочтительным, поскольку компиляция происходит реально долго! Но помните: C++ использует для компиляции довольно много RAM, поэтому в зависимости от количества доступной оперативной памяти на вашей системе вам может понадобиться ограничить количество одновременно запущенных процессов.

Запуск компиляции на 12 ядрах:

Видно, что количество используемой оперативной памяти подскочило до 9 Гигабайт, а в пиковые моменты достигало 12 Гигабайт. Зато сама компиляция прошла примерно за минуту (на одном ядре компиляция занимала минут 10+).

Установка Kismet. В большинстве случаев вам следует установить Kismet как suid-root (с suid'ным битом). Kismet автоматически добавит группу и установит соответствующие бинарные файлы для захвата.

Будучи установленной как suid-root, Kismet будет запускать бинарники, которые контролируют каналы и интерфейсы с нужными привилегиями, но процессы декодирования пакетов и запуск веб-интерфейса будет выполнен без рут привилегий.

sudo make suidinstall

Добавьте себя в группу kismet:

sudo usermod -aG kismet $USER

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

Проверьте, входите ли вы в группу Kismet:

groups

Если вы не в группе kismet (то есть если среди выведенных групп отсутствует kismet), то вам нужно выйти полностью или просто перезагрузите компьютер.

Запуск Kismet

Если вы установили Kismet с suid'ным битом, то для запуска программы не требуется указывать sudo, то есть можно запустить так:

kismet

Теперь откройте веб-браузер и перейдите там по адресу http://localhost:2501.

Нас приветствует сообщение:

В нём сказано, что это наш первый запуск Kismet, что программа хранит свои настройки в хранилище HTML5 браузера и что нам нужно выполнить вход и установить другие настройки.

В данный момент запущен только веб-интерфейс — никакие данные ещё не собираются.

Также нам показывают сообщение:

Оно говорит о том, что вход ещё не выполнен. Для нас сгенерированы учётные данные, которые помещены в файл ~/.kismet/kismet_httpd.conf. Если вы запустили команду от рута (например, с sudo), тогда файл будет находиться по пути /root/.kismet/kismet_httpd.conf

Посмотрим содержимое этого файла:

cat ~/.kismet/kismet_httpd.conf

Пример:

httpd_password=YiHFRC8Yreg86DJh
httpd_username=kismet

Нажмите на кнопку Settings, вы окажетесь во вкладке Login & Password. Введите там ваши данные, которые вы посмотрели в файле kismet_httpd.conf:

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

Теперь, чтобы начать собирать данные, нужно вновь зайти в меню, там выберите пункт Data Sources.

В списке доступных устройств найдите то, которое вы хотите использовать для сбора данных, разверните его и нажмите кнопку Enable Sources:

С именем hci0 — это Bluetooth устройство — я также включил и его для сбора данных:


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

Для Wi-Fi устройств доступны разные настройки:

В первой строке можно поставить мониторинг с помощью этого устройства на паузу (Paused) или возобновить его (Running). Во второй строке можно выбрать прослушивать один канал (Lock) или автоматическое переключение по каналам (Hop). На следующей строке можно выбрать каналы, которые вы хотите прослушивать.

Пример захватываемой информации в Kismet:

Доступен поиск:

Можно делать сортировку по различным признакам. Например, по количеству клиентов:

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

Или по количеству переданных данных:

Можно кликнуть на заинтересовавшее устройство и посмотреть подробную его информацию. Информация об устройстве:

Информация о Wi-Fi:

График активности по передачи данных:

Настройка Kismet

В меню настройки Kismet вы можете добавить или удалить отображаемые поля:

Также вы можете выбрать цвета для подсвечивания особенно важных данных:

Пример использования Kismet для определения направления, в котором находится Wi-Fi устройство

Ситуация: имеется Точка Доступа к которой я могу подключиться, но которая находится довольно далеко и из-за этого связь иногда разрывается.

Моя цель: определить направление, в котором находится целевая ТД, чтобы верно повернуть направленную антенну.

Вместо направленной антенны, например, можно использовать Wi-Fi адаптер с обычной антенной, но переставлять его в разные места комнаты/квартиры, для определения места с наилучшим сигналом связи.

Итак, целевая точка доступа Paangoon_2G, смотрим её характеристики:

Точка Доступа работает на 9 канале, уровень сигнала с обычной антенной -75 dbm.

Ставим на паузу ненужные источники данных:

Включаем адаптер с направленной антенной и настраиваем его прослушивать только 9 канал:

Переходим в настройке выбора подсвечиваемых данных и ставим галочку напротив Active:

Это включит подсветку бирюзовым активных точек доступа. Активными считаются те, от которых получены какие-либо данные в течение последних 10 секунд. Дело в том, что если Точка Доступа больше не видна, то она не пропадает из списка и в качестве уровня сигнала показывает последнее значение. Поэтому иногда не сразу можно понять, что ТД уже давно не видна.

Пробуем повернуть антенну или перенести Wi-Fi адаптер в разных направлениях. Также можно попробовать разные антенны.

Чем больше значение (отрицательные величины чем ближе к нулю, тем они больше) — тем лучше сигнал:

В некоторых направлениях сигнал будет ухудшаться:

Если ТД «побелела» значит её больше вовсе не видно:

Данные могут «прыгать» просто от невидимых нам причин. Не нужно торопиться с перемещением антенны или адаптера, так как данные обновляются не сразу.

Как обновить бета версию Kismet

Нужно начать с полного удаления старой версии Kismet. Поскольку она устанавливалась не через стандартный менеджер пакетов, то нужно удалить все файлы вручную (обратите внимание, что также удаляются все конфигурационные файлы):

sudo rm -rf /root/.kismet /usr/local/share/kismet
sudo rm /usr/bin/kismet* /usr/local/bin/kismet* /usr/local/etc/kismet* /usr/local/lib/pkgconfig/kismet.pc

Затем нужно выполнить установку (процесс установки зависимостей пропущен, так как выполняется обновление, а не первая установка):

git clone https://www.kismetwireless.net/git/kismet.git
cd kismet

Если репозиторий скачен ранее, то обновите его:

git pull

Конфигурация:

./configure

и компиляция

make
# ИЛИ
make -j$(nproc)

Если вам нужно принудительно пересоздать конфигурационные файлы (например, остались конфигурации от старой версии программы, а в новой версии формат конфигурационных файлов изменился), тогда в папке kismet выполните:

sudo make forceconfigs

Возможные проблемы

Если у вас какие-то трудности, то попробуйте остановить службу NetworkManager:

sudo systemctl stop NetworkManager.service

Иногда программа может показывать подсказку, что системный беспроводной регулятор доменов установлен на '00'; и что это может вызвать проблемы при настройке каналов. Если у вас возникают проблемы, то установите регулятор доменов командой вида

sudo iw reg set BZ

на тот домен, который подходит для вашей локации.

Заключение

Это обзорная, довольно поверхностная статья по новым возможностям и новому пользовательскому интерфейсу Kismet. Не рассмотренными остались вопросы запуска Kismet как службы, настройка конфигурационных файлов, файлы журналов .kismet-journal и .kismet, опции командной строки и другие довольно важные вопросы.

При выходе стабильной версии будет обновлена документация (https://kali.tools/?p=1118) и будут написаны дополнительные инструкции.

Вы уже знаете о факультете информационной безопасности от GeekBrains? Комплексная годовая программа практического обучения с охватом всех основных тем, а также с дополнительными курсами в подарок. По итогам обучения выдаётся свидетельство установленного образца и сертификат. По этой ссылке специальная скидка на любые факультеты и курсы!

Рекомендуется Вам:

2 комментария to Новая версия Kismet

  1. ranon:

    Ростелеком блочит кисмит юзайте ВПН

  2. ranon:

    Если при установке зависимости вышла ошибка - файлы ненайдены то apt-get update может помочь

Добавить комментарий

Ваш e-mail не будет опубликован.