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

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

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

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

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

Категории

Все категории
Loading categories
threat-finder — Сканер уязвимостей времени выполнения: находит CVE в сервисах, фактически запущенных на хосте, и ранжирует их по сетевой доступности. | Kitploit
Инструменты/GitHubGitHub/offseq/threat-finder
Сканеры уязвимостейАнализ уязвимостейСетевая безопасностьDevSecOpsРазведка угроз
GitHuboffseq/threat-finder

threat-finder

Сканер уязвимостей времени выполнения: находит CVE в сервисах, фактически запущенных на хосте, и ранжирует их по сетевой доступности.

Репозиторий
5761 день назадПроверено Kitploit

Популярное

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

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

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

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

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

OffSeq Threat Finder

CI crates.io docs.rs license

threat-finder находит уязвимое ПО, реально запущенное на хосте, — а не то, что заявляет манифест, — и сообщает, какие находки доступны по сети. Он приводит каждый запущенный сервис (а с --scope all — и каждый установленный пакет ОС) к точному Package-URL и сопоставляет его с каталогом OffSeq Radar, используя нативные для экосистемы правила версий, поэтому бэкпортированные/исправленные сборки не помечаются ложно.

OffSeq Threat Finder

root@kitploit:~
Vulnerability summary (highest risk first):

  openssh-server@1:8.9p1-3ubuntu0.6 — 1 finding(s)  [PUBLIC tcp 0.0.0.0:22]
      [ACT-NOW 92]  HIGH  CVE-2024-6387  [KEV]  regreSSHion: remote code execution in OpenSSH
                          → fix: 1:8.9p1-3ubuntu0.10   https://radar.offseq.com/threat/…
  [email protected] — 1 finding(s)
      [SCHEDULE 41] MED   CVE-2023-44487        HTTP/2 Rapid Reset

2 confirmed finding(s) across 2 asset(s); 1 exposed, 1 known-exploited.

Установка

root@kitploit:~
brew install offseq/tap/threat-finder   # Homebrew (macOS/Linux), prebuilt
cargo binstall threat-finder            # prebuilt binary, no toolchain
cargo install threat-finder             # from source

Готовые архивы для Linux/macOS (x86_64 + arm64) и Windows (x86_64) доступны на странице релизов. Для сборки из исходников требуется Rust ≥ 1.87. Поддерживаются Linux, macOS, BSD-системы и Windows.

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

root@kitploit:~
export OFFSEQ_API_KEY=...    # from https://radar.offseq.com/console
threat-finder

Сканирует запущенные сервисы, выводит сводку, отсортированную по уровню риска, и записывает полный JSON-отчёт в /tmp/threats.json. Добавьте --scope all, чтобы также просканировать каждый установленный пакет ОС.

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

root@kitploit:~
threat-finder [OPTIONS]
ФлагОписание
-o, --output <PATH>Записать JSON-отчёт в PATH (по умолчанию: запрос, или /tmp/threats.json)
--jsonВывести JSON-отчёт в stdout вместо файла
--scope <SCOPE>running (по умолчанию) или all (+ каждый установленный пакет ОС)
--severity <LEVEL>Сообщать только о находках уровня critical|high|medium|low и выше
--strictОтбрасывать находки с неподтверждёнными координатами (сообщать только о подтверждённых)
--fail-on <WHAT>Выход с кодом 5 при наличии соответствующих находок: any|critical|high|medium|low|kev|exposed
--sarif <PATH>Также записать отчёт SARIF 2.1.0 (для интерфейсов сканирования кода)
--include <GLOB> / --exclude <GLOB>Фильтровать активы по glob-шаблону имени (можно указывать несколько раз)
-q, --quietПодавить баннер, индикатор выполнения и сводку
--no-colorОтключить ANSI-цвета
-y, --yesИспользовать значения по умолчанию, никогда не запрашивать (CI/cron)
--resetЗаново ввести API-ключ, игнорируя сохранённый
--registerЗарегистрировать просканированный хост в Radar для непрерывного мониторинга (без запроса)
--no-registerНе регистрировать и не запрашивать мониторинг в этом запуске
--host-name <NAME>Понятное имя хоста, отправляемое при регистрации
--unregisterУдалить инвентаризацию этого хоста из Radar и выйти
--windows-missing-updates(Windows) Дополнительно вывести ожидающие обновления безопасности от агента Windows Update (онлайн-сканирование; запускать с повышенными правами)
root@kitploit:~
# CI: only high+ findings, JSON to stdout, no prompts
OFFSEQ_API_KEY=… threat-finder --yes --json --severity high > report.json

# Fail the build only when a network-exposed service has a known-exploited CVE
OFFSEQ_API_KEY=… threat-finder --yes --quiet --fail-on exposed

Коды выхода: 0 — успешно · 1 — ошибка поиска/ввода-вывода · 2 — нет API-ключа · 3 — неподдерживаемая ОС · 4 — лимит запросов/квота или требуется доступ к API (нужно обновление) · 5 — достигнут порог --fail-on.

API-ключ (получите его в Radar Console), определяется в следующем порядке:

  1. Переменная окружения OFFSEQ_API_KEY (лучше всего для CI/cron).
  2. Сохранённый ключ в $XDG_CONFIG_HOME/offseq-rust/config.toml (0600), если не указан --reset.
  3. Интерактивный скрытый запрос в TTY — затем сохраняется для следующего раза.

В неинтерактивном режиме (--yes / нет TTY) при отсутствии ключа происходит выход с кодом 2.

Задайте OFFSEQ_CONFIG_DIR, чтобы переопределить расположение конфигурации (по умолчанию: стандартная для ОС пользовательская папка конфигурации) — удобно для контейнеров и CI, которым нужен детерминированный путь.

Как это работает

Точное сопоставление координат. Каждый актив становится purl с полной версией (эпоха + ревизия дистрибутива) и квалификатором ?distro=, например pkg:deb/ubuntu/openssh-server@1:8.9p1-3ubuntu0.6?distro=jammy. Инвентаризация сопоставляется пакетными вызовами POST /match/batch (по одному запросу на чанк размером с тарифный уровень) на стороне сервера, с нативными для экосистемы правилами версий (dpkg/rpm/apk/semver) — поэтому бэкпортированная и исправленная сборка вроде 1.18.0-6+deb11u3 корректно не помечается, и на стороне клиента нет угадывания версий. Находки разделяются флагом API confirmed: подтверждённые совпадения сообщаются; координатные совпадения, версию которых нельзя подтвердить, выводятся отдельно как unconfirmed / triage (исключены из подсчёта, byCve и --fail-on; отбросьте их с помощью --strict).

Корреляция сетевой доступности. Сканеры манифестов (Trivy, Grype, osv-scanner) читают списки пакетов; внешние сканеры (Nessus, OpenVAS) требуют второй хост. Этот инструмент сопоставляет процесс каждого запущенного сервиса с сокетами, на которых он слушает (/proc/net в Linux, lsof в других Unix-системах, Get-NetTCPConnection / netstat в Windows), и классифицирует достижимость — loopback / private / public. Уязвимый сервис на 0.0.0.0 — это совсем иной риск, чем на 127.0.0.1: находки ранжируются с приоритетом доступности, а --fail-on exposed привязывает CI именно к этому. Пакеты не отправляются. Находки также несут CISA KEV и EPSS.

Приоритизация с учётом доступности. Каждая находка получает riskScore (0–100) и диапазон decision в стиле SSVC — act-now · soon · schedule · track — объединяющий серьёзность, EPSS, KEV и сетевую доступность актива-владельца. Сводка начинает каждую строку с бейджа в стиле [ACT-NOW 92] и сортирует по нему, поэтому немногочисленные публично доступные и известные эксплуатируемые проблемы всплывают наверх в зашумлённом хосте. Оценка использует одну и ту же формулу локально и на стороне сервера (в представлении мониторинга Radar добавляется небольшой бонус, когда находка KEV просрочена — дата, которой у CLI нет), и появляется в --json и SARIF (properties).

Непрерывный мониторинг

Разовый скан — это лишь один момент времени. Зарегистрируйте хост один раз, и Radar продолжит наблюдение: когда недавно опубликованный CVE затрагивает одну из его координат, вы получаете оповещение (email + Console), приоритизированное по доступности — повторное сканирование не нужно.

После интерактивного сканирования инструмент спрашивает:

root@kitploit:~
Add these 42 services to Radar for continuous monitoring & alerts? [Y/n/never]

Y регистрирует этот хост; n пропускает этот запуск; never запоминает ваш выбор (он сохраняется в конфигурации, и вас больше не спросят). При повторном сканировании также сообщается о дрейфе (+added / -removed / ~changed) и о любых находках, новых с момента последнего сканирования. Управляйте хостами — включайте/выключайте мониторинг, просматривайте находки, отменяйте регистрацию — в разделе Inventory в Radar Console.

Для автоматизации пропустите запрос: --register регистрирует в неинтерактивном режиме (по умолчанию выключен в CI), --no-register отказывается от регистрации, --host-name <NAME> задаёт имя хоста, а --unregister удаляет его. Стабильный идентификатор хоста и ваше предпочтение по запросам хранятся в $XDG_CONFIG_HOME/offseq-rust/config.toml. Регистрация никогда не меняет код выхода — сбой мониторинга не приведёт к провалу сканирования. Требуется тарифный план Basic/Pro/Enterprise (или Pro Console).

Область охвата

--scope running (по умолчанию) сканирует живые сервисы — небольшой, но высокоинформативный набор, доступность которого можно коррелировать. --scope all дополнительно перечисляет каждый установленный пакет ОС (dpkg/rpm/pacman/apk/brew/pkg/pkg_info), расширяя сопоставляемую поверхность в 10–50 раз. Пакет, который также обеспечивает работу запущенного и доступного процесса, сохраняет эту доступность (активы дедуплицируются и объединяются по координатам). Ядро покрывается как свой пакет (linux-image…) при --scope all.

--scope all может дать от сотен до тысяч пакетов. На бесплатном тарифе (15 поисков/час) это приведёт к ограничению частоты запросов; инструмент предупреждает, когда инвентаризация превышает бюджет. (Поиски уже пакетируются; локальный кэш результатов — в планах.)

Поддержка по ОС

ОСОбнаружениеИсточник координат
Linux (systemd)ListUnits → /proc/<pid>/exedpkg / rpm / pacman / apk
Linux (SysV/OpenRC)service --status-all / rc-statusбаза пакетов
macOSlaunchctl list → ps (только сторонние)Homebrew
FreeBSD / DragonFlyservice -epkg
OpenBSDrcctl ls startedpkg_info
NetBSDстатус /etc/rc.dpkg_info
Solaris / illumossvcs → svcpropзонд (--version)
WindowsWin32_Service → Get-NetTCPConnection / netstatреестр / winget / Appx / Chocolatey / Scoop → CPE; npm / pip / dotnet → purl; сборка ОС → CPE

Если ни один пакет не владеет бинарником, версия определяется через усиленный зонд --version (только абсолютные пути, очищенное окружение). В macOS системные сервисы Apple (com.apple.*, пути под защитой SIP) пропускаются — они покрываются версией ОС, и зондировать сотни из них бессмысленно.

В Windows всё собирается через встроенный powershell.exe (без дополнительной среды выполнения и без прав администратора для базовой инвентаризации). Установленные приложения сопоставляются с NVD CPE через курируемую таблицу имён (несопоставленные приложения используют поиск по имени, а не неверное предположение); редакция/сборка ОС становится CPE ОС с квалификацией по функциям (например, windows_11_23h2); а --windows-missing-updates добавляет опциональное уведомление агента Windows Update об ожидающих исправлениях безопасности.

Выходные данные

JSON с детерминированными (отсортированными) ключами и без отметки времени, чтобы отчёты давали чистый diff:

  • services — pkg@version → подтверждённые находки (cveId, severity, cvssScore, epss, kev, riskScore, decision, confirmed, matchedRange, matchBasis, fixedVersions, remediation, cwes, references, radarUrl), сначала с наибольшим риском.
  • unconfirmed — координатные совпадения, версия которых не может быть подтверждена (триаж).
  • assets — pkg@version → { exe, versionSource, exposed, reachability, listeners } (versionSource = package-db | probe; reachability охватывает TCP и UDP).
  • byCve — каждый CVE свёрнут по всем затронутым активам («исправил один раз — устранил многие»).
  • errors — ошибки поиска по каждому активу, чтобы сбой никогда не читался как «чисто».
  • registration — присутствует, когда запуск зарегистрировал хост: host_id, monitoring, drift, summary, newSinceLastCount.
  • meta — { tool, version, schemaVersion } (schemaVersion 2).

Отчёт SARIF 2.1.0 (--sarif) также доступен для интерфейсов сканирования кода.

Экосистема OffSeq

OffSeqАудит безопасности ЕС, мониторинг угроз, CISO-as-a-Service, соответствие NIS2
RadarРазведка угроз в реальном времени — каталог, с которым сопоставляет threat-finder
Radar ConsoleПодписки, пользовательские фиды и ваш OFFSEQ_API_KEY
Radar APIREST-документация для конечной точки /match, используемой здесь
Radar ThreatsПоисковая база CVE / вредоносных программ / субъектов угроз
Radar FeedsПользовательские фиды, агрегирующие CISA, CIRCL, ThreatFox, …
Radar PricingОт бесплатного тарифа до Enterprise
BreachМониторинг утечек данных в даркнете и скомпрометированных учётных данных
VeilКлиентская PNG-стеганография (AES-256-GCM)
GuardAI-аналитик безопасности и соответствия веб-сайтов
TrainingАккредитованные PECB курсы по безопасности и конфиденциальности

Разработка

root@kitploit:~
cargo build --release
cargo test                 # unit tests
cargo test -- --ignored    # + macOS live-discovery smoke test
cargo clippy --all-targets

Движок — это библиотечный крейт (find_threats) с абстракцией Collector (сейчас — запущенные сервисы и пакеты ОС; далее — lock-файлы / контейнеры / SBOM), поэтому бинарник — это тонкий CLI поверх него.

Лицензия

Двойное лицензирование: MIT или Apache-2.0, на ваш выбор.

Скачать инструмент
-h, --help / -V, --versionСправка / версия