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

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

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

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

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

Категории

Все категории
Loading categories
apache_audit_cve-2026-23918 — Инструментарий на Python для аудита Apache HTTP Server против CVE-2026-23918 (HTTP/2 double-free RCE) и 4 связанных CVE. Пассивный сканер с проверкой ALPN + локальный аудитор только для чтения. Без эксплойтов. | Kitploit
Инструменты/GitHubGitHub/sibersan/apache_audit_cve-2026-23918
Оборонительные ИнструментыСканеры уязвимостейАудит конфигурацииВеб-безопасностьСетевая безопасностьРеагирование на Инциденты
GitHubsibersan/apache_audit_cve-2026-23918

apache_audit_cve-2026-23918

Инструментарий на Python для аудита Apache HTTP Server против CVE-2026-23918 (HTTP/2 double-free RCE) и 4 связанных CVE. Пассивный сканер с проверкой ALPN + локальный аудитор только для чтения. Без эксплойтов.

Популярное

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

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

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

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

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

cve-2026-23918

Инструменты защитного аудита для CVE-2026-23918 (двойное освобождение памяти / RCE в Apache HTTPD HTTP/2) и четырех связанных CVE, раскрытых в бюллетене безопасности Apache Software Foundation от 4 мая 2026 года.

CVEСерьезностьКомпонентВоздействиеЗатронутые версии
CVE-2026-23918Высокая (CVSS 8.8)HTTP/2Двойное освобождение / RCEтолько 2.4.66
CVE-2026-24072Средняяmod_rewrite (ap_expr)Повышение привилегий≤ 2.4.66
CVE-2026-28780Низкаяmod_proxy_ajpПереполнение кучи≤ 2.4.66
CVE-2026-29168Низкаяmod_md (OCSP)Истощение ресурсов2.4.30 – 2.4.66
CVE-2026-29169Низкаяmod_dav_lockРазыменование NULL-указателя / DoS≤ 2.4.66

Все проблемы исправлены в Apache HTTP Server 2.4.67.


⚠️ Авторизация и область применения

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

Набор инструментов является защитным по замыслу:

  • Никаких полезных нагрузок уязвимостей, никаких попыток эксплуатации, никакого интрузивного зондирования.
  • Пассивный сканер читает только стандартный HTTP-заголовок Server: и использует стандартный TLS ALPN — тот же механизм, который каждый современный браузер использует для согласования HTTP/2.
  • Локальный аудитор работает только на чтение; никакие файлы или конфигурации не изменяются.

Содержимое

root@kitploit:~
.
├── apache_passive_audit.py    # Внешний аудит активов (захват баннера + ALPN)
├── apache_local_audit.py      # Локальный аудит на хосте / через SSH
├── LICENSE                    # MIT
├── .gitignore
└── README.md

Требования

  • Python 3.6+ — работает с python3 по умолчанию в Ubuntu 18.04 и во всех последующих версиях.
  • Только стандартная библиотека — без внешних зависимостей.

Установка

root@kitploit:~
git clone https://github.com/sibersan/cve-2026-23918.git
cd cve-2026-23918
chmod +x apache_passive_audit.py apache_local_audit.py

1. Пассивный аудит — apache_passive_audit.py

Читает HTTP-заголовок Server: для определения версии Apache и сопоставляет ее с таблицей CVE. Кроме того, для целей HTTPS выполняет стандартное согласование TLS ALPN, чтобы определить, включен ли HTTP/2 — это ключевое предусловие для эксплуатации CVE-2026-23918. Эксплойт-полезные нагрузки не отправляются.

Проверка HTTP/2 (ALPN)

Скрипт предлагает h2 и http/1.1 в расширении ALPN при TLS-рукопожатии (RFC 7301). Выбор сервера является стандартным, однозначным ответом на вопрос «включен ли HTTP/2?» — используется каждым современным браузером и curl. Это не вызывает уязвимость или какое-либо необычное поведение.

Вердикт о риске отражает это:

  • Версия 2.4.66 + HTTP/2 подтвержден через ALPN → VULNERABLE (вектор RCE открыт)
  • Версия 2.4.66 + HTTP/2 не согласован → AT_RISK (все еще не исправлена; применяются другие CVE низкой/средней серьезности, но вектор RCE высокой серьезности закрыт)
  • Тест ALPN не удалось выполнить → консервативно; предполагаем, что HTTP/2 доступен
  • Версия ≥ 2.4.67 → SAFE

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

root@kitploit:~
# Одна цель
python3 apache_passive_audit.py -t https://web.example.com

# Несколько целей
python3 apache_passive_audit.py -t https://a.example.com -t https://b.example.com

# Файл с целями, параллельный режим, вывод CSV + JSON
python3 apache_passive_audit.py -f targets.txt -w 20 -o report.csv --json report.json

# Для CI / логов (без цветов)
python3 apache_passive_audit.py -f targets.txt --no-color

Формат targets.txt (одна цель на строку, # для комментариев):

root@kitploit:~
https://www.example.com
intranet.example.local:8443
# старый стенд
http://10.0.5.12

Параметры

ФлагОписание
-t, --targetОдна цель (можно повторять)
-f, --fileФайл со списком целей
-o, --csvВывод отчета в CSV
--jsonВывод отчета в JSON
--timeoutТайм-аут запроса в секундах (по умолчанию 10)
-w, --workersПараллельные потоки-обработчики (по умолчанию 10)
--no-colorОтключить цветной вывод

Коды возврата (удобно для CI/CD)

КодЗначение
0Все цели безопасны
1Хотя бы одна цель UNKNOWN или ERROR
2Хотя бы одна цель VULNERABLE или AT_RISK

Уровни риска

УровеньЗначение
VULNERABLEВерсия попадает в диапазон CVE из бюллетеня И выполнено предусловие (например, включен HTTP/2)
AT_RISKНеисправленная версия, но предусловие высокой серьезности НЕ выполнено; другие CVE все еще применимы
SAFEВерсия ≥ 2.4.67
UNKNOWNБаннер скрыт (ServerTokens Prod) или замаскирован обратным прокси/WAF — проверьте с помощью скрипта локального аудита
NOT_APACHEНе Apache (nginx, IIS и т.д.)
ERRORОшибка соединения

Ограничения

  • Серверы с ServerTokens Prod или Minimal скрывают версию — скрипт честно возвращает UNKNOWN. Используйте локальный аудит для подтверждения.
  • Экземпляр Apache за обратным прокси (Cloudflare, F5, nginx и т.д.) может не раскрывать свою версию на границе сети.
  • Обнаружение HTTP/2 через ALPN имеет смысл только для целей HTTPS. HTTP/2 в открытом виде (h2c) на практике редок и не тестируется.

2. Локальный аудит — apache_local_audit.py

Запускается на целевом хосте (или через SSH) и проверяет бинарный файл Apache, версию, загруженные модули и конфигурацию HTTP/2. Он также оценивает предусловия эксплуатации: например, если версия 2.4.66, но HTTP/2 отключен, риск для CVE-2026-23918 соответственно понижается.

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

root@kitploit:~
sudo python3 apache_local_audit.py

# Отчет в JSON (для централизованного инвентаря)
sudo python3 apache_local_audit.py --json /var/log/apache_audit_$(hostname).json

# Пользовательский путь к бинарному файлу
sudo python3 apache_local_audit.py --binary /opt/apache/bin/httpd

Возможности обнаружения

  • httpd -v / apache2 -v — версия
  • httpd -V — информация о сборке, HTTPD_ROOT, SERVER_CONFIG_FILE
  • apache2ctl -M или httpd -M — загруженные модули
  • dpkg-query / rpm -q — версия пакета
  • Основная конфигурация плюс все файлы, подключаемые через Include/IncludeOptional (включая Debian'овские sites-enabled/, mods-enabled/) → директива Protocols (h2 / h2c / http/1.1)

Параметры

ФлагОписание
--binaryПуть к бинарному файлу Apache (переопределяет автоопределение)
--jsonВывод отчета в JSON
--no-colorОтключить цветной вывод

Коды возврата

КодЗначение
0SAFE
1PATCH_NEEDED или UNKNOWN
2VULNERABLE или AT_RISK

Уровни риска

УровеньЗначение
VULNERABLEНеисправленная версия + выполнены предусловия CVE высокой серьезности (например, включен HTTP/2)
AT_RISKНеисправленная версия + выполнено хотя бы одно предусловие CVE
PATCH_NEEDEDНеисправленная версия, но не включен ни один соответствующий модуль/протокол — все равно исправьте
SAFEВерсия ≥ 2.4.67
UNKNOWNНе удалось определить версию

Привилегии

sudo/root рекомендуется для полного чтения конфигурации. Без этого некоторые файлы в sites-enabled/, mods-enabled/ или /etc/httpd/conf.d/ могут быть недоступны для чтения.


Запуск по инвентарю

Для запуска локального аудита на нескольких хостах и централизованного сбора отчетов, пример ad-hoc команды Ansible:

root@kitploit:~
ansible all -i inventory.ini -b -m script \
  -a "apache_local_audit.py --json /tmp/apache_audit.json --no-color"

ansible all -i inventory.ini -b -m fetch \
  -a "src=/tmp/apache_audit.json dest=./reports/ flat=no"

Собранные JSON-файлы можно объединить с помощью jq или небольшого Python-скрипта.


Рекомендуемые меры по смягчению

Для CVE-2026-23918 (до установки исправления):

  1. Обновите Apache HTTP Server до версии 2.4.67 или новее — единственное постоянное исправление.
  2. В качестве временной меры отключите HTTP/2: удалите h2 и h2c из директивы Protocols в вашей конфигурации, или выполните sudo a2dismod http2 на Debian/Ubuntu, затем перезагрузите службу.
  3. Выгрузите mod_dav_lock, если он не используется (CVE-2026-29169).
  4. Проверьте пользователей / виртуальные хосты с правом записи .htaccess (CVE-2026-24072).

Официальное уведомление: https://httpd.apache.org/security/vulnerabilities_24.html


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

Pull request'ы приветствуются. При добавлении новой CVE, пожалуйста:

  • Добавьте запись в CVE_TABLE с диапазоном затронутых версий и лямбдой match.
  • Для локального скрипта определите соответствующее поле needs для проверок предусловий (загруженный модуль, включенный протокол и т.д.).
  • Обновите таблицу в README.
  • Сохраняйте совместимость с Python 3.6: избегайте f-строк, from __future__ import annotations, дженериков PEP 585 (list[int]), subprocess.run(capture_output=True) и @dataclass.

Поддерживающий

SiberSAN

Лицензия

MIT © 2026 SiberSAN

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

Данное программное обеспечение предоставляется «как есть», без каких-либо гарантий. Перед использованием в производственной среде проверьте его в тестовой среде. Пользователь берет на себя всю юридическую ответственность за любое использование в отношении несанкционированных систем.

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