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

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

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

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

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

Категории

Все категории
Loading categories
rapid-reset-check — Go CLI, который инвентаризирует HTTPS-конечные точки, согласующие HTTP/2 через ALPN, для выявления систем, требующих проверки мер по смягчению последствий CVE-2023-44487. Проверки TLS без эксплуатации, с верификацией сертификатов и безопасными настройками по умолчанию. | Kitploit
Инструменты/GitHubGitHub/ramonzx6/rapid-reset-check
Сканеры уязвимостейАудит конфигурацииСбор информацииВеб-безопасностьСетевая безопасность
GitHubramonzx6/rapid-reset-check

rapid-reset-check

Go CLI, который инвентаризирует HTTPS-конечные точки, согласующие HTTP/2 через ALPN, для выявления систем, требующих проверки мер по смягчению последствий CVE-2023-44487. Проверки TLS без эксплуатации, с верификацией сертификатов и безопасными настройками по умолчанию.

Репозиторий
1 день назадЕщё не проверено

Популярное

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

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

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

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

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

Rapid Reset Check

rapid-reset-check — это небольшая Go-утилита командной строки для быстрой инвентаризации HTTPS-эндпоинтов, которые поддерживают HTTP/2 и поэтому требуют проверки мер по смягчению CVE-2023-44487.

Сканер заведомо не наносит вреда. Он разрешает каждый целевой адрес, устанавливает TLS-соединение с проверкой сертификата, предлагает h2 и http/1.1 через ALPN, фиксирует выбор пира и закрывает соединение. Он не отправляет ни HTTP-запроса, ни предисловия HTTP/2, ни потоков, ни кадров RST_STREAM, ни флуд-трафика.

[!IMPORTANT] Согласование h2 — это наблюдаемый факт подверженности, а не доказательство того, что сервис уязвим или не пропатчен. Удалённое рукопожатие не может проверить ограничения Rapid Reset в реализации HTTP/2, уровень патчей, вышестоящий источник или средства защиты от DDoS.

Почему такой подход?

CVE-2023-44487 — это техника отказа в обслуживании, которая злоупотребляет быстрым созданием и отменой потоков HTTP/2. Попытка доказать наличие условия против живого сервиса сама потребовала бы потенциально разрушительного трафика. Вместо этого данный инструмент отвечает на безопасный первый вопрос:

какие протестированные TLS-эндпоинты в данный момент согласуют HTTP/2 и поэтому требуют от оператора проверки мер по смягчению?

HTTP/2 через TLS объявляется с использованием ALPN-идентификатора h2, определённого в RFC 9113. Google рекомендует проверять или пропатчивать каждый сервер, прокси и балансировщик нагрузки с поддержкой HTTP/2 на пути запроса; см. рекомендации Google по CVE-2023-44487.

Установка готового бинарного файла

Для запуска инструмента Go не требуется. Скачайте архив для вашей платформы из последнего релиза GitHub:

ПлатформаФайл релиза
Linux x86-64rapid-reset-check_<version>_linux_amd64.tar.gz
Linux ARM64rapid-reset-check_<version>_linux_arm64.tar.gz
macOS Intelrapid-reset-check_<version>_darwin_amd64.tar.gz
macOS Apple siliconrapid-reset-check_<version>_darwin_arm64.tar.gz
Windows x86-64rapid-reset-check_<version>_windows_amd64.zip
Windows ARM64rapid-reset-check_<version>_windows_arm64.zip

Распакуйте архив, затем выполните rapid-reset-check --version. В Windows исполняемый файл называется rapid-reset-check.exe.

Каждый релиз включает SHA256SUMS. В Linux проверьте скачанный архив из той же директории с помощью:

root@kitploit:~
sha256sum --ignore-missing --check SHA256SUMS

В macOS сравните shasum -a 256 <archive> с соответствующей строкой в SHA256SUMS. Опубликованные архивы публичных релизов также получают артефактную аттестацию GitHub, которую можно проверить с помощью GitHub CLI:

root@kitploit:~
gh attestation verify <archive> --repo ramonzx6/http-script-json

Сборка из исходников

  • Go 1.22 или новее

Установка Node.js, cURL, nghttp2 или WHOIS не требуется.

root@kitploit:~
go test ./...
go build -o rapid-reset-check ./cmd/rapid-reset-check

Сборки из исходников сообщают dev в --version; релизные сборки получают свою версию из тега релиза.

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

Сканируйте только те эндпоинты, которыми вы владеете или на проверку которых у вас есть разрешение.

Сканирование одного или нескольких публичных эндпоинтов:

root@kitploit:~
./rapid-reset-check example.com api.example.com:8443

Голые имена хостов нормализуются до HTTPS на порту 443. URL-адреса, содержащие только authority в схеме HTTPS, также принимаются:

root@kitploit:~
./rapid-reset-check https://example.com https://api.example.com:8443

Сканирование JSON-списка целей из репозитория:

root@kitploit:~
./rapid-reset-check --input json/urls.json

Использование стандартного ввода для автоматизации:

root@kitploit:~
printf '["example.com", "api.example.com"]' | ./rapid-reset-check --input -

Выполните ./rapid-reset-check --help, чтобы увидеть все ограничения и параметры вывода.

Ввод

--input принимает исходный формат JSON-массива:

root@kitploit:~
[
  "example.com",
  "api.example.com:8443",
  "https://www.example.net"
]

Объектные формы {"urls": [...]} и {"targets": [...]} также поддерживаются. Позиционные цели и --input намеренно взаимоисключающие. Дублирующиеся нормализованные эндпоинты сканируются один раз, а каждый запуск ограничен 4 096 входными целями.

В рамках сканирования только HTTPS-эндпоинты. Учётные данные, пути, не являющиеся корневыми, запросы, фрагменты, неподдерживаемые схемы, некорректные порты и неоднозначные имена хостов отклоняются, а не тихо переписываются.

Результаты оценки

ОценкаЗначение
h2_observed_review_requiredПо крайней мере один проверенный TLS-пир выбрал h2. Проверьте каждый компонент HTTP/2 на этом пути; это не вердикт об уязвимости.
h2_not_observed_on_tested_pathКаждый выбранный адрес завершил проверенное рукопожатие без выбора h2. Это наблюдение пути на конкретный момент времени, а не гарантия безопасности.
indeterminateПроблема с DNS, соединением, таймаутом, TLS, сертификатом или лимитом адресов помешала полному наблюдению.
not_scanned_policyРазрешённые адреса были исключены политикой сетевой безопасности сканера.
invalid_targetВвод был некорректным или выходил за пределы поддерживаемой области HTTPS-authority.

Отчёт включает каждый испытанный разрешённый адрес, согласованный ALPN, версию и шифр TLS, ограниченные данные об идентичности/сроке действия сертификата, время, решения политики, количество пропущенных адресов, явный флаг полноты и сводку. Он не собирает тела ответов, заголовки ответов, cookie или необработанные сертификаты.

Безопасные настройки по умолчанию

  • TLS-сертификаты и имена хостов проверяются. Используйте --ca-file, чтобы добавить частный центр сертификации; режима небезопасной проверки не существует.
  • Loopback, частные, link-local, multicast, unspecified, CGNAT, документационные, бенчмарк- и другие зарезервированные адреса блокируются по умолчанию. Используйте --allow-private только для внутренних эндпоинтов, которые вы уполномочены проверять.
  • Результаты DNS закрепляются для каждого соединения, при этом исходное имя хоста сохраняется для SNI и проверки сертификата.
  • Одновременность соединений, таймауты на адрес и количество адресов на цель ограничены.
  • Сканер не выполняет автоматические повторные попытки и не следует редиректам, поскольку никогда не отправляет HTTP-запрос. Укажите каждую HTTPS-authority, которую вам необходимо проверить.

Пример параметров:

root@kitploit:~
./rapid-reset-check \
  --format json \
  --timeout 5s \
  --concurrency 4 \
  --max-addresses 8 \
  example.com > report.json

Для авторизованного эндпоинта с частным PKI:

root@kitploit:~
./rapid-reset-check \
  --allow-private \
  --ca-file ./internal-root-ca.pem \
  service.internal:8443

Код возврата 0 означает, что каждая цель дала полное наблюдение ALPN. Код возврата 1 означает, что по крайней мере одна цель была некорректной, заблокированной политикой или неопределённой; отчёт при этом всё равно записывается. Ошибки использования CLI и конфигурации возвращают 2. Наблюдение h2 само по себе не меняет код возврата, поскольку это сигнал инвентаризации, а не вердикт об уязвимости.

Интерпретация результатов и действия

Для каждого результата h2_observed_review_required:

  1. Определите внешне видимый TLS-терминатор и все прокси, балансировщики нагрузки, шлюзы и исходные серверы с поддержкой HTTP/2 за ним.
  2. Сверьте каждый продукт и версию с рекомендациями производителя по CVE-2023-44487.
  3. Примените актуальные патчи и рекомендации производителя по сбросу/ограничению скорости.
  4. Убедитесь, что пограничные средства защиты от DDoS защищают исходный сервер и не могут быть обойдены через альтернативное имя хоста, адрес или порт.
  5. Подтверждайте конфигурацию и состояние патчей на основе доверенной инвентаризации или телеметрии. Не используйте результат ALPN этого сканера как доказательство устранения уязвимости.

Ограничения

Результаты относятся к конкретному имени хоста, ответам DNS, сетевому пути, TLS-эндпоинту и времени сканирования. CDN, anycast, split-horizon DNS, балансировка нагрузки, альтернативные порты и непротестированные адреса могут дать другие результаты. Сканер не:

  • определяет, является ли сервер уязвимым, пропатченным, защищённым или безопасным;
  • проверяет поведение Rapid Reset и не отправляет кадры сброса;
  • проверяет незашифрованный HTTP/2 (h2c), QUIC/HTTP/3, редиректы, исходные серверы, скрытые за пограничным узлом, или сервисы, не работающие по HTTPS;
  • делает выводы о наличии патчей на основе подделываемых заголовков Server или CDN-отпечатков;
  • заменяет проверку конфигурации, инвентаризацию активов, рекомендации производителей или авторизованное нагрузочное тестирование в изолированной среде.

Разработка

root@kitploit:~
gofmt -w ./cmd ./internal
go vet ./...
go test ./...
go test -race ./...
go build ./...

Тестовый набор использует локальные TLS-фикстуры и не сканирует публичные сервисы.

Автоматические релизы

Release Please управляет версиями релизов и тегами vX.Y.Z на основе сообщений Conventional Commit. Обычная разработка не требует создания или отправки тегов:

  1. Коммиты, попадающие в main, приводят к тому, что Release Please открывает или обновляет release-PR, содержащий изменения версии и журнала изменений.
  2. Слияние этого release-PR создаёт тег версии и черновик релиза GitHub.
  3. Тот же самый рабочий процесс тестирует тегированный исходный код, кросс-компилирует все шесть архивов, создаёт контрольные суммы и provenance, загружает артефакты и публикует черновик.

Используйте fix: для патч-изменений, feat: для минорных изменений и маркер разрушающего изменения (!) или footer BREAKING CHANGE: для мажорных изменений. Мейнтейнеры должны один раз включить Settings > Actions > General > Workflow permissions > Allow GitHub Actions to create and approve pull requests, чтобы Release Please мог управлять своим PR.

Если после создания тега Release Please публикация артефактов не удалась, релиз остаётся черновиком. Повторно запустите рабочий процесс Release вручную с этим существующим тегом vX.Y.Z после исправления проблемы. Не создавайте и не отправляйте заменяющий тег.

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