Назад к обновлениям
New releaseSep 9, 2026

nerva v1.69.6

Быстрый CLI для идентификации сервисов по 170+ протоколам (TCP/UDP/SCTP) — разработан компанией Praetorian

Поделиться
Nerva — быстрый CLI для фингерпринтинга сервисов при разведке сети с поддержкой 170+ протоколов

Nerva
Nerva: быстрый CLI для фингерпринтинга сервисов

Release Build Status Go Report Card License Stars

Возможности • Установка • Быстрый старт • Использование • Протоколы • Библиотека • Сценарии использования • Устранение неполадок

Высокопроизводительный фингерпринтинг сервисов, написанный на Go. Определяйте 170+ сетевых протоколов через транспорты TCP, UDP и SCTP с извлечением богатых метаданных.

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

Возможности

  • 170+ плагинов протоколов — базы данных, удалённый доступ, веб-сервисы, обмен сообщениями, промышленные и телеком-протоколы
  • 76 HTTP-фингерпринтеров — обнаружение веб-технологий, включая межсетевые экраны, базы данных, AI/LLM-серверы и многое другое
  • Обнаружение ошибок конфигурации безопасности — выявление распространённых проблем безопасности, таких как неаутентифицированные API и протоколы с передачей данных в открытом виде (--misconfigs)
  • Поддержка нескольких транспортов — TCP (по умолчанию), UDP (--udp) и SCTP (--sctp, только Linux)
  • Поддержка прокси — прозрачная маршрутизация трафика сканирования через SOCKS5 или HTTP-прокси с настраиваемым разрешением DNS
  • Богатые метаданные — извлечение версий, конфигураций и деталей, значимых для безопасности, из каждого сервиса
  • Быстрый режим — сканирование только портов по умолчанию для быстрой разведки (--fast)
  • Гибкий вывод — форматы JSON, CSV или удобочитаемый
  • Удобство для пайплайнов — передача из Naabu, Nmap или любого инструмента, выводящего host:port
  • Go-библиотека — импорт напрямую в ваши Go-приложения

Установка

Релизы

Скачайте готовый бинарник со страницы Releases.

Из GitHub

go install github.com/praetorian-inc/nerva/cmd/nerva@latest

Из исходного кода

git clone https://github.com/praetorian-inc/nerva.git
cd nerva
go build ./cmd/nerva
./nerva -h

Docker

git clone https://github.com/praetorian-inc/nerva.git
cd nerva
docker build -t nerva .
docker run --rm nerva -h
docker run --rm nerva -t example.com:80 --json

Быстрый старт

Определение отпечатка одного целевого узла:

nerva -t example.com:22
# ssh://example.com:22

Получить подробные метаданные JSON:

nerva -t example.com:22 --json
# {"host":"example.com","ip":"93.184.216.34","port":22,"protocol":"ssh","transport":"tcp","metadata":{...}}

Передача из сканера портов:

naabu -host example.com -silent | nerva
# http://example.com:80
# ssh://example.com:22
# https://example.com:443

Полный справочник — каждая подкоманда, псевдоним и флаг, включая скрытые от --help — генерируется в docs/CLI.md.

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

nerva [flags]

TARGET SPECIFICATION:
  Requires host:port or ip:port format. Assumes ports are open.

EXAMPLES:
  nerva -t example.com:80
  nerva -t example.com:80,example.com:443
  nerva -l targets.txt
  nerva --json -t example.com:80
  cat targets.txt | nerva

Примеры

Несколько целей:

nerva -t example.com:22,example.com:80,example.com:443

Из файла:

nerva -l targets.txt --json -o results.json

Сканирование UDP:

nerva -t example.com:53 -U
# dns://example.com:53

Сканирование SCTP (только Linux):

nerva -t telecom-server:3868 -S
# diameter://telecom-server:3868

Быстрый режим (только порты по умолчанию):

nerva -l large-target-list.txt --fast --json

Прокси-маршрутизация с удалённым разрешением DNS:

nerva -t target.internal:80 --proxy socks5://127.0.0.1:1080 --dns-order p

Обнаружение ошибок конфигурации безопасности

Nerva может выявлять распространённые ошибки конфигурации безопасности при включении флага --misconfigs:

nerva -t example.com:2375 --misconfigs --json

Обнаруженные ошибки конфигурации:

Идентификатор находкиУровень серьёзностиОписание
docker-unauth-apiКритическийDocker API доступен без аутентификации
x11-unauth-accessКритическийX11-сервер допускает неаутентифицированные подключения
dotnet-remoting-http-exposedВысокийHTTP-канал .NET Remoting открыт (риск десериализации)
smb-signing-not-requiredСреднийПодписывание SMB не требуется (риск relay-атаки)
telnet-cleartextСреднийTelnet передаёт учётные данные в открытом виде
vnc-detectedСреднийОбнаружен VNC (часто слабая аутентификация)
ssh-password-authСреднийСервер допускает аутентификацию по паролю
ssh-weak-cipherНизкийСервер предлагает слабые шифры (RC4, 3DES, Blowfish)
ssh-weak-kexНизкийСервер предлагает слабые алгоритмы обмена ключами
ssh-weak-macНизкийСервер предлагает слабые алгоритмы MAC
ftp-cleartextНизкийFTP передаёт учётные данные в открытом виде

Пример вывода с ошибками конфигурации:

{
  "host": "example.com",
  "port": 2375,
  "protocol": "docker",
  "anonymous_access": true,
  "security_findings": [
    {
      "id": "docker-unauth-api",
      "severity": "critical",
      "description": "Docker API accessible without authentication",
      "evidence": "Successfully queried /version endpoint without credentials"
    }
  ]
}

Поддержка прокси

Nerva поддерживает маршрутизацию трафика сканирования через прокси SOCKS5 и HTTP с настраиваемым разрешением DNS.

Поддерживаемые схемы прокси:

  • socks5:// — прокси SOCKS5 с локальным разрешением DNS
  • socks5h:// — прокси SOCKS5 с разрешением DNS на стороне прокси (всегда)
  • http:// — прокси HTTP CONNECT
  • https:// — прокси HTTPS CONNECT

Аутентификация прокси:

# Inline authentication (URL format)
nerva -t example.com:80 --proxy socks5://username:[email protected]:1080

# Separate authentication flag
nerva -t example.com:80 --proxy socks5://127.0.0.1:1080 --proxy-auth username:password

Стратегии разрешения DNS (--dns-order):

Категории