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

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

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

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

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

Категории

Все категории
Loading categories
reconswarm — Расширьте свою разведку с помощью облачных мощностей | Kitploit
Инструменты/GitHubGitHub/renatus-cartesius/reconswarm
РазведкаТестирование на ПроникновениеБезопасность облачных средDevSecOpsПеречисление Поддоменов
GitHubrenatus-cartesius/reconswarm

reconswarm

Расширьте свою разведку с помощью облачных мощностей

Репозиторий
9226 месяцев назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

ReconSwarm

Architecture

ReconSwarm — это модульная среда автоматизации разведки, предназначенная для распределённого тестирования безопасности. Она предоставляет облачную инфраструктуру, выполняет параллельные конвейеры разведки и собирает результаты с минимальными затратами на настройку.

ReconSwarm подходит для охотников за багами (bug bounty), пентестеров, DevSecOps-инженеров и исследователей безопасности, которым нужны масштабируемые автоматизированные рабочие процессы разведки без ручного управления инфраструктурой.

Возможности

Targets flow

  • Разделение целей для параллельного выполнения — итоговый скомпилированный список целей распределяется между воркерами для параллельного выполнения задач разведки
  • Несколько типов целей — список целей состоит из нескольких типов элементов: домены из ответа crt.sh, внешний список (HTTP/HTTPS URL), простой список (встроенные YAML-массивы) и вывод shell-команд, что очень гибко для использования с любыми инструментами (cook, shodan, gau, katana и т. д.).
  • Облачно-агностическая архитектура — позволяет легко интегрироваться с несколькими облачными провайдерами (в настоящее время поддерживаются AWS, GCP, Yandex Cloud и Digital Ocean)
  • Гибкие стадии конвейера — расширяемая система стадий, поддерживающая операции exec (выполнение команд) и sync (синхронизация файлов и каталогов)
  • Шаблонный контекст в шагах — гибкий способ передачи метаданных из контекста выполнения в шаги

Ключевые функции, которые предстоит реализовать

  • Веб-интерфейс — простой веб-интерфейс, удобный для быстрого взаимодействия
  • Логи стадий в реальном времени — захват stdout/stderr и отправка клиенту через gRPC-стриминг
  • Удалённый shell до воркеров — открытие SSH-подключения от клиента к воркерам через rs-сервер
  • Стадия находок (findings) — стадия для обработки данных, полученных с предыдущей стадии (например, JSON-результат nuclei), сохранения их в etcd и отправки уведомлений

Архитектура

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

Абстракция облачного провайдера

ReconSwarm использует шаблон дискриминируемого объединения для облачных провижинеров. Поле provisioner.type определяет, какая конфигурация провайдера активна:

provisioner:
  type: yandex_cloud  # Discriminator field
  yandex_cloud:       # Active when type: yandex_cloud
    iam_token: "${YC_TOKEN}"
    # key_path: "./sa_auth_key.json"
    folder_id: "${YC_FOLDER_ID}"
    # ... provider-specific settings

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

Система стадий конвейера

Стадии — это расширяемые компоненты, выполняющие операции на виртуальных машинах воркеров:

  • exec — выполняет shell-команды с поддержкой шаблонов
  • sync — копирует файлы или каталоги с удалённых ВМ на локальную машину через SFTP (автоматически определяет, файл это или каталог)

Все поля стадий поддерживают рендеринг шаблонов. Для расширения функциональности можно добавлять новые типы стадий.

Сервер без состояния и отказоустойчивость

Сервер ReconSwarm полностью не хранит состояние (stateless) — всё состояние сохраняется в etcd:

  • Состояние конвейера — статус, прогресс, ошибки для каждого конвейера
  • Состояние воркера — информация о ВМ, текущая задача, статус
  • SSH-ключи — сгенерированные пары ключей для доступа к ВМ

Эта архитектура обеспечивает:

ВозможностьОписание
Горизонтальное масштабированиеЗапуск нескольких экземпляров сервера за балансировщиком нагрузки
Перезапуски без простояПерезапуск сервера без потери состояния конвейера
Восстановление после сбояНовый экземпляр сервера продолжает с того места, где остановился предыдущий
Проверка состоянияПрямые запросы к etcd для отладки и мониторинга

Настройка высокой доступности:

                    ┌─────────────┐
                    │   Client    │
                    └──────┬──────┘
                           │
                    ┌──────▼──────┐
                    │Load Balancer│
                    └──────┬──────┘
              ┌────────────┼────────────┐
              │            │            │
       ┌──────▼──────┐ ┌───▼───┐ ┌──────▼──────┐
       │  Server 1   │ │Server2│ │  Server 3   │
       └──────┬──────┘ └───┬───┘ └──────┬──────┘
              │            │            │
              └────────────┼────────────┘
                           │
                    ┌──────▼──────┐
                    │ etcd cluster│
                    └─────────────┘

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

Примечание: В текущей реализации конвейеры выполняются в памяти после загрузки из etcd. Полное восстановление после сбоя с возобновлением конвейера запланировано в будущих релизах.

Установка

git clone <repository>
cd reconswarm
go mod download
task build

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

ReconSwarm разделяет конфигурацию сервера и конфигурацию конвейера:

Тип конфигурацииФайлОписание
Серверreconswarm.yamlНастройки облачного провайдера, etcd, пула воркеров
КонвейерОтдельный YAML-файлЦели и стадии, передаётся через флаг -f

Конфигурация сервера

Конфигурация сервера хранится в reconswarm.yaml (настраивается через переменную окружения CONFIG_PATH). Все строковые значения поддерживают подстановку переменных окружения в синтаксисе ${VAR} или $VAR.

# Server settings
server:
  port: 50051

# Etcd connection for state management
etcd:
  endpoints:
    - "localhost:2379"
  dial_timeout: 5  # seconds
  username: ""     # optional, supports ${ETCD_USER}
  password: ""     # optional, supports ${ETCD_PASSWORD}

# Cloud provisioner (discriminated union)
provisioner:
  type: yandex_cloud  # Provider selector

  # Yandex Cloud configuration (active when type: yandex_cloud)
  yandex_cloud:
    iam_token: "${YC_TOKEN}"
    # key_path: "./sa_auth_key.json"
    folder_id: "${YC_FOLDER_ID}"
    default_zone: "ru-central1-b"
    default_image: "fd8b1cmhmncn7lt4tqn4"
    default_username: "root"
    default_cores: 2
    default_memory: 2      # GB
    default_disk_size: 20  # GB

# Worker pool settings
workers:
  max_workers: 5
  setup_commands:
    - "apt update"
    - "apt install -y docker.io"

Конфигурация конвейера

Конфигурация конвейера хранится в отдельном YAML-файле и передаётся через флаг -f. Поддерживаются оба формата — с обёрткой и без:

Формат с обёрткой (рекомендуется):

# pipeline.yaml
pipeline:
  targets:
    - value: "example.com"
      type: crtsh
    - value: ["sub1.example.com", "sub2.example.com"]
      type: list
  stages:
    - name: "Run scanner"
      type: exec
      steps:
        - "nmap -sC -sV -iL {{.Targets.filepath}} -oN /opt/recon/scan.txt"
    - name: "Collect results"
      type: sync
      src: "/opt/recon/scan.txt"
      dest: "./results/{{.Worker.Name}}.txt"

Формат без обёртки (тоже поддерживается):

# pipeline.yaml
targets:
  - value: "example.com"
    type: crtsh
stages:
  - name: "Run scanner"
    type: exec
    steps:
      - "nmap -iL {{.Targets.filepath}} -oN /opt/recon/scan.txt"

Переменные окружения

Скачать инструмент