
बैश और पावरशेल स्क्रिप्ट्स जो स्थानीय फाइलसिस्टम में Log4j .jar फ़ाइलों को स्कैन करने के लिए हैं, जो CVE-2021-44228 उर्फ Log4Shell के लिए कमजोर हो सकती हैं।
यह रिपॉजिटरी स्क्रिप्ट्स शामिल करता है जो .jar फ़ाइलों की पहचान करने में मदद कर सकती हैं जो CVE-2021-44228 उर्फ Log4Shell के प्रति असुरक्षित हो सकती हैं।
यह स्क्रिप्ट फ़ाइलसिस्टम में किसी विशिष्ट पथ से शुरू होकर .jar फ़ाइलों को ढूँढेगी, प्रत्येक मिली .jar फ़ाइल के लिए - फ़ाइलनाम की परवाह किए बिना - SHA-256 हैश की गणना करेगी, और इस मान की तुलना उपयोगकर्ता द्वारा प्रदान की गई SHA-256 हैशों की सूची से करेगी।
आधिकारिक Log4j रिलीज़ के विरुद्ध गणना की गई ज्ञात हैश फ़ाइलें https://github.com/mubix/CVE-2021-44228-Log4Shell-Hashes पर उपलब्ध हैं, जो इस रिपॉजिटरी में शामिल हैश फ़ाइल का स्रोत है।
नोट: यदि आपके सिस्टम में उपयोग में आने वाली Log4j .jar फ़ाइल को संशोधित किया गया है - उदाहरण के लिए - क्योंकि इसे स्रोत से संकलित किया गया है, क्योंकि किसी विक्रेता ने किसी भी प्रकार का अनुकूलन लागू किया है, या क्योंकि Log4j कक्षाओं को एक बड़ी .jar फ़ाइल में शामिल किया गया है, तो इसका SHA-256 हैश संबंधित आधिकारिक Log4j रिलीज़ से भिन्न होगा और स्क्रिप्ट इसे चिह्नित करने में सक्षम नहीं होगी।
log4shell_hash_check.sh <path> <sha256file>
E.g.: sudo ./log4shell_hash_check.sh / sha256sum.txt
sudo ./log4shell_hash_check.sh ./ sha256sum.txt
sudo ./log4shell_hash_check.sh /opt/tomcat/ sha256sum.txt
log4shell_hash_check.ps1 -path <path> -hashfile <sha256file>
E.g.: .\log4shell_hash_check.ps1 -path c:\ -hashfile sha256sum.txt
.\log4shell_hash_check.ps1 -path .\ -hashfile sha256sum.txt
.\log4shell_hash_check.ps1 -path c:\opt\tomcat\ -hashfile sha256sum.txt
OccamSec $ ./log4shell_hash_check.sh ./ log4j_2.x_sha256sum.txt
Please be patient, scanning the file system for .jar files starting at ./
.//apache-log4j-2.13.1-bin/log4j-flume-ng-2.13.1.jar
.//apache-log4j-2.13.1-bin/log4j-core-2.13.1.jar
[CUT]
.//apache-log4j-2.13.1-bin/log4j-mongodb2-2.13.1.jar
.//apache-log4j-2.13.1-bin/log4j-to-slf4j-2.13.1-sources.jar
.//apache-log4j-2.13.1-bin/log4j-to-slf4j-2.13.1-javadoc.jar
.//apache-log4j-2.13.1-bin/log4j-appserver-2.13.1-javadoc.jar
.//apache-log4j-2.13.1-bin/log4j-appserver-2.13.1-sources.jar
Checking hash 6f38a25482d82cd118c4255f25b9d78d96821d22bab498cdce9cda7a563ca992 .//apache-log4j-2.13.1-bin/log4j-core-2.13.1.jar
>>> MATCH: 6f38a25482d82cd118c4255f25b9d78d96821d22bab498cdce9cda7a563ca992 .//apache-log4j-2.13.1-bin/log4j-core-2.13.1.jar
Checking hash eafab7995f042e0386e08fa5e299d63465b63f1e4e5cb754612c68d52b72516d .//apache-log4j-2.13.1-bin/log4j-appserver-2.13.1-sources.jar
List of .jar files found under ./ (if any) saved as ./jarfiles.txt
List of .jar files matching user-provided Log4j hashes (if any) saved as ./matchinglog4j.txt
यह स्क्रिप्ट फ़ाइलसिस्टम में किसी विशिष्ट पथ से शुरू होकर .jar फ़ाइलों को ढूँढेगी और यह जाँचने के लिए उनका निरीक्षण करेगी कि उनमें JndiLookup वर्ग है या नहीं। यदि ऐसा है, तो स्क्रिप्ट .jar फ़ाइल मैनिफ़ेस्ट से जानकारी निकालेगी जो यह निर्धारित करने में मदद करनी चाहिए कि .jar फ़ाइल में Log4j रिलीज़ है या नहीं, और यदि हाँ, तो क्या यह असुरक्षित है। अंत में, स्क्रिप्ट पूर्णता के लिए SHA-256 हैश की गणना करेगी।
यह उपयोगकर्ता पर निर्भर है कि वह इस स्क्रिप्ट का उपयोग "Log4Shell हैश जाँच" स्क्रिप्ट के सहायक के रूप में करे या एक स्वतंत्र उपकरण के रूप में।
log4shell_jndilookup_finder.sh <path>
E.g.: sudo ./log4shell_jndilookup_finder.sh /
sudo ./log4shell_jndilookup_finder.sh ./
sudo ./log4shell_jndilookup_finder.sh /opt/tomcat/
log4shell_jndilookup_finder.ps1 -path <path>
E.g.: .\log4shell_jndilookup_finder.ps1 -path c:\
.\log4shell_jndilookup_finder.ps1 -path .\
.\log4shell_jndilookup_finder.ps1 -path c:\opt\tomcat\
OccamSec $ ./log4shell_jndilookup_finder.sh ./
Please be patient, scanning the file system for .jar files starting at ./
.//apache-log4j-2.13.1-bin/log4j-flume-ng-2.13.1.jar
.//apache-log4j-2.13.1-bin/log4j-core-2.13.1.jar
[CUT]
.//apache-log4j-2.13.1-bin/log4j-mongodb2-2.13.1.jar
.//apache-log4j-2.13.1-bin/log4j-to-slf4j-2.13.1-sources.jar
.//apache-log4j-2.13.1-bin/log4j-to-slf4j-2.13.1-javadoc.jar
.//apache-log4j-2.13.1-bin/log4j-appserver-2.13.1-javadoc.jar
.//apache-log4j-2.13.1-bin/log4j-appserver-2.13.1-sources.jar
-------------------------------------------
>>> JndiLookup.class found in: .//apache-log4j-2.13.1-bin/log4j-core-2.13.1.jar
PACKAGE INFORMATION:
Automatic-Module-Name: org.apache.logging.log4j.core
Bundle-Name: Apache Log4j Core
Bundle-SymbolicName: org.apache.logging.log4j.core
Implementation-Title: Apache Log4j Core
Implementation-URL: https://logging.apache.org/log4j/2.x/log4j-core/
Implementation-Vendor-Id: org.apache.logging.log4j
Specification-Title: Apache Log4j Core
VERSION INFORMATION:
Bundle-Version: 2.13.1
Implementation-Version: 2.13.1
Log4jReleaseVersion: 2.13.1
Specification-Version: 2.13.1
SHA-256 hash:
6f38a25482d82cd118c4255f25b9d78d96821d22bab498cdce9cda7a563ca992 *.//apache-log4j-2.13.1-bin/log4j-core-2.13.1.jar
List of .jar files found under ./ (if any) saved as ./jarfiles.txt
Details about .jar files containing 'JndiLookup.class' (if any) saved as ./jndilookup_jarfiles.txt