Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/sensepost/snoopy-ng
OSINT (Разведка открытых источников)Сниффинг и анализ пакетовРазведкаБезопасность BluetoothКартирование сетиЭксфильтрация данныхСбор информацииБезопасность беспроводных сетейТестирование на ПроникновениеКомандование и УправлениеКраулерАнализ DNS
4431299 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
GitHubsensepost/snoopy-ng

snoopy-ng

Snoopy v2.0 — модульный фреймворк цифрового наземного отслеживания

Репозиторий

SensePost представляет:

root@kitploit:~
  /$$$$$$                                                   
 /$$__  $$                                                  
| $$  \__/ /$$$$$$$   /$$$$$$   /$$$$$$   /$$$$$$  /$$   /$$
|  $$$$$$ | $$__  $$ /$$__  $$ /$$__  $$ /$$__  $$| $$  | $$
 \____  $$| $$  \ $$| $$  \ $$| $$  \ $$| $$  \ $$| $$  | $$
 /$$  \ $$| $$  | $$| $$  | $$| $$  | $$| $$  | $$| $$  | $$
|  $$$$$$/| $$  | $$|  $$$$$$/|  $$$$$$/| $$$$$$$/|  $$$$$$$
 \______/ |__/  |__/ \______/  \______/ | $$____/  \____  $$
                                        | $$       /$$  | $$
                                        | $$      |  $$$$$$/
                                        |__/       \______/
                        
                                               Version: 2.0
Code:    [email protected] // @glennzw
Visit:   www.sensepost.com // @sensepost
License: Non-commercial use

Добро пожаловать в Snoopy версии 2.0!

  1. Быстрая настройка ==============

Нет времени? Попробуйте это:

Установка и настройка Snoopy:

root@kitploit:~
bash install.sh

Сохранение данных плагинов wireless, sysinfo и heartbeat локально:

root@kitploit:~
snoopy -v -m wifi:mon=True -m sysinfo -m heartbeat -d myDrone -l London

Синхронизация данных с клиента на сервер:

Сервер:

root@kitploit:~
snoopy_auth --create myDrone     # Create account
snoopy -v -m server              # Start server plugin

Клиент:

root@kitploit:~
snoopy -v -m wifi:mon=True -s http://<server>:9001/ -d myDrone -l London -k <key>
  1. ВВЕДЕНИЕ И ОБЗОР ============================= Snoopy — это распределённая платформа для сбора данных с датчиков, их перехвата, анализа и визуализации. Она написана в модульном формате, что позволяет собирать произвольные данные из различных источников с помощью Python-плагинов.

  2. Архитектура

    Каждый экземпляр Snoopy может запускать несколько плагинов одновременно. Плагин собирает данные, которые запрашиваются основным процессом Snoopy и записываются в локальную базу данных. Snoopy может синхронизировать данные между клиентами (дронами) и сервером, а клиенты (дроны) также могут получать копии данных с сервера. Каждый экземпляр Snoopy может запускать плагины, подходящие для его роли в общей картине. Ниже приведена диаграмма одного из возможных вариантов развёртывания:

    root@kitploit:~
     Drone01                     Server01
     +---------------+           +--------------+
     | Plugins:      |           | Plugins:     |
     |   * WiFi      |           |  *Server     |
     |   * Bluetooth |====3G====>|              |<=========================\
     |   * GSM       |           |              |                          ||
     |   * FitBit    |           |              |                          ||
     +---------------+           +--------------+                          ||
                                                                           ||
     Drone02                      Server02               Server03          ||
     +---------------+            +--------------+       +-------------+   ||
     | Plugins:      |            | Plugins:     |       | Plugins:    |   ||
     |   * WiFi      |            |  * Server    |       |  * Server   |   ||
     |   * Cookie    |=====Xbee==>|  * Heartbeat |==3G==>|  * Wigle    |<==\
     |     thief     |   ||       |              |       |  * DataViz  |   ||
     |   * GPS       |   ||       |              |       |             |   ||
     +---------------+   ||       +--------------+       +-------------+   ||
                         ||                                             Internet
     Drone03             ||                             Laptop01           || 
     +---------------+   ||                            +--------------+    ||                                
     | Plugins:      |   ||                            | Plugins:     |    ||
     |   * Thermal   |   ||                            |  *RemotePull |    ||
     |   * Camera    |===/                             |              |====/
     |   * Heat      |                                 |  Run:        |
     |               |                                 |   *Maltego   |
     +---------------+                                 +--------------+
    

В приведённой выше иллюстрации три дрона запущены и синхронизируют свои данные с двумя отдельными серверами. Один синхронизируется через 3G, два других — через Xbee. Второй сервер синхронизирует свои данные с третьим сервером. Наконец, клиент (ноутбук) получает все данные с первого и третьего серверов и запускает Maltego для исследования данных.

  1. Установка и настройка

Выполнение 'sh install.sh' в каталоге snoopy-ng.git установит все необходимые пакеты. Он предлагает установить aircrack из исходных кодов, что требуется для дистрибутивов без этого пакета (набор aircrack используется для беспроводных плагинов). Мы настоятельно рекомендуем Maltego для исследования данных; бесплатную версию Community Edition (с некоторыми ограничениями) можно скачать на сайте Paterva по адресу http://paterva.com.


  1. ИСПОЛЬЗОВАНИЕ ========

Основы

Чтобы увидеть все доступные флаги и опции, мы подготовили для вас две команды:

root@kali:~# snoopy --help (shorthand -h)

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

root@kali:~# snoopy --list (shorthand -i)

Эта команда перечисляет все доступные плагины и параметры, необходимые каждому плагину для корректной работы. Для получения более подробной информации о каждом плагине используйте '-ii' или '-iii'. Чтобы получить информацию об одном конкретном плагине, используйте '-i -m '.

Плагины можно указывать с помощью опции --plugin (или сокращённо -m). Можно указать несколько плагинов, и они будут запускаться в порядке ввода. Каждому плагину даётся 60 секунд на сигнал о готовности, после чего наступает тайм-аут, и запускается следующий плагин. Это может быть полезно, если последующие плагины зависят от действий предыдущих.

Каждый плагин может принимать множество параметров (как указано в выводе --list) в виде разделённых запятыми пар ключ-значение. Ниже используется плагин 'example', который просто генерирует случайные числа.

root@kitploit:~
   snoopy --plugin example:x=1,v=True

Если опции дрона / местоположения не указаны, используются значения по умолчанию. Либо их можно задать, как показано ниже.

root@kitploit:~
   snoopy --plugin example:x=1,v=True --drone myDrone --location Cansas

Синхронизация данных

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

Сервер

root@kitploit:~
    root@server:~# snoopy_auth --create myDrone01 --verbose
    [+] Creating new Snoopy server sync account
    [+] Key for 'myDrone01' is 'GWWVF'
    [+] Use this value in client mode to sync data to a remote server.
    root@kali:~# snoopy --plugin server
    [+] Running webserver on '0.0.0.0:9001'
    [+] Plugin server caught data for 2 tables.

Клиент

root@kitploit:~
    root@client:~# snoopy --plugin example:x=1 --drone myDrone --key GWWVF --server http://<server_ip>:9001/ --verbose
    [+] Starting Snoopy with plugins: example
    [+] Plugin example created new random number: 21
    [+] Snoopy successfully sunc 2 elements over 2 tables.

Удалённое получение данных

Данные можно получить с сервера с помощью плагина local_sync. Например, предположим, что сервер, как указано выше, запущен, и выполните эту операцию на клиенте:

root@kitploit:~
root@client:~# snoopy --plugin local_sync:server_url=http://<server_ip>:9001/ --drone myDrone --key GWWVF
[+] Plugin local_sync pulled 888 records from remote server.

Хранение базы данных

По умолчанию все данные сохраняются в SQLITE-файл snoopy.db. Это можно переопределить параметром --dbms. О том, как указать другие движки баз данных, читайте в документации SQL Alchemy (http://docs.sqlalchemy.org/en/rel_0_9/dialects/index.html). Например, ниже используется MySQL:

root@kitploit:~
    root@client:~# snoopy -v --plugin example --dbms=mysql://glenn:secret@localhost/snoopy_db
    [+] Capturing local only. Saving to 'mysql://glenn:secret@localhost/snoopy_db'   

Может быть полезно использовать SQLITE-хранилище на небольших устройствах, а серверный плагин пусть сохраняет данные в MySQL (или аналогичную СУБД). Дополнительный пример пригодится, когда нужно указать расположение файла для хранения данных, например на съёмном носителе:

root@kitploit:~
    root@client:~# snoopy -v --plugin example --dbms=sqlite:////media/USB01/snoopy.db

Существует опция --flush (-f) для "очистки" данных из локального хранилища после их синхронизации с вышестоящим сервером.

Запуск служб при загрузке

Snoopy можно запускать с помощью upstart-скрипта (см. папку ./setup/upstarts). В той же директории находятся другие примеры upstart-скриптов — например, для поднятия PPP-соединения через 3G-модем и для создания удалённого SSH-канала команд.

Похоже, системы на основе Debian (например, Kali) не поддерживают upstart. В качестве временного решения можно использовать прилагаемый файл rc.local для запуска Snoopy и связанных служб при загрузке.


  1. ВИЗУАЛИЗАЦИЯ ДАННЫХ =====================

Maltego — предпочтительный инструмент для визуализации. Инструкции ниже:

  1. Откройте Maltego
  2. Выберите 'Import Configuration'
  3. Выберите 'snoopy_entities.mtz' в папке transforms

Это импортирует как сущности, так и трансформы. Чтобы начать, перетащите сущность 'Base of Operations' из вкладки Snoopy в меню Palette на пустой граф. Например, выполните следующие операции с сущностью:

  1. Нажмите правой кнопкой мыши, выберите Transforms, затем 'Get Drones'
  2. На нужном дроне нажмите правой кнопкой мыши и выберите 'Get Location'
  3. На нужном местоположении нажмите правой кнопкой мыши и выберите 'Get Clients'
  4. На нужных клиентах нажмите правой кнопкой мыши и выберите 'Get Observations'

Существуют трансформы для получения доменов и cookie-файлов (при пассивном мониторинге), поиска адресов по SSID, а некоторые являются двунаправленными (например, можно искать клиентов по Location или Locations по клиенту). Лучше всего экспериментировать.

Указание базы данных

Если вы не используете формат sqlite по умолчанию, отредактируйте следующий файл, чтобы указать расположение данных:

root@kitploit:~
    snoopy_ng/transforms/db_path.conf

Совместное использование графа

Граф Snoopy может одновременно использоваться несколькими аналитиками с помощью функции совместной работы Maltego. Выберите Collaboration и 'Share Current Graph'.


  1. КОММЕРЧЕСКОЕ ИСПОЛЬЗОВАНИЕ =================== Лицензия, под которой выпускается Snoopy, запрещает получение финансовой или иной выгоды от его использования (см. LICENSE.txt). У нас есть отдельная лицензия для коммерческого использования, которая включает дополнительные функции, такие как:

    • Синхронизация данных через XBee
    • Расширенные плагины
    • Дополнительные/настраиваемые трансформы
    • Веб-интерфейс
    • Готовые дроны

Свяжитесь с нами ([email protected] / [email protected]), если вы хотите с нами поработать.


  1. ПРИЛОЖЕНИЕ =========== Написание плагинов

О том, как следует писать плагины, читайте в файле plugins/example.py. Любой файл, помещённый в папку plugins, будет рассматриваться как плагин и должен обладать следующими свойствами:

  1. Предоставлять информацию о плагине и определения необязательных параметров.
  2. Предоставлять определения схемы SQL-таблиц для данных, которые он будет собирать.
  3. Возвращать данные в указанном выше формате при запросе.

В остальном плагин может делать всё, что угодно.

Оборудование

Snoopy будет работать на любом Linux-устройстве с достаточной поддержкой для установки файлов из install.sh, то есть Python и связанных пакетов. Поддержка оборудования зависит от требуемых плагинов, но для наиболее распространённого сценария — сбора WiFi-данных и загрузки через 3G — рекомендуется следующее:

  • BeagleBone Black
  • USB-хаб с питанием (с Y-разветвителем, чтобы сэкономить на двух розетках)
  • WiFi-адаптер Alfa AWUS036h
  • Модем Huawei E160
  • BlueNext BN903S GPS
  • Блок питания не менее 2A (зависит от подключённых периферийных устройств)

Операционная система

Протестированы Kali 1.05 и Ubuntu 12.04. Аналогичные системы также должны работать.

Дополнительные примечания:

  • Вы можете запускать сколько угодно плагинов одновременно. Плагины инициализируются последовательно, в порядке, указанном в командной строке.
  • Следующий плагин начнёт инициализацию только после того, как предыдущий сообщит о готовности (с тайм-аутом 60 секунд). Это полезно, если последующие плагины зависят от предыдущих.

Известные проблемы

Ошибка возникает при локальном сборе данных, синхронизации с удалённым сервером и последующем получении реплики с сервера. Например:

Сервер

root@kitploit:~
    root@kali:~# snoopy -m server -m wigle:username=u,password=p,[email protected]
    [+] Running webserver on '0.0.0.0:9001'
    [+] Plugin server caught data for 2 tables.

Клиент

root@kitploit:~
	root@client:~# snoopy -m wifi -m local_sync:server_url=http://1.1.1.1:9001/ -d myDrone -l London -k secretkey -s http://1.1.1.1:9001/
Скачать инструмент
snoopy-ng — Snoopy v2.0 — модульный фреймворк цифрового наземного отслеживания | Kitploit