
Python3 स्क्रिप्ट CVE-2021-44228 (Log4shell) असुरक्षित मशीनों को स्कैन करने के लिए।

यह Python3 स्क्रिप्ट CVE-2021-44228 के लिए संवेदनशील सर्वरों की खोज करने का प्रयास करती है, जिसे Log4Shell के रूप में भी जाना जाता है, यह Log4j2 Java लॉगिंग लाइब्रेरी में पाई गई एक बहुत ही गंभीर कमजोरी है।
यह संवेदनशील लक्ष्यों को सत्यापित और मान्य करने के लिए बाहरी DNS लॉग सर्वरों पर निर्भर नहीं करता है: प्रारंभ होने पर, सभी इंटरफेस और पोर्ट 55555 पर सुनने वाला एक नया थ्रेड बनाया जाता है (इसे .env फ़ाइल या पर्यावरण चर का उपयोग करके बदला जा सकता है): यह संवेदनशील मशीनों से कॉलबैक कनेक्शन की प्रतीक्षा करेगा और Python Queue के माध्यम से मुख्य थ्रेड को सूचित करेगा। ध्यान रखें कि आपको सुनने वाले IP:पोर्ट जोड़ी पर आने वाले कनेक्शन की अनुमति देने के लिए फ़ायरवॉल नियम (और/या पोर्ट फ़ॉरवर्डिंग नियम) जोड़ने की आवश्यकता हो सकती है।
कमजोरी को ट्रिगर करने की संभावनाओं को बढ़ाने के लिए, उपकरण एक URL (या URLs की सूची) को तर्क के रूप में लेता है और प्रदान किए गए URL(s) में शामिल किसी भी फॉर्म की तलाश करता है। फिर यह प्रत्येक पाए गए फॉर्म के लिए प्रत्येक पैरामीटर का उपयोग करके कमजोरी का शोषण करने का प्रयास करता है (GET और POST अनुरोध)। यह डिफ़ॉल्ट व्यवहार है लेकिन इसे --skip-forms विकल्प का उपयोग करके अक्षम किया जा सकता है (इस स्थिति में केवल 1 अनुरोध किया जाएगा और पेलोड कुछ हेडर फ़ील्ड के भीतर रखा जाएगा)।
इसके अलावा, लक्ष्य संवेदनशील हैं या नहीं यह जांचने के लिए निम्नलिखित पूर्वनिर्धारित हेडर का उपयोग किया जाता है:
कस्टम हेडर को कमांड लाइन विकल्प के माध्यम से जोड़ा जा सकता है।
पूर्ण उपयोग विवरण के लिए नीचे दिए गए अनुभाग देखें।
python3 log4j_checker.py -h
usage: log4j_checker.py [-h] [--url URL] [--headers HEADERS [HEADERS ...]] [--urls URLS] [--skip-forms]
optional arguments:
-h, --help show this help message and exit
--url URL Single url you want to test (valid url is http(s)://host:[port]/[path])
--headers HEADERS [HEADERS ...]
Custom headers you want to try (space separated)
--urls URLS A file containing 1 url per line
--skip-forms Skip forms check (only perform 1 request)
यह उपकरण आपके अपने सिस्टम का परीक्षण करने के लिए उपयोग किया जाना है।
महत्वपूर्ण नोट: यह उपकरण यह सुनिश्चित नहीं करता है कि आपका सर्वर कमजोर नहीं है, भले ही परिणाम नकारात्मक हो। ऐसा इसलिए है क्योंकि आपका एप्लिकेशन दुर्भावनापूर्ण पेलोड को कहीं और लॉग कर सकता है और सभी मामलों को कवर करना संभव नहीं है। इसलिए यह जांचने का सबसे अच्छा तरीका है कि आप कमजोर हैं या नहीं, पूरे फ़ाइल सिस्टम में संवेदनशील पैकेज (जैसे log4j-core*.jar और log4j-api*.jar) देखें।