
कुछ Fortinet उपकरणों में एक गंभीर प्रमाणीकरण बायपास भेद्यता (CVE-2024-55591) को खोजने और उसका शोषण करने के लिए एक व्यापक ऑल-इन-वन Python-आधारित प्रूफ ऑफ कॉन्सेप्ट स्क्रिप्ट।
कुछ Fortinet डिवाइसों में एक गंभीर प्रमाणीकरण बाईपास भेद्यता (CVE-2024-55591) की खोज और शोषण करने के लिए एक व्यापक ऑल-इन-वन Python-आधारित Proof of Concept स्क्रिप्ट। यह स्क्रिप्ट:
nmap का उपयोग करके लक्ष्य होस्ट को ओपन पोर्ट्स के लिएCVE-2024-55591 कुछ Fortinet उत्पादों (FortiOS और FortiProxy) में एक गंभीर प्रमाणीकरण बाईपास है। WebSocket/Telnet प्रबंधन इंटरफ़ेस में एक खामी का शोषण करके, एक हमलावर वैध क्रेडेंशियल्स के बिना विशेषाधिकार प्राप्त CLI एक्सेस प्राप्त कर सकता है।
Fortinet PSIRT एडवाइज़री (FG-IR-24-535) के अनुसार, निम्नलिखित वर्ज़न प्रभावित होने के लिए जाने जाते हैं:
git clone https://github.com/exfil0/CVE-2024-55591-POC.git
cd CVE-2024-55591-POC
python3 attack.py
निष्पादित होने पर, स्क्रिप्ट गुम Python निर्भरताओं (requests, urllib3) की स्वचालित रूप से जाँच करती है और उन्हें इंस्टॉल करने का प्रयास करती है।
आपसे निम्नलिखित के लिए प्रॉम्प्ट किया जाएगा:
एक बार पुष्टि करने पर, स्क्रिप्ट कनेक्टिविटी का परीक्षण करती है, भेद्यता की जाँच करती है, कनेक्शन को WebSocket में अपग्रेड करती है, और प्रमाणीकरण बाईपास का प्रयास करती है।
स्टार्टअप पर, यह स्क्रिप्ट requests और urllib3 की जाँच करती है। यदि गुम हैं, तो यह उन्हें pip के माध्यम से इंस्टॉल करने का प्रयास करती है।
यदि आप चुनते हैं, तो स्क्रिप्ट ओपन TCP पोर्ट्स खोजने के लिए nmap -sS -p- --min-rate 500 <host> चलाती है, फिर या तो:
यदि कई पोर्ट्स खुले पाए जाते हैं, तो आप स्क्रिप्ट को उन सभी का परीक्षण करने का निर्देश दे सकते हैं। यह तब उपयोगी है जब Fortinet सेवाएँ गैर-मानक पोर्ट्स पर सुन रही हों।
यदि शोषण सफल होता है, तो आप वैकल्पिक रूप से उसी Telnet सत्र में अतिरिक्त कमांड चला सकते हैं, जैसे:
diag sys topdiag debug crashlog readexecute shellआप अधिक उन्नत डेटा एकत्र करने के लिए स्क्रिप्ट में इन पोस्ट-एक्सप्लॉयटेशन कमांड को संशोधित कर सकते हैं।
स्क्रिप्ट get system status या get system info के आउटपुट से डिवाइस वर्ज़न को पार्स करने का प्रयास करती है। यदि यह किसी ज्ञात भेद्य रेंज से मेल खाता है, तो यह आपको सूचित करती है।
192.168.1.50y (हाँ)yget system statusy या nयदि Nmap को कई ओपन पोर्ट्स मिलते हैं, तो आप स्वचालित रूप से सभी पोर्ट्स का परीक्षण करना चुन सकते हैं या एक विशिष्ट पोर्ट चुन सकते हैं।
/login?redir=/ng Fortinet का प्रबंधन इंटरफ़ेस लौटाता हैservice-worker.js?local_access_token=ScaryBYte में सबस्ट्रिंग api/v2/static मौजूद हैget system status जैसे कमांड चला सकते हैंयदि पोस्ट-एक्सप्लॉइट मोड सक्षम है, तो स्क्रिप्ट अतिरिक्त डीबग या सिस्टम कमांड भेजती है। आउटपुट एकत्र किया जाता है और आपके कंसोल में प्रदर्शित होता है।
यह Proof of Concept स्क्रिप्ट केवल शैक्षिक और परीक्षण उद्देश्यों के लिए प्रदान की गई है। स्पष्ट अनुमति के बिना सिस्टम का अनधिकृत शोषण अवैध है। किसी भी सिस्टम को स्कैन या परीक्षण करने से पहले हमेशा सुनिश्चित करें कि आपके पास उचित अनुमोदन हैं, और पैच जानकारी के लिए Fortinet की एडवाइज़री (FG-IR-24-535) देखें।