Разведка по Wi-Fi и GPS с помощью Sparrow-wifi

Разведка по Wi-Fi и GPS с помощью Sparrow-wifi

Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь то устройства Bluetooth или Wi-Fi, вам стоит попробовать увлекательный инструмент на основе Python 3 под названием Sparrow-wifi. Он кроссплатформенный, простой в использовании и имеет впечатляющий графический интерфейс, который показывает уровень сигнала соседних устройств. Просмотрим как осуществляется разведка по Wi-Fi и GPS с помощью Sparrow-wifi.

Что можно сделать с помощью Sparrow-Wi-Fi

Ghostop14 создал Sparrow-wifi для установки на Raspberry Pi, прикрепленном к дрону или вездеходу, для использования в боевых полетах или вождении. Его даже протестировали на воздушном дроне 3DR Solo, и вы можете прочитать больше об их опыте использования Sparrow-wifi на Raspberry Pi и дрона на странице GitHub. Мы просто будем использовать его в системе Kali Linux, работающей на ноутбуке, но для проекта на базе Pi он будет аналогичен.

Прежде чем приступить к использованию Sparrow-wifi, полезно показать, на что он способен. Являясь «инструментом определения спектра Wi-Fi следующего поколения в диапазонах 2,4 ГГц и 5 ГГц», он имеет возможности Wi-Fi, программно-определяемую радиосвязь, расширенные возможности Bluetooth и возможности GPS (которые также можно подключить к GPS на дронах и вездеходах). Наиболее выдающиеся особенности, на которые стоит обратить внимание сегодня, включают, помимо прочего:

  • Наложение спектров 2,4 ГГц и 5 ГГц в режиме реального времени поверх спектра Wi-Fi.
  • Определите информацию SSID для ближайших устройств через Wi-Fi.
  • Определите ближайшие устройства Bluetooth и Bluetooth LE.
  • Отслеживайте источники рекламы Bluetooth LE (iBeacons) с помощью окна телеметрии.
  • Рассылайте свои собственные рекламные объявления iBeacon.
  • Управляйте боевыми полетами или военными двигателями с помощью Raspberry Pi на дроне или вездеходе, используя графический интерфейс или автономные режимы сканирования и записи.
  • Импортируйте или экспортируйте из или в файл CSV или файл JSON.
  • Просматривайте местоположения на Картах Google по координатам GPS, предоставленным обнаруженными устройствами SSID или Bluetooth, что может быть полезно для построения графика телеметрии Wi-Fi с течением времени.

Что вам нужно для начала

Вам понадобится адаптер беспроводной сети, который можно перевести в режим монитора. Кроме того, вам понадобится компьютер для его запуска с Python 3, и все.

Обновление и улучшение Kali

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

~$ sudo apt update && sudo apt upgrade

Hit:1 http://kali.download/kali kali-rolling InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
17 packages can be upgraded. Run 'apt list --upgradable' to see them.
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages were automatically installed and are no longer required:
  fonts-glyphicons-halflings gir1.2-appindicator3-0.1 libappindicator3-1
  libboost-iostreams1.67.0 libboost-system1.67.0 libboost-thread1.67.0
  libgdal26 libicu63 libmpdec2 libprotobuf22 libpython3.7-minimal
  libpython3.7-stdlib libqhull7 libre2-6 libx264-155 libx265-179
  php7.3-mysql python3-flask-session python3-pcapfile python3.7
  python3.7-minimal ruby-did-you-mean
Use 'sudo apt autoremove' to remove them.
The following packages have been kept back:
  crackmapexec gcc-10-base lib32gcc-s1 lib32stdc++6 libatomic1 libcc1-0
  libgcc-s1 libgfortran5 libgomp1 libitm1 liblsan0 libobjc4 libquadmath0
  libstdc++6 libtsan0 libubsan1 php-common
0 upgraded, 0 newly installed, 0 to remove and 17 not upgraded.

Установите необходимые зависимости

Теперь нам нужно установить некоторые необходимые инструменты Python 3 и GPS, включая python3-pip, gpsd, gpsd-clients, python3-tk и python3-setuptools. Для этого используйте следующую команду.

~$ sudo apt install python3-pip gpsd gpsd-clients python3-tk python3-setuptools

Reading package lists... Done
Building dependency tree
Reading state information... Done
python3-setuptools is already the newest version (46.1.3-1).
python3-setuptools set to manually installed.
The following additional packages will be installed:
  gpsd-tools libgps26 python-pip-whl python3-gps python3-wheel
Suggested packages:
  tix python3-tk-dbg
The following NEW packages will be installed:
  gpsd gpsd-clients gpsd-tools libgps26 python-pip-whl python3-gps
  python3-pip python3-wheel
The following packages will be upgraded:
  python3-tk
1 upgraded, 8 newly installed, 0 to remove and 824 not upgraded.
Need to get 3,533 kB of archives.
After this operation, 7,755 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://kali.download/kali kali-rolling/main amd64 libgps26 amd64 3.20-12 [98.6 kB]
Get:2 http://kali.download/kali kali-rolling/main amd64 gpsd amd64 3.20-12 [413 kB]
Get:3 http://kali.download/kali kali-rolling/main amd64 gpsd-tools amd64 3.20-12 [299 kB]
Get:4 http://kali.download/kali kali-rolling/main amd64 python3-gps amd64 3.20-12 [105 kB]
Get:5 http://kali.download/kali kali-rolling/main amd64 gpsd-clients amd64 3.20-12 [432 kB]
Get:6 http://kali.download/kali kali-rolling/main amd64 python-pip-whl all 20.0.2-5kali1 [1,842 kB]
Get:7 http://kali.download/kali kali-rolling/main amd64 python3-wheel all 0.34.2-1 [24.0 kB]
Get:8 http://kali.download/kali kali-rolling/main amd64 python3-pip all 20.0.2-5kali1 [211 kB]
Get:9 http://kali.download/kali kali-rolling/main amd64 python3-tk amd64 3.8.5-1 [109 kB]
Fetched 3,533 kB in 1s (2,563 kB/s)
Reading changelogs... Done
Selecting previously unselected package libgps26:amd64.
(Reading database ... 287092 files and directories currently installed.)
Preparing to unpack .../0-libgps26_3.20-12_amd64.deb ...
Unpacking libgps26:amd64 (3.20-12) ...
Selecting previously unselected package gpsd.
Preparing to unpack .../1-gpsd_3.20-12_amd64.deb ...
Unpacking gpsd (3.20-12) ...
Selecting previously unselected package gpsd-tools.
Preparing to unpack .../2-gpsd-tools_3.20-12_amd64.deb ...
Unpacking gpsd-tools (3.20-12) ...
Selecting previously unselected package python3-gps.
Preparing to unpack .../3-python3-gps_3.20-12_amd64.deb ...
Unpacking python3-gps (3.20-12) ...
Selecting previously unselected package gpsd-clients.
Preparing to unpack .../4-gpsd-clients_3.20-12_amd64.deb ...
Unpacking gpsd-clients (3.20-12) ...
Selecting previously unselected package python-pip-whl.
Preparing to unpack .../5-python-pip-whl_20.0.2-5kali1_all.deb ...
Unpacking python-pip-whl (20.0.2-5kali1) ...
Selecting previously unselected package python3-wheel.
Preparing to unpack .../6-python3-wheel_0.34.2-1_all.deb ...
Unpacking python3-wheel (0.34.2-1) ...
Selecting previously unselected package python3-pip.
Preparing to unpack .../7-python3-pip_20.0.2-5kali1_all.deb ...
Unpacking python3-pip (20.0.2-5kali1) ...
Preparing to unpack .../8-python3-tk_3.8.5-1_amd64.deb ...
Unpacking python3-tk:amd64 (3.8.5-1) over (3.8.2-2) ...
dpkg: warning: unable to delete old directory '/usr/lib/python3.7/tkinter': Directory not empty
Setting up libgps26:amd64 (3.20-12) ...
Setting up gpsd-tools (3.20-12) ...
Setting up python3-tk:amd64 (3.8.5-1) ...
Setting up python3-wheel (0.34.2-1) ...
Setting up python-pip-whl (20.0.2-5kali1) ...
Setting up python3-gps (3.20-12) ...
Setting up gpsd (3.20-12) ...
Creating/updating gpsd user account...
gpsd.socket is a disabled or a static unit, not starting it.
gpsd.service is a disabled or a static unit, not starting it.
gpsd.socket is a disabled or a static unit, not starting it.
Setting up gpsd-clients (3.20-12) ...
Setting up python3-pip (20.0.2-5kali1) ...
Processing triggers for desktop-file-utils (0.24-1) ...
Processing triggers for mime-support (3.64) ...
Processing triggers for libc-bin (2.30-4) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for kali-menu (2020.2.2) ...

Прежде чем устанавливать следующий пакет необходимых инструментов, вам следует сначала обновить pip3, чтобы предотвратить ошибки, с которыми столкнулись другие при установке других зависимостей. Используйте следующую команду, чтобы сделать это.

~$ sudo pip3 install --upgrade pip

Collecting pip
  Downloading pip-20.2.2-py2.py3-none-any.whl (1.5 MB)
     |████████████████████████████████| 1.5 MB 1.0 MB/s
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 20.0.2
    Not uninstalling pip at /usr/lib/python3/dist-packages, outside environment /usr
    Can't uninstall 'pip'. No files were found to uninstall.
Successfully installed pip-20.2.2

Наконец, установите последний пакет зависимостей, необходимых для Sparrow-wifi, в который входят QScintilla, PyQtChart, gps3,dronekit, manuf, python-dateutil, numpy и matplotlib.

~$ sudo pip3 install QScintilla PyQtChart gps3 dronekit manuf python-dateutil numpy matplotlib

Collecting QScintilla
  Downloading QScintilla-2.11.5-cp35.cp36.cp37.cp38-abi3-manylinux2014_x86_64.whl (2.6 MB)
     |████████████████████████████████| 2.6 MB 1.0 MB/s
Collecting PyQtChart
  Downloading PyQtChart-5.15.0-5.15.0-cp35.cp36.cp37.cp38-abi3-manylinux2014_x86_64.whl (1.2 MB)
     |████████████████████████████████| 1.2 MB 7.2 MB/s
Collecting gps3
  Downloading gps3-0.33.3-py2.py3-none-any.whl (29 kB)
Collecting dronekit
  Downloading dronekit-2.9.2-py3-none-any.whl (56 kB)
     |████████████████████████████████| 56 kB 5.9 MB/s
Collecting manuf
  Downloading manuf-1.1.1-py3-none-any.whl (539 kB)
     |████████████████████████████████| 539 kB 10.4 MB/s
Requirement already satisfied: python-dateutil in /usr/lib/python3/dist-packages (2.8.1)
Requirement already satisfied: numpy in /usr/lib/python3/dist-packages (1.17.4)
Requirement already satisfied: matplotlib in /usr/lib/python3/dist-packages (3.2.1)
Requirement already satisfied: PyQt5>=5.10.1 in /usr/lib/python3/dist-packages (from QScintilla) (5.14.2)
Collecting PyQt5-sip<13,>=12.8
  Downloading PyQt5_sip-12.8.0-cp38-cp38-manylinux1_x86_64.whl (293 kB)
     |████████████████████████████████| 293 kB 11.2 MB/s
Collecting pymavlink>=2.2.20
  Downloading pymavlink-2.4.9.tar.gz (3.6 MB)
     |████████████████████████████████| 3.6 MB 8.2 MB/s
Collecting monotonic>=1.3
  Downloading monotonic-1.5-py2.py3-none-any.whl (5.3 kB)
Requirement already satisfied: future in /usr/lib/python3/dist-packages (from pymavlink>=2.2.20->dronekit) (0.18.2)
Requirement already satisfied: lxml in /usr/lib/python3/dist-packages (from pymavlink>=2.2.20->dronekit) (4.5.0)
Building wheels for collected packages: pymavlink
  Building wheel for pymavlink (setup.py) ... done
  Created wheel for pymavlink: filename=pymavlink-2.4.9-cp38-cp38-linux_x86_64.whl size=3695087 sha256=91c89fc1e95245a57d461a2cb23fcbd10c7319249cf782eb575c17fbe1e3ffa0
  Stored in directory: /root/.cache/pip/wheels/3b/26/1c/5500a65a7d7ac54cade1db721eefce7b5c6e451862a21423bb
Successfully built pymavlink
Installing collected packages: PyQt5-sip, QScintilla, PyQtChart, gps3, pymavlink, monotonic, dronekit, manuf
Successfully installed PyQt5-sip-12.8.0 PyQtChart-5.15.0 QScintilla-2.11.5 dronekit-2.9.2 gps3-0.33.3 manuf-1.1.1 monotonic-1.5 pymavlink-2.4.9
PyQtChart gps3 dronekit manuf python-dateutil numpy matplotlib

Установка Sparrow-wifi

Теперь мы готовы установить Sparrow-wifi, который вы можете клонировать из репозитория GitHub. Это так просто, и мы можем начать погружаться в то, что он может предложить и как использовать его для беспроводной разведки.

~$ git clone https://github.com/ghostop14/sparrow-wifi

Cloning into 'sparrow-wifi'...
remote: Enumerating objects: 75, done.
remote: Counting objects: 100% (75/75), done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 593 (delta 42), reused 53 (delta 22), pack-reused 518
Receiving objects: 100% (593/593), 2.13 MiB | 3.14 MiB/s, done.
Resolving deltas: 100% (397/397), done.

Запуск Sparrow- wifi

Установив Sparrow-wifi, перейдем в его каталог:

~$ cd sparrow-wifi

~/sparrow-wifi$

И посмотрим, что внутри:

~/sparrow-wifi$ ls

docs                        sparrowhackrf.py
images                      sparrowmap.py
__init__.py                 sparrowrpi.py
LICENSE                     sparrow-screenshot.png
README.md                   sparrowtablewidgets.py
rpi.setup_prerequisites.sh  sparrowwifiagent.cfg.sample
scripts                     sparrowwifiagent.py
sparrowbluetooth.py         sparrow-wifi.py
sparrowcommon.py            spectrum-screenshot.png
sparrowdialogs.py           telemetry.py
sparrowdrone.py             telemetry-screenshot.png
sparrow-elastic.py          wifi_icon.png
sparrowgps.py               wirelessengine.py

Сегодня мы просто хотим использовать основной скрипт sparrow-wifi.py; запустите это, используя

~/sparrow-wifi$ sudo ./sparrow-wifi.py

WARNING: CPU random generator seem to be failing, disable hardware random number generation
WARNING: RDRND generated: 0xffffffff 0xffffffff 0xffffffff 0xffffffff
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'

Используйте Sparrow-Wi-Fi для разведки

Эта последняя команда должна открыть графический интерфейс Sparrow-wifi. Как только он заработает, мы сможем выбрать интерфейс, который хотим сканировать, в раскрывающемся меню «Local Interface». Затем нажмите кнопку «Scan» рядом с ним.

Он немедленно начнет сканирование близлежащих устройств, показывая их SSID, MAC-адреса, имена поставщиков, протоколы безопасности, каналы, частоты, уровень сигнала, пропускную способность и многое другое. Он даже покажет, когда устройства были замечены в первый и последний раз.

Хотя у меня не активирован GPS, вы можете щелкнуть значок GPS в правом верхнем углу окна, чтобы открыть XGPS, который покажет вам спутники, используемые для определения местоположения GPS, а также другие полезные данные.

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

Далее у нас есть «Geo» который покажет нам некоторые инструменты для GPS. Например, есть мониторинг координат GPS, который сообщит нам последние действительные координаты. Мы также можем запустить XGPS отсюда, как и раньше, щелкнув значок GPS. У нас также есть способ создать карту точек доступа, которую вы можете попытаться использовать, чтобы увидеть, что к вам относится. Также есть возможность создать карту SSID на основе телеметрии, которая больше касается уровня сигнала и других данных.

Теперь о меню «Bluetooth». Если у вас включен Bluetooth, вы можете создать iBeacon или отсканировать существующие, при условии, что устройство Bluetooth отправляет рекламу. Это не всегда так, поскольку устройства Bluetooth отличаются от Wi-Fi с точки зрения того, как они рекламируют себя и как их можно обнаружить. Например, они скачкообразно меняют частоты, поэтому никогда не будут смотреть график Wi-Fi на частоте 2,4 ГГц, что затрудняет их отслеживание. К сожалению, вы также не можете одновременно сканировать устройства Bluetooth и Bluetooth LE.

В пункте меню  «Spectrum» можно настроить коэффициент усиления анализатора спектра, но для наших целей сегодня это не интересует.

Рядом с кнопкой «Scan»/»Stop scanning» вы можете выбрать другой режим сканирования из раскрывающегося списка. Мы выбрали «Normal», но если мы переключим его на «Hunt, » выберем канал, к которому мы хотим сузить его, а затем повторим сканирование для поиска конкретной сети.

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

Теперь в левой нижней панели 2,4 ГГц мы можем видеть, какие спектры используются и где они находятся. Чтобы, если мы хотели сосредоточиться на чем-то конкретном, мы могли нажать на один из результатов.

Как только результат будет выделен, вы можете перейти в меню «Telemetry»и выбрать «Telemetry For Selected Network.»

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

На самом деле я не двигаюсь, поэтому вы не увидите большого скачка уровня сигнала на моих скриншотах, но если вы переместите направленную антенну и направите ее в правильном направлении, вы увидите большой всплеск мощности. в верхней левой панели. Подобные всплески вы можете увидеть в наших руководствах по выбору правильной антенны для взлома Wi-Fi и поиску устройств Wi-Fi с направленной антенной. Но настроить Wireshark намного сложнее, чем просто включить Sparrow-wifi.

Заключение

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Click to rate this post!
[Total: 0 Average: 0]

Leave a reply:

Your email address will not be published.