tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमारे Twitter 🐦 @hacktricks_live** का पालन करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
महत्वपूर्ण नोट:
dl
एक PHP फ़ंक्शन है जिसका उपयोग PHP एक्सटेंशन लोड करने के लिए किया जा सकता है। यदि यह फ़ंक्शन अक्षम नहीं है, तो इसका दुरुपयोग किया जा सकता है disable_functions
को बायपास करने और मनमाने आदेशों को निष्पादित करने के लिए।
हालांकि, इसके कुछ सख्त सीमाएँ हैं:
dl
फ़ंक्शन को मौजूद होना चाहिए और अक्षम नहीं होना चाहिए- PHP एक्सटेंशन को सर्वर द्वारा उपयोग की जा रही समान मेजर संस्करण (PHP API संस्करण) के साथ संकलित किया जाना चाहिए (आप यह जानकारी phpinfo के आउटपुट में देख सकते हैं)
- PHP एक्सटेंशन को उस निर्देशिका में होना चाहिए जो
extension_dir
निर्देश द्वारा परिभाषित है (आप इसे phpinfo के आउटपुट में देख सकते हैं)। यह बहुत असंभव है कि एक हमलावर जो सर्वर का दुरुपयोग करने की कोशिश कर रहा है, इस निर्देशिका पर लिखने की अनुमति रखता हो, इसलिए यह आवश्यकता शायद आपको इस तकनीक का दुरुपयोग करने से रोक देगी।
यदि आप इन आवश्यकताओं को पूरा करते हैं, तो इस पोस्ट को पढ़ना जारी रखें https://antichat.com/threads/70763/ यह जानने के लिए कि disable_functions
को कैसे बायपास करें। यहाँ एक सारांश है:
dl फ़ंक्शन का उपयोग स्क्रिप्ट निष्पादन के दौरान PHP एक्सटेंशन को गतिशील रूप से लोड करने के लिए किया जाता है। PHP एक्सटेंशन, जो आमतौर पर C/C++ में लिखे जाते हैं, PHP की कार्यक्षमता को बढ़ाते हैं। हमलावर, जब देखता है कि dl
फ़ंक्शन अक्षम नहीं है, तो सिस्टम आदेशों को निष्पादित करने के लिए एक कस्टम PHP एक्सटेंशन बनाने का निर्णय लेता है।
हमलावर द्वारा उठाए गए कदम:
- PHP संस्करण पहचान:
- हमलावर एक स्क्रिप्ट का उपयोग करके PHP संस्करण निर्धारित करता है (
<?php echo 'PHP Version is '.PHP_VERSION; ?>
).
- PHP स्रोत अधिग्रहण:
- आधिकारिक PHP वेबसाइट से PHP स्रोत डाउनलोड करता है या यदि संस्करण पुराना है तो आर्काइव से।
- स्थानीय PHP सेटअप:
- अपने सिस्टम पर विशिष्ट PHP संस्करण को निकालता और स्थापित करता है।
- एक्सटेंशन निर्माण:
- PHP एक्सटेंशन बनाने का अध्ययन करता है और PHP स्रोत कोड की जांच करता है।
ext/standard/exec.c
में स्थित exec फ़ंक्शन की कार्यक्षमता को दोहराने पर ध्यान केंद्रित करता है।
कस्टम एक्सटेंशन संकलन के लिए नोट्स:
- ZEND_MODULE_API_NO:
bypass.c
मेंZEND_MODULE_API_NO
को वर्तमान Zend Extension Build से मेल खाना चाहिए, जिसे प्राप्त किया जा सकता है:
php -i | grep "Zend Extension Build" |awk -F"API4" '{print $2}' | awk -F"," '{print $1}'
- PHP_FUNCTION संशोधन:
- हाल के PHP संस्करणों (5, 7, 8) के लिए,
PHP_FUNCTION(bypass_exec)
को समायोजन की आवश्यकता हो सकती है। प्रदान किया गया कोड स्निपेट इस संशोधन का विवरण देता है।
कस्टम एक्सटेंशन फ़ाइलें:
- bypass.c:
- कस्टम एक्सटेंशन की मुख्य कार्यक्षमता को लागू करता है।
- php_bypass.h:
- हेडर फ़ाइल, एक्सटेंशन गुणों को परिभाषित करती है।
- config.m4:
- कस्टम एक्सटेंशन के लिए निर्माण वातावरण को कॉन्फ़िगर करने के लिए
phpize
द्वारा उपयोग किया जाता है।
एक्सटेंशन का निर्माण:
- संकलन आदेश:
- एक्सटेंशन को संकलित करने के लिए
phpize
,./configure
, औरmake
का उपयोग करता है। - परिणामी
bypass.so
फिर मॉड्यूल उपनिर्देशिका में स्थित होता है।
- साफ-सफाई:
- संकलन के बाद
make clean
औरphpize --clean
चलाता है।
पीड़ित होस्ट पर अपलोड और निष्पादन:
- संस्करण संगतता:
- हमलावर और पीड़ित के सिस्टम के बीच PHP API संस्करणों का मेल सुनिश्चित करता है।
- एक्सटेंशन लोडिंग:
- प्रक्रिया को स्वचालित करने के लिए सापेक्ष पथों या स्क्रिप्ट का उपयोग करके
dl
फ़ंक्शन का उपयोग करता है।
- स्क्रिप्ट निष्पादन:
- हमलावर
bypass.so
और एक PHP स्क्रिप्ट को पीड़ित के सर्वर पर अपलोड करता है। - स्क्रिप्ट
bypass.so
को गतिशील रूप से लोड करने के लिएdl_local
फ़ंक्शन का उपयोग करती है और फिरcmd
क्वेरी पैरामीटर के माध्यम से पास किए गए आदेश के साथbypass_exec
को कॉल करती है।
आदेश निष्पादन:
- हमलावर अब आदेश निष्पादित कर सकता है:
http://www.example.com/script.php?cmd=<command>
यह विस्तृत मार्गदर्शिका एक PHP एक्सटेंशन बनाने और तैनात करने की प्रक्रिया को रेखांकित करती है ताकि सिस्टम आदेशों को निष्पादित किया जा सके, dl
फ़ंक्शन का दुरुपयोग करते हुए, जिसे इस प्रकार की सुरक्षा उल्लंघनों को रोकने के लिए आदर्श रूप से अक्षम किया जाना चाहिए।
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमारे Twitter 🐦 @hacktricks_live** का पालन करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।