
CVE-2024-23113 फ़ॉर्मेट स्ट्रिंग भेद्यता का पता लगाता है, जो पोर्ट 541 पर SSL कनेक्शन के माध्यम से FortiGate FGFM सेवा में मौजूद है, और RCE संवेदनशीलता की पुष्टि करने के लिए निर्मित पेलोड भेजता है।
यह स्क्रिप्ट CVE-2024-23113 का पता लगाने के लिए डिज़ाइन की गई है, जो TCP पोर्ट 541 पर चल रही FortiGate FGFM सेवा (FortiGate से FortiManager प्रोटोकॉल) में एक फॉर्मेट स्ट्रिंग भेद्यता है। यह भेद्यता इसलिए होती है क्योंकि एक हमलावर फॉर्मेट स्ट्रिंग को नियंत्रित कर सकता है, जिससे रिमोट कोड निष्पादन (RCE) या अन्य अनपेक्षित व्यवहार हो सकते हैं। FGFM सेवा कॉन्फ़िगरेशन प्रबंधन के लिए FortiGate उपकरणों और FortiManager के बीच संचार की अनुमति देती है, और एक अपैच्ड संस्करण में इनपुट के अनुचित संचालन के कारण यह फॉर्मेट स्ट्रिंग शोषण के लिए संवेदनशील है। स्क्रिप्ट कैसे काम करती है
नेटवर्क कनेक्शन सेटअप:
स्क्रिप्ट पहले पोर्ट 541 पर लक्ष्य से SSL/TLS कनेक्शन स्थापित करती है।
यह प्रमाणपत्र सत्यापन अक्षम के साथ ssl.SSLContext ऑब्जेक्ट का उपयोग करती है, क्योंकि डिवाइस में स्व-हस्ताक्षरित प्रमाणपत्र हो सकते हैं।
पेलोड निर्माण:
एक बार कनेक्ट होने के बाद, स्क्रिप्ट फॉर्मेट स्ट्रिंग शोषण (authip=%n) का उपयोग करके एक दुर्भावनापूर्ण पेलोड तैयार करती है। %n निर्देश सिस्टम को अब तक आउटपुट बाइट्स की संख्या को एक वेरिएबल में लिखने के लिए कहता है, जो संभावित रूप से मेमोरी क्षति का कारण बन सकता है।
तैयार किया गया पेलोड स्थापित कनेक्शन के माध्यम से लक्ष्य को भेजा जाता है।
पता लगाने का तर्क:
स्क्रिप्ट फिर लक्ष्य के व्यवहार की जांच करती है पेलोड के प्रतिक्रिया में।
यदि कनेक्शन अचानक समाप्त हो जाता है और SSL अलर्ट उठाया जाता है, तो यह सुझाव देता है कि लक्ष्य कमजोर है क्योंकि इसने फॉर्मेट स्ट्रिंग भेद्यता संरक्षण तंत्र (जैसे, glibc में _FORTIFY_SOURCE) को ट्रिगर किया है।
यदि कनेक्शन खुला रहता है, तो लक्ष्य संभवतः पैच किया गया है।
उपयोग निर्देश
स्क्रिप्ट चलाएँ:
स्क्रिप्ट को निष्पादित करने के लिए Python 3 के साथ चलाएँ:
sh
python check_vulnerability.py
होस्टनेम/IP दर्ज करें:
आपको जाँचने के लिए होस्टनेम या IP पता दर्ज करने के लिए संकेत दिया जाएगा।
यदि आप रुकना चाहते हैं, तो exit टाइप करें।
आउटपुट:
यदि लक्ष्य कमजोर है, तो स्क्रिप्ट आउटपुट देगी:
[!] चेतावनी: कमजोर है!
यदि लक्ष्य पैच किया गया है, तो यह आउटपुट देगी:
[+] <hostname> पैच किया हुआ प्रतीत होता है।
आवश्यकताएँ
स्क्रिप्ट चलाने वाली मशीन पर Python 3 स्थापित होना चाहिए।
लक्ष्य डिवाइस तक नेटवर्क पहुँच, यह सुनिश्चित करते हुए कि पोर्ट 541 खुला है।
लक्ष्य डिवाइस पर FGFM सेवा चल रही होनी चाहिए।