CVE-2023-44487 HTTP/2 Rapid Reset Инструмент для тестирования - Расширенная версия
Комплексный инструмент для тестирования на Python для CVE-2023-44487, уязвимости HTTP/2 Rapid Reset. Эта расширенная версия обеспечивает детальный контроль над параметрами тестирования, множественные паттерны атак и расширенные возможности мониторинга.
⚠️ ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ
Этот инструмент предназначен ТОЛЬКО для образовательных целей и авторизованного тестирования!
- Используйте только против систем, которыми вы владеете или на тестирование которых имеете явное письменное разрешение
- Несанкционированное использование может быть незаконным и может вызвать нарушение работы сервиса
- Инструмент выполняет атаку типа "Отказ в обслуживании", которая может повлиять на доступность сервера
- Всегда убедитесь, что у вас есть надлежащая авторизация перед тестированием
🔍 О CVE-2023-44487
CVE-2023-44487, также известная как "HTTP/2 Rapid Reset", является критической уязвимостью в протоколе HTTP/2, которая позволяет атакующим:
- Вызывать отказ в обслуживании путем быстрой отправки и отмены потоков HTTP/2
- Потреблять чрезмерные ресурсы сервера при минимальных ресурсах клиента
- Обходить многие традиционные механизмы ограничения скорости
- Влиять на основные веб-серверы и балансировщики нагрузки
Оценка CVSS: 7.5 (Высокая)
Воздействие: Отказ в обслуживании, истощение ресурсов
🚀 Расширенные возможности
Множественные паттерны атак
- ⚡ Rapid Reset: Стандартные HEADERS + немедленный RST_STREAM
- 💥 Burst Reset: Запросы пакетами с настраиваемыми задержками
- 📈 Gradual Reset: Постепенно увеличивающаяся скорость атаки
- 🎲 Random Reset: Случайное время для обхода предиктивной фильтрации
- 🌊 Continuation Flood: Атака флудом CONTINUATION кадров
- 🔀 Mixed Pattern: Комбинация нескольких паттернов
Детальная конфигурация
- 📡 Управление соединениями: Таймауты, задержки, лимиты одновременных соединений
- ⏱️ Управление временем: Точная синхронизация с поддержкой джиттера
- 🌐 Протокол HTTP/2: Размеры окон, размеры кадров, настройки HPACK
- 📋 Настройка заголовков: Пользовательские заголовки, случайная генерация
- 🔬 Расширенные опции: Рандомизация ID потоков, кадры приоритетов
- 📊 Мониторинг: Отслеживание задержек, анализ трафика, мониторинг ошибок
Форматы вывода
- 🖥️ Консоль: Читаемый формат с обновлениями прогресса
- 📋 JSON: Машиночитаемые структурированные данные
- 📊 CSV: Совместимый с электронными таблицами для анализа
- 🗃️ XML: Интеграция с корпоративными инструментами
Функции безопасности
- 🛡️ Контроль авторизации: Обязательные запросы подтверждения
- 🔒 Ограничение скорости: Встроенные лимиты соединений и запросов
- 🎛️ Обработка ошибок: Корректная обработка сбоев
- 📝 Журнал аудита: Комплексные возможности логирования
📋 Требования
- Python 3.7 или выше
- Без внешних зависимостей (используется только стандартная библиотека Python)
📖 Установка
- Клонируйте или скачайте скрипт:
git clone https://github.com/madhusudhan-in/CVE_2023_44487-Rapid_Reset.git
cd CVE_2023_44487-Rapid_Reset
- Сделайте скрипт исполняемым:
chmod +x rapid_reset_test.py
- Проверьте версию Python:
python3 --version # Должна быть 3.7+
🔧 Использование
Базовое использование
python3 rapid_reset_test.py https://target-server.com
Примеры расширенного использования
1. Высокопроизводительное нагрузочное тестирование
python3 rapid_reset_test.py https://target.com \
--connections 50 \
--requests 1000 \
--delay 0 \
--pattern rapid_reset \
--track-latency \
--output json
2. Скрытое тестирование с пользовательскими заголовками
python3 rapid_reset_test.py https://target.com \
--pattern burst_reset \
--burst-size 5 \
--burst-delay 2.0 \
--custom-headers "User-Agent: Mozilla/5.0 (legitbot)" "Authorization: Bearer token123" \
--jitter 0.3
3. Специфическое тестирование протокола
python3 rapid_reset_test.py https://target.com \
--window-size 32768 \
--frame-size 32768 \
--header-table-size 8192 \
--enable-push \
--priority-frames \
--randomize-streams
4. Комплексное тестирование с мониторингом
python3 rapid_reset_test.py https://target.com \
--connections 10 \
--requests 200 \
--pattern mixed_pattern \
--track-latency \
--track-responses \
--monitor-memory \
--verbose \
--debug \
--log-file attack.log
5. Атака CONTINUATION Flood
python3 rapid_reset_test.py https://target.com \
--pattern continuation_flood \
--requests 50 \
--random-headers \
--header-count 20
Полные параметры командной строки
Настройки соединения
| Опция | Описание | По умолчанию |
|---|
-c, --connections N | Количество одновременных соединений | 1 |
--connection-timeout SEC | Таймаут соединения в секундах | 10 |
--read-timeout SEC | Таймаут чтения ответов | 5 |
--connection-delay SEC | Задержка между соединениями | 0.0 |
Настройки запросов
| Опция | Описание | По умолчанию |
|---|
-r, --requests N | Запросов на соединение | 100 |
--delay SEC | Задержка между HEADERS и RST_STREAM | 0.001 |
--request-delay SEC | Задержка между запросами | 0.0 |
--jitter FACTOR | Фактор рандомизации времени | 0.0 |
Паттерны атак
| Опция | Описание | По умолчанию |
|---|
--pattern TYPE | Используемый паттерн атаки | rapid_reset |
--burst-size N | Запросов на пакет | 10 |
--burst-delay SEC | Задержка между пакетами | 0.1 |
Доступные паттерны:
rapid_reset - Стандартная атака rapid reset
burst_reset - Атаки на основе пакетов
gradual_reset - Постепенно увеличивающаяся скорость
random_reset - Случайное время
continuation_flood - Флуд CONTINUATION кадров
mixed_pattern - Смесь паттернов
Настройки протокола HTTP/2
| Опция | Описание | По умолчанию |
|---|
--window-size BYTES | Начальный размер окна HTTP/2 | 65535 |
--frame-size BYTES | Максимальный размер кадра | 16384 |
--header-table-size BYTES | Размер таблицы заголовков HPACK | 4096 |
--enable-push | Включить server push HTTP/2 | False |
--rst-error-code CODE | Код ошибки RST_STREAM | 8 |
Настройка заголовков
| Опция | Описание | По умолчанию |
|---|
--custom-headers HEADER | Пользовательские заголовки (Имя: Значение) | None |
--random-headers | Генерация случайных заголовков | False |
--header-count N | Количество случайных заголовков | 5 |
Расширенные опции
| Опция | Описание | По умолчанию |
|---|
--randomize-streams | Использовать случайные ID потоков | False |
--priority-frames | Включать информацию о приоритетах | False |
--continue-on-error | Продолжать после ошибок | True |
--max-errors N | Максимальное количество ошибок перед остановкой | 10 |
Опции мониторинга
| Опция | Описание | По умолчанию |
|---|
--track-latency | Отслеживать задержку запросов | False |
--track-responses | Отслеживать ответы сервера | False |
--monitor-memory | Мониторить использование памяти | False |
Опции вывода
| Опция | Описание | По умолчанию |
|---|
--output FORMAT | Формат вывода | console |
--output-file FILE | Имя выходного файла | auto-generated |
--verbose, -v | Подробный вывод | False |
--debug | Отладочное логирование | False |
--log-file FILE | Логирование в файл | None |