
आपकी OpenSSH स्थापना CVE-2024-6387 के लिए संवेदनशील है या नहीं, यह जाँचने के लिए स्क्रिप्ट का उपयोग करने के निर्देश प्रदान करता है।
यह README आपके OpenSSH इंस्टॉलेशन में CVE-2024-6387 की भेद्यता की जांच करने के लिए स्क्रिप्ट का उपयोग करने के निर्देश प्रदान करता है। स्क्रिप्ट आपके सिस्टम पर स्थापित sshd बाइनरी का निरीक्षण करती है, उनके संस्करण निर्धारित करती है, और पाए गए संस्करण के आधार पर भेद्यता स्थिति की जांच करती है।
awk, grep, sed, strings, और cut उपयोगिताएँ उपलब्ध होंस्क्रिप्ट निम्नलिखित चरण करती है:
type -a sshd कमांड का उपयोग करके sshd के सभी उदाहरणों की पहचान करती है।sshd बाइनरी से संस्करण स्ट्रिंग निकालती है।sshd बाइनरी के लिए संस्करण और भेद्यता स्थिति आउटपुट करती है।स्क्रिप्ट को एक फ़ाइल में कॉपी करें, जैसे, check_cve_2024_6387.sh।
स्क्रिप्ट को निष्पादन अनुमतियाँ दें:
chmod +x check_cve_2024_6387.sh
स्क्रिप्ट चलाएँ:
./check_cve_2024_6387.sh
#!/bin/bash
for each_entry in $(type -a sshd | awk '{print $NF}' | uniq); do
version_string=$(strings "$each_entry" | grep -o "OpenSSH_[0-9]\+\.[0-9]\+p[0-9]\+" | uniq)
if [ -n "$version_string" ]; then
version=$(echo "$version_string" | sed -E 's/OpenSSH_([0-9]+\.[0-9]+)p[0-9]+/\1/')
major_version=$(echo $version | cut -d '.' -f 1)
minor_version=$(echo $version | cut -d '.' -f 2)
if [ "$major_version" -lt 4 ] || ([ "$major_version" -eq 4 ] && [ "$minor_version" -lt 4 ]); then
status="YES (Unless patched for CVE-2006-5051 and CVE-2008-4109)"
elif ([ "$major_version" -eq 4 ] && [ "$minor_version" -ge 4 ]) || ([ "$major_version" -ge 5 ] && [ "$major_version" -lt 8 ]) || ([ "$major_version" -eq 8 ] && [ "$minor_version" -lt 5 ]); then
status="NO"
elif ([ "$major_version" -eq 8 ] && [ "$minor_version" -ge 5 ]) || ([ "$major_version" -eq 9 ] && [ "$minor_version" -le 7 ]); then
status="YES"
else
status="Unknown"
fi
echo "Found OpenSSH version: $version in $each_entry"
echo "Vulnerability Status: $status"
if [ "$status" == "YES" ]; then
echo "Patch Immediately to OpenSSH 9.8/9.8p1"
fi
else
echo "No match found for $each_entry"
fi
done