wwwolf का PHP वेबशेल
मुझे अन्य वेबशेल का उपयोग करते समय अक्सर समस्याएँ आती हैं:
- वे नई PHP सिंटैक्स सुविधाओं का उपयोग करते हैं जो कुछ लक्ष्यों पर चल रहे पुराने PHP संस्करण
के साथ संगत नहीं हैं।
- वे रिमोट URL के बारे में गलत धारणा बनाते हैं, जिससे PHP कोड इंजेक्शन या सर्वर द्वारा
(अन)अपेक्षित GET पैरामीटर टूट जाते हैं।
- वे अक्सर केवल मानक आउटपुट सामग्री प्रदर्शित करते हैं, stderr को फेंक देते हैं।
- वे आउटपुट प्रदर्शन में विशेष वर्णों (जैसे
<) का खराब तरीके से ध्यान रखते हैं।
- वे फ़ाइल अपलोड की अनुमति नहीं देते, या लक्ष्य की सेटिंग्स द्वारा असमर्थित/अवरुद्ध
विधि प्रदान करते हैं।
- उन्हें मैन्युअल संशोधन की आवश्यकता होती है, यह इस बात पर निर्भर करता है कि लक्ष्य
UNIX-जैसी या Windows प्रणाली पर चल रहा है।
यहाँ इन समस्याओं को हल करने का मेरा प्रयास है। कुछ अन्य समाधानों के विपरीत,
यह किसी भी तरह से एक "पूर्ण-विशेषताओं वाला
पोस्ट-एक्सप्लॉइटेशन फ्रेमवर्क" बनने का लक्ष्य नहीं रखता। इसका एकमात्र लक्ष्य एक स्थिर और
विश्वसनीय तरीका प्रदान करना है, जिससे KISS सिद्धांत का पालन करते हुए लक्ष्य पर पैर जमाया जा सके
और इतना सामान्य बना रहे कि आप वहाँ से जो चाहें बना सकें
बिना किसी बाधा के।

WhiteWinterWolf का PHP वेबशेल:
- एक्सेस पासवर्ड से सुरक्षित की जा सकती है।
- बिना किसी संशोधन के UNIX-जैसी और Windows दोनों प्रणालियों के साथ संगत है।
- यह PHP आउटपुट बफ़र को साफ़ करने का प्रयास करता है (अर्थात, हमला किए गए एप्लिकेशन द्वारा पहले से उत्पन्न किसी भी "कचरा" कोड को हटा दें) और PHP कोड निष्पादन की समाप्ति लागू करता है
ताकि सबसे स्वच्छ और स्थिर व्यवहार प्रदान किया जा सके।
- फ़ॉर्म को POST अनुरोध के रूप में सबमिट किया जाता है, जो उसी URL (समान GET पैरामीटर, कुछ भी जोड़ा या हटाया नहीं गया) को बनाए रखता है
जिसका उपयोग इसे पहले स्थान पर एक्सेस करने के लिए किया गया था। कोई धारणा नहीं बनाई जाती, जिससे यह
टेढ़े-मेढ़े कोड इंजेक्शन तकनीकों के लिए उपयुक्त हो जाता है। इसके अलावा, रिमोट सर्वर
POST डेटा लॉग नहीं कर सकता है, और इस प्रकार लक्ष्य पर निष्पादित वास्तविक कमांड को लॉग नहीं कर सकता है।
- उचित डिफ़ॉल्ट मान लागू किए जाते हैं:
- वर्तमान कार्यशील निर्देशिका को वास्तविक वर्तमान कार्यशील
निर्देशिका पर सेट किया जाता है। इसका अतिरिक्त लाभ यह है कि यह आसानी से आपको रिमोट
सिस्टम-प्रकार (
/var/www/html बनाम C:\Inetpub\wwwroot) बता देता है।
- फ़ेच स्रोत होस्ट आपके IP पते पर सेट किया जाता है, जैसा कि लक्षित
सर्वर से देखा जाता है।
- आप स्वतंत्र रूप से कार्यशील निर्देशिका सेट कर सकते हैं और मान कमांडों के बीच बनाए रखा जाता है।
यदि PHP की
open_basedir सेटिंग सर्वर में आपकी गति को सीमित कर सकती है तो एक विशेष चेतावनी संदेश
प्रदर्शित किया जाता है।
- आपके लक्ष्यों पर फ़ाइलें अपलोड करने के दो अलग-अलग तरीके हैं:
- एक सामान्य अपलोड फ़ॉर्म, यदि रिमोट PHP सेटिंग्स इसकी अनुमति देती हैं।
- किसी दिए गए होस्ट और URL से फ़ाइल लाएँ (आमतौर पर हमलावर द्वारा नियंत्रित एक होस्ट)।
यह सुविधा एक बहुत बुनियादी HTTP फ़ेच कार्यक्षमता लागू करती है
जो PHP की
url_allow_fopen सेटिंग सीमा को दरकिनार करने की अनुमति देती है। यह
HTTP रीडायरेक्ट या प्रमाणीकरण जैसी आकर्षक चीज़ों को संभाल नहीं पाता, लेकिन हो सकता है
होस्टनाम को तदनुसार आगे जोड़कर SSL/TLS को संभाल ले
(tls://203.0.113.37)।
- एक लिंक
Clear cmd एक क्लिक में कमांड इनपुट फ़ॉर्म फ़ील्ड को साफ़ करने और उस पर फ़ोकस सेट करने
की अनुमति देता है। मुझे यह सर्वर पर कुछ मनमाने कमांड शीघ्रता से निष्पादित करने के लिए सुविधाजनक लगता है, लेकिन यह सुविधा JavaScript पर निर्भर करती है। यदि
आप JavaScript से बचना चाहते हैं तो आप इस एक-पंक्ति को हटा सकते हैं, इससे
वेबशेल के बाकी हिस्से पर कोई प्रभाव नहीं पड़ेगा जो कहीं और JavaScript का उपयोग नहीं करता है।
यह स्क्रिप्ट फ़ॉर्म सेटिंग्स को निम्नलिखित क्रम में लागू करती है:
- वर्तमान कार्यशील निर्देशिका।
- अपलोड करने के लिए फ़ाइलें।
- निष्पादित करने के लिए कमांड।
यह किसी दी गई निर्देशिका में एक फ़ाइल अपलोड करने और उसे तुरंत
एक ही HTTP अनुरोध में निष्पादित करने की अनुमति देता है।
अधिक जानकारी मुख्य प्रोजेक्ट पेज पर पाई जा सकती है।
यह स्क्रिप्ट केवल सुरक्षा अनुसंधान और मूल्यांकन प्रयोजनों के लिए प्रदान की गई है।
इसका उपयोग किसी भी अवैध कार्य के लिए न करें!