
गैर-HTTP मोटे क्लाइंट्स के पेनिट्रेशन टेस्टिंग सीखने के लिए जानबूझकर कमजोर क्लाइंट-सर्वर एप्लिकेशन। इसमें SQL इंजेक्शन, RCE, XML हमले, बफर ओवर-रीड, और एक्सेस कंट्रोल कमजोरियों के लिए चुनौतियाँ शामिल हैं।
कमजोर क्लाइंट-सर्वर एप्लिकेशन (VuCSA) सीखने/प्रस्तुत करने के लिए बनाया गया है कि कैसे गैर-http क्लाइंट-सर्वर एप्लिकेशन के पेनिट्रेशन टेस्ट किए जाएं। इसे Java (JavaFX ग्राफिकल यूज़र इंटरफ़ेस के साथ) में लिखा गया है।
वर्तमान में, इस कमजोर एप्लिकेशन में निम्नलिखित चुनौतियाँ शामिल हैं:
यदि आप जानना चाहते हैं कि इन चुनौतियों को कैसे हल किया जाए, तो PETEP वेबसाइट देखें, जो बताती है कि उनका शोषण करने के लिए ओपन-सोर्स टूल PETEP का उपयोग कैसे करें।
टिप 1: हैकिंग शुरू करने से पहले, नीचे दिए गए संदेशों की डेटा संरचना की जाँच करना न भूलें। नेटवर्क ट्रैफ़िक को संशोधित करते समय, आपको संरचना, विशेष रूप से पेलोड लंबाई बाइट्स पर विचार करना होगा।
टिप 2: अधिकांश चुनौतियों का शोषण नेटवर्क ट्रैफ़िक में संशोधन के माध्यम से किया जा सकता है। इसलिए, परीक्षण के लिए TCP प्रॉक्सी या प्रक्रिया हुक का उपयोग करने की अनुशंसा की जाती है।
टिप 3: कुछ चुनौतियों में इनपुट सत्यापन और प्रतिबंध हैं, जो थिक क्लाइंट्स में सामान्य है, लेकिन इसका मतलब यह नहीं है कि सर्वर समान सत्यापन का उपयोग करता है।
इस चुनौती में, आपका लक्ष्य क्लाइंट और सर्वर के बीच नेटवर्क ट्रैफ़िक को इस प्रकार हेरफेर करना है कि बफर ओवर-रीड हो।
कमांड निष्पादन चुनौती एक बहुत ही सरल कमांड निष्पादन कमजोरी का प्रतिनिधित्व करती है। लक्ष्य सर्वर पर दुर्भावनापूर्ण कमांड निष्पादित करना है।
SQL इंजेक्शन चुनौती में एक खोज इनपुट है जो SQL इंजेक्शन के लिए कमजोर है, लेकिन जैसा कि आप जल्द ही नोटिस करेंगे, इनपुट आपको वे वर्ण इनपुट करने की अनुमति नहीं देता जिनकी आपको आवश्यकता है।
गणना चुनौती एक सिम्युलेटेड लॉगिन फॉर्म पर आधारित है जो गणना से सुरक्षित नहीं है। क्या आप सभी 5 उपयोगकर्ताओं को ढूंढ पाएंगे और उनके पासवर्ड का अनुमान लगा पाएंगे?
इस चुनौती में, आपको कई XML कमजोरियाँ मिल सकती हैं:
क्षैतिज पहुँच नियंत्रण चुनौती एक दस्तावेज़ रीडर का प्रतिनिधित्व करती है जो उपयोगकर्ता को अपने स्वयं के दस्तावेज़ देखने और उनकी सामग्री पढ़ने की अनुमति देता है। लक्ष्य अन्य उपयोगकर्ताओं के 5 दस्तावेज़ ढूंढना है।
ऊर्ध्वाधर पहुँच नियंत्रण चुनौती एक सिम्युलेटेड उपयोगकर्ता पैनल पर आधारित है, जो बुनियादी उपयोगकर्ता जानकारी दिखाता है। लक्ष्य एक छिपी हुई एडमिन कार्यक्षमता ढूंढना है और जाँचना है कि क्या अतिथि उपयोगकर्ता के रूप में इसका उपयोग करना संभव है।
RCE डिसीरियलाइज़ेशन कमजोरी नेटवर्क के माध्यम से डेटा प्रसारित करने के लिए Java डिसीरियलाइज़ेशन/सीरियलाइज़ेशन का उपयोग करती है। एप्लिकेशन में दो पथ हैं जिनका उपयोग आप कमजोर Java डिसीरियलाइज़ेशन के माध्यम से रिमोट कोड निष्पादन प्राप्त करने के लिए कर सकते हैं।
आप सर्वर के JAR फ़ाइल की जाँच करके या स्रोत कोड में देखकर दोनों पथ पा सकते हैं।
लक्ष्य दोनों पथों के लिए एक्सप्लॉइट बनाना और सर्वर पर दुर्भावनापूर्ण कमांड निष्पादित करना है।
टिप: आप एक्सप्लॉइट निर्माण को आसान बनाने के लिए सर्वर JAR को लाइब्रेरी के रूप में उपयोग कर सकते हैं।
VuCSA चलाने के लिए आपको Java 11 या नए संस्करण की आवश्यकता है।
नोट: ARM64 आर्किटेक्चर (M1, M2 चिप्स) वाले Mac के लिए, Java 17 के लिए विशेष बिल्ड का उपयोग करें।
कमजोर सर्वर और क्लाइंट चलाने के लिए, आप GitHub पर उपलब्ध रिलीज़ में से एक का उपयोग कर सकते हैं या gradle assemble चला सकते हैं, जो वितरण पैकेज (Windows और Unix दोनों के लिए) बनाता है। इन पैकेजों में sh/bat स्क्रिप्ट हैं जो JVM का उपयोग करके सर्वर और क्लाइंट चलाएंगी:
# Linux / Mac
chmod +x client.sh server.sh
./client.sh
./server.sh
# Windows
client.bat
server.bat
नोट: इन रन स्क्रिप्ट में उपयोगी वेरिएबल्स हैं, जिनमें Java निष्पादन योग्य का पथ शामिल है। यदि यह PATH में नहीं है या आप कई Java संस्करणों का उपयोग करते हैं तो आपको इसे बदलने की आवश्यकता हो सकती है।
सर्वर कॉन्फ़िगरेशन स्वचालित रूप से बनाया जाता है यदि यह मौजूद नहीं है और उसके बाद इसे उसी निर्देशिका में server.json से लोड किया जाता है जहाँ सर्वर चल रहा है:
{
"network": {
"serverHost": "0.0.0.0",
"serverPort": 8765
}
}
क्लाइंट कॉन्फ़िगरेशन को चल रहे एप्लिकेशन में निर्दिष्ट किया जा सकता है।
प्रोजेक्ट तीन मॉड्यूल में विभाजित है:
सर्वर और क्लाइंट के बीच प्रेषित संदेशों का निम्नलिखित सरल प्रारूप है:
[type][target][length][payload]
32b 32b 32b ???
इन चार भागों का निम्नलिखित अर्थ है:
कस्टम पेलोड भेजने के लिए, आपको पेलोड लंबाई अपडेट करनी पड़ सकती है। अन्यथा, यह ठीक से काम नहीं करेगा। ट्यूटोरियल में, पेलोड लंबाई बाइट्स को ऑटो-फिक्स करने के लिए एक स्वचालित स्क्रिप्ट विकसित की गई है।
कमजोर क्लाइंट-सर्वर एप्लिकेशन (VuCSA) में कई कमजोरियाँ हैं, जिनका विभिन्न तरीकों से शोषण किया जा सकता है। इन कमजोरियों के शोषण के लिए आधिकारिक गाइड ओपन-सोर्स PEnetration TEsting Proxy (देखें PETEP मेथडोलॉजी) का उपयोग करता है।
PETEP मेथडोलॉजी में, चुनौतियों के शोषण की पूरी प्रक्रिया समझाई गई है, जिसमें उपयोगी पेलोड शामिल हैं।