
एक त्वरित जाँच, कि क्या आपका सर्वर CVE-2021-44228 के प्रति संवेदनशील हो सकता है
अगर आप नीचे दिए गए windows/linux download cradles का उपयोग करना चाहते हैं, तो कृपया स्क्रिप्ट्स को पहले देख लें। इंटरनेट से कोड लोड करना और उसे चलाना ही हमें Log4Shell तक ले आया है - है न? ;-)
log4j_checker_beta.sh स्क्रिप्ट का उपयोग यह त्वरित जाँच करने के लिए किया जाता है कि क्या आपका सर्वर संभवतः CVE-2021-44228 (log4j भेद्यता) से प्रभावित है।
यह 100% प्रमाण नहीं देती कि आप असुरक्षित नहीं हैं, लेकिन यह संकेत देती है कि क्या यह संभव है कि आप असुरक्षित हो सकते हैं।
wget https://raw.githubusercontent.com/rubo77/log4j_checker_beta/main/log4j_checker_beta.sh -q -O - |bash
अगर आप केवल चेतावनियाँ देखना चाहते हैं तो उपयोग करें
wget https://raw.githubusercontent.com/rubo77/log4j_checker_beta/main/log4j_checker_beta.sh -q -O - | bash | grep '\[WARNING\]'
सुनिश्चित करें कि चलाने से पहले आपका locate डेटाबेस अपडेट हो, इसके लिए उपयोग करें
sudo updatedb
स्क्रिप्ट JAR/WAR/EAR आर्काइव्स के पहले स्तर पर स्थित .class फ़ाइलों का परीक्षण कर सकती है कि वे log4j की असुरक्षित class फ़ाइलों के ज्ञात sha256 हैश से मेल खाती हैं या नहीं।
आपको HEX प्रारूप में sha256 हैश वाली एक सादा पाठ फ़ाइल का डाउनलोड देना होगा, प्रति पंक्ति एक हैश, पहले के बाद की सभी चीज़ें अनदेखी की जाती हैं।
URL को variable download_file में रखा जा सकता है। अन्यथा यह सुविधा काम नहीं करेगी।
Lunasec.io ने असुरक्षित बाइनरी Java .class फ़ाइलों के हैश के बारे में जो जानकारी दी है:
उनका ब्लॉग भी देखें: https://www.lunasec.io/docs/blog/log4j-zero-day-mitigation-guide/
हमने स्क्रिप्ट में SHA256_HASHES_URL शामिल किया है जो इस रिपॉजिटरी में hashes-pre-cve.txt फ़ाइल की ओर इंगित करता है। लेकिन आप शेल पर स्क्रिप्ट के पहले पैरामीटर के रूप में अपना URL जोड़ सकते हैं या स्थानीय फ़ाइल का उपयोग कर सकते हैं, जैसे अपनी फ़ाइल को hashes-pre-cve_local.txt में रखें और फिर कॉल करें:
./log4j_checker_beta.sh hashes-pre-cve_local.txt
locate और unzip कमांड स्थापित होने चाहिए। unzip jar फ़ाइलों का निरीक्षण करने के लिए।
Debian और Ubuntu सिस्टम पर स्थापित करने के लिए:
sudo apt install unzip locate
sudo updatedb
आप इस स्निपेट का उपयोग कर सकते हैं
IEX (New-Object Net.Webclient).downloadstring("https://raw.githubusercontent.com/anlx-sw/log4j_checker_beta/main/get-vulnerablejars.ps1")
Windows पर संभावित रूप से असुरक्षित jar फ़ाइलों की सीधे जाँच करने के लिए। या आप यह स्क्रिप्ट डाउनलोड कर सकते हैं और आउटपुट को एक लिखने योग्य फाइलशेयर पर इंगित कर सकते हैं। यह मेरे लिए Windows Server 2012 पर Powershell 2.0 के साथ भी काम कर गया।
त्रुटि प्रबंधन या अतिरिक्त सुविधाएँ जानबूझकर नहीं जोड़ी गईं ताकि इसे छोटा, सरल और Powershell 2.0 तथा Windows के पुराने संस्करणों के साथ संगत रखा जा सके। यह स्क्रिप्ट केवल jar फ़ाइलों की जाँच करती है और स्ट्रिंग "JndiLookup.class" की खोज करती है जो एक असुरक्षित लाइब्रेरी को इंगित करती है। इसे एडमिन अनुमतियों के साथ चलाने के लिए अपनी पसंद का टूल उपयोग करें (या बस इसे मैन्युअल रूप से उपयोग करें)।
वैकल्पिक रूप से, यदि आप powershell का उपयोग नहीं कर सकते, तो आप वर्तमान ड्राइव को "JndiLookup.class" वाली jar फ़ाइलों के लिए स्कैन करने हेतु कमांड प्रॉम्प्ट के लिए यह स्निपेट उपयोग कर सकते हैं। इस पंक्ति को एडमिन अनुमतियों के साथ चलाने के बाद असुरक्षित फ़ाइलों के लिए फ़ाइल c:\log4j-vuln.txt देखें।
cd \ && for /r %f in (*.jar) do (find /i /c "JndiLookup.class" "%f" 1>nul && echo "%f" >> "c:\log4j-vuln.txt")