
यह एक्सप्लॉइट एक XXE (XML External Entity) का शोषण करने के लिए बनाया गया था। इसके माध्यम से, मैंने वेब सेवा के बैकएंड कोड को पढ़ा और एक एंडपॉइंट पाया जहाँ मैं Zabbix पर आंतरिक अनुरोध करने के लिए gopher का उपयोग कर सकता था, जो RCE के लिए संवेदनशील था।
python exploit.py --ip <Zabbix_IP> --sid <LowPrivileged_SID> --hostid <HostID> --phpsessid <PHPSESSID> --false_time <FalseTime> --true_time <TrueTime>
यह एक्सप्लॉइट XXE (XML External Entity) का शोषण करने के लिए बनाया गया था। इसके माध्यम से, मैंने वेब सेवा के बैकएंड कोड को पढ़ा और एक ऐसा एंडपॉइंट पाया जहां मैं Zabbix संस्करण 6.0.27 पर आंतरिक अनुरोध करने के लिए gopher का उपयोग कर सकता था, जो रिमोट कोड एक्ज़ीक्यूशन के लिए संवेदनशील है।
टोही चरण के दौरान, मैंने docker-compose.yml फ़ाइल प्राप्त करने के लिए बाहरी वेब सर्वर पर ब्रूट-फोर्स हमला किया, जिसने आंतरिक Zabbix सर्वरों का कंटेनर नाम प्रदान किया। इस जानकारी का उपयोग करके, मैंने gopher के माध्यम से वेब एप्लिकेशन की जड़ में एक POST अनुरोध भेजा और वेब सर्वर ने कुकी में base64 में एन्कोडेड JSON में एक निम्न-विशेषाधिकार वाले उपयोगकर्ता के host-id और सत्र आईडी लौटाए।
इन विवरणों के साथ, मैं व्यवस्थापक के सत्र आईडी प्राप्त करने के लिए zabbix-server:10051 में SQL इंजेक्शन भेद्यता का शोषण करने के लिए मूल एक्सप्लॉइट को अनुकूलित करने में सक्षम था, और फिर रिमोट कोड निष्पादन प्राप्त करने के लिए एक स्क्रिप्ट बनाकर निष्पादित कर सका।
यदि आपको gopher का उपयोग करके इस Zabbix भेद्यता का शोषण करने की आवश्यकता है, तो आप आवश्यकतानुसार अनुरोध करने के लिए InternalRequest फ़ंक्शन को संशोधित कर सकते हैं।
10.0.46.27:5555) पर आपकी मशीन से वापस जुड़ेगी।सुनिश्चित करें कि रिवर्स शेल को पकड़ने के लिए आपकी मशीन निर्दिष्ट पोर्ट (स्क्रिप्ट में 5555) पर सुन रही है। आप इसके लिए netcat का उपयोग कर सकते हैं:
nc -lvnp 5555
रिवर्स शेल प्राप्त करने के लिए CreateScript फ़ंक्शन में IP 10.0.46.27 और पोर्ट 5555 को अपने स्वयं के IP और वांछित पोर्ट से बदलें।