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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/geeknik/scada-scanner
РазведкаСканеры уязвимостейКартирование сетиСканирование портовАнализ уязвимостейБезопасность SCADA/ICSСбор информацииСетевая безопасностьТестирование на Проникновение
GitHubgeeknik/scada-scanner

scada-scanner

Высокопроизводительный асинхронный сканер SCADA/ICS

1638 месяцев назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
РепозиторийСайт

SCADA-сканер и фингерпринтер

Обзор

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

ВНИМАНИЕ: Только для авторизованных оценок безопасности. Несанкционированное сканирование может нарушать законы и нормативные требования.

Возможности

Основные возможности

  • Быстрое асинхронное сканирование CIDR-диапазонов или отдельных целей
  • Определение протоколов для основных промышленных протоколов (Modbus, S7, DNP3, BACnet, EtherNet/IP и др.)
  • Фингерпринтинг устройств с определением вендора, продукта и версии
  • Корреляция уязвимостей с реальными CVE и эксплойтами
  • Оценка и скоринг рисков

Технические особенности

  • Многопоточная архитектура с настраиваемой конкурентностью
  • Ограничение скорости по алгоритму token bucket для соблюдения глобальных лимитов запросов
  • Ограничение скорости и контроль подключений на хост
  • Поведенческий фингерпринтинг с помощью протокол-специфичных проб
  • Эвристика определения протоколов с учетом портов и цепочками доказательств для обнаружений
  • Подробное логирование и исчерпывающие отчеты в форматах JSON/CSV

Поддерживаемые протоколы

  • Modbus TCP
  • Siemens S7
  • DNP3
  • BACnet
  • EtherNet/IP
  • IEC 60870-5-104
  • OPC UA
  • CODESYS
  • И многие другие

Установка

Предварительные требования

  • Python 3.7+
  • Linux/macOS/Windows

Настройка

root@kitploit:~
# Clone the repository
git clone https://github.com/geeknik/scada-scanner.git
cd scada-scanner

# Install dependencies
pip install -r requirements.txt

Использование

Базовое использование

root@kitploit:~
# Single target scan
python scada_scanner.py -t 192.168.1.100 -o results.json

# CIDR range scan
python scada_scanner.py -c 192.168.1.0/24 -o results.json

# Multiple CIDR ranges from file
python scada_scanner.py -f networks.txt -o results.json

# Export CSV instead of JSON
python scada_scanner.py -t 192.168.1.100 --format csv -o results.csv

# Respect an exclude list
python scada_scanner.py -c 10.0.0.0/24 --exclude exclude.txt

# Highlight unexpected protocol/port combos (logged and in findings)
python scada_scanner.py -t 203.0.113.10 -o results.json

# Enable live vuln enrichment via ProjectDiscovery vulnx (requires vulnx + PDCP API key)
vulnx auth
python scada_scanner.py -t 192.168.1.100 --vulnx --vulnx-limit 3

Параметры командной строки

root@kitploit:~
Required arguments (one of):
  -t, --target            Single target IP address
  -c, --cidr              CIDR range to scan (e.g., 192.168.1.0/24)
  -f, --cidr-file         File containing CIDR ranges (one per line)

Optional arguments:
  -o, --output            Output file (default: scan_results.json)
  -r, --rate              Max requests per second (default: 10.0)
  --timeout               Connection timeout in seconds (default: 5)
  --max-concurrent        Maximum concurrent connections (default: 50)
  --safe-mode             Enable safe mode (non-intrusive scans only)
  --exclude               File containing IPs to exclude from scan
  -v, --verbosity         Verbosity level: 0=quiet, 1=normal, 2=debug
  --format                Output format: json or csv (default: json)

Безопасный режим и стандартный режим

Безопасный режим

  • Использует только неинтрузивные пробы
  • Минимизирует воздействие на целевые системы
  • Рекомендуется для производственных сред
  • Включается флагом --safe-mode

Стандартный режим

  • Использует более агрессивные методы зондирования
  • Может вызывать срабатывание IDS/IPS
  • Может повлиять на чувствительные системы
  • Соблюдайте осторожность в производственных средах

Пример отчета

root@kitploit:~
{
  "scan_summary": {
    "timestamp": "2025-02-27T14:02:33.456789",
    "total_hosts_scanned": 256,
    "hosts_with_scada": 12,
    "total_vulnerabilities": 37,
    "high_risk_hosts": 5
  },
  "hosts": [
    {
      "ip": "192.168.1.100",
      "ports": [
        {
          "port": 502,
          "protocol": "MODBUS",
          "fingerprint": {
            "vendor": "Schneider",
            "product": "M340",
            "version": "2.6.0",
            "risk_score": 0.75,
            "evidence": [
              "response:00010000000101",
              "port_hint:502"
            ],
            "findings": [
              "Detected MODBUS protocol (confidence: 0.55)",
              "Identified vendor: SCHNEIDER, product: M340",
              "Overall risk assessment: High (score: 0.75)"
            ],
            "unexpected_port": false
          }
        }
      ],
      "vulnerabilities": [
        {
          "cve_id": "CVE-2025-55221",
          "description": "Socomec DIRIS Digiware M-70 DoS via crafted Modbus TCP/RTU over TCP packets",
          "severity": "high",
          "source": "local_db"
        }
      ]
    }
  ]
}

Этические соображения

Соответствие законодательству

Этот инструмент предназначен только для авторизованных оценок безопасности. Несанкционированное сканирование может нарушать:

  • Закон о компьютерном мошенничестве и злоупотреблениях (США)
  • Закон о неправомерном использовании компьютеров (Великобритания)
  • Аналогичные законы в других юрисдикциях

Рекомендации

  • Всегда получайте письменное разрешение перед сканированием
  • По возможности используйте безопасный режим
  • Проводите сканирование в окна технического обслуживания, когда это возможно
  • Соблюдайте ограничения скорости, чтобы избежать DoS-состояний
  • Учитывайте хрупкость промышленных систем

Данные об уязвимостях

Сканер поставляется со встроенной базой данных уязвимостей для основных протоколов (см. VULNERABILITY_DATABASE). Для получения более свежих данных можно включить опциональную интеграцию с ProjectDiscovery vulnx:

  1. Установите vulnx и настройте ваш PDCP API-ключ (vulnx auth).
  2. Запустите с флагом --vulnx (при необходимости настройте --vulnx-limit и --vulnx-timeout).
  3. Уязвимости из vulnx объединяются с локальными находками и помечаются как source: "vulnx".

Если vulnx отсутствует или недоступен, сканер незаметно переключается на локальную базу данных. Записи локальной базы периодически обновляются из поисков vulnx для основных протоколов (зафиксированы в этом снимке репозитория) и помечаются как source: "local_db".

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

Запустите набор модульных тестов:

root@kitploit:~
pytest

Документация для разработчиков

Добавление новых протоколов

Сканер спроектирован модульным, что упрощает добавление поддержки новых протоколов:

  1. Добавьте сведения о протоколе в список SCADA_PORTS
  2. Добавьте сигнатурные шаблоны в словарь PROTOCOL_SIGNATURES
  3. Создайте протокол-специфичные функции проб и анализа
  4. Добавьте информацию об уязвимостях в VULNERABILITY_DATABASE

Участие в разработке

Вклад приветствуется! Пожалуйста, выполните следующие шаги:

  1. Сделайте форк репозитория
  2. Создайте ветку функции (git checkout -b feature/amazing-feature)
  3. Зафиксируйте изменения (git commit -m 'Add amazing feature')
  4. Отправьте ветку в удаленный репозиторий (git push origin feature/amazing-feature)
  5. Откройте Pull Request

Лицензия

Этот проект лицензирован по лицензии MIT — подробности см. в файле LICENSE.

Отказ от ответственности

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ. АВТОРЫ ОТКАЗЫВАЮТСЯ ОТ ЛЮБОЙ ОТВЕТСТВЕННОСТИ ЗА ЛЮБОЙ УЩЕРБ ИЛИ ПОТЕРИ, ВОЗНИКШИЕ В РЕЗУЛЬТАТЕ ИСПОЛЬЗОВАНИЯ ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.

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