15 KiB
जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!
HackTricks का समर्थन करने के अन्य तरीके:
- यदि आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या HackTricks को PDF में डाउनलोड करना चाहते हैं तो सब्सक्रिप्शन प्लान्स देखें!
- आधिकारिक PEASS और HackTricks स्वैग प्राप्त करें
- हमारा विशेष NFTs संग्रह, The PEASS Family खोजें
- शामिल हों 💬 डिस्कॉर्ड समूह या टेलीग्राम समूह या हमें ट्विटर 🐦 @hacktricks_live** पर फॉलो** करें।
- अपने हैकिंग ट्रिक्स साझा करें और PRs सबमिट करके HackTricks और HackTricks Cloud github repos में।
CBC - Cipher Block Chaining
CBC मोड में पिछले एन्क्रिप्टेड ब्लॉक का उपयोग IV के रूप में किया जाता है जिसे अगले ब्लॉक के साथ XOR किया जाता है:
CBC को डिक्रिप्ट करने के लिए विपरीत ऑपरेशन किए जाते हैं:
ध्यान दें कि एक एन्क्रिप्शन कुंजी और एक IV का उपयोग करना आवश्यक है।
संदेश पैडिंग
जैसा कि एन्क्रिप्शन निश्चित आकार के ब्लॉक में किया जाता है, इसलिए पैडिंग को सामान्यत: अंतिम ब्लॉक में उसकी लंबाई पूरी करने के लिए आवश्यक होता है।
आम तौर पर PKCS7 का उपयोग किया जाता है, जो एक पैडिंग उत्पन्न करता है जो ब्लॉक को पूरा करने के लिए आवश्यक बाइट्स की संख्या को दोहराता है। उदाहरण के लिए, यदि अंतिम ब्लॉक में 3 बाइट छूट रही है, तो पैडिंग \x03\x03\x03
होगा।
एक 8 बाइट लंबाई के 2 ब्लॉक के साथ और अधिक उदाहरणों पर ध्यान दें:
byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 | byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
P | A | S | S | W | O | R | D | 1 | 2 | 3 | 4 | 5 | 6 | 0x02 | 0x02 |
P | A | S | S | W | O | R | D | 1 | 2 | 3 | 4 | 5 | 0x03 | 0x03 | 0x03 |
P | A | S | S | W | O | R | D | 1 | 2 | 3 | 0x05 | 0x05 | 0x05 | 0x05 | 0x05 |
P | A | S | S | W | O | R | D | 0x08 | 0x08 | 0x08 | 0x08 | 0x08 | 0x08 | 0x08 | 0x08 |
ध्यान दें कि अंतिम उदाहरण में अंतिम ब्लॉक पूरा था इसलिए एक और पैडिंग के साथ एक और उत्पन्न किया गया था।
पैडिंग ऑरेकल
जब एक एप्लिकेशन एन्क्रिप्टेड डेटा को डिक्रिप्ट करती है, तो पहले वह डेटा को डिक्रिप्ट करेगी; फिर वह पैडिंग को हटाएगी। पैडिंग को साफ करते समय, यदि अमान्य पैडिंग एक पहचानने योग्य व्यवहार को ट्रिगर करता है, तो आपके पास एक पैडिंग ऑरेकल संरचना है। पहचानने योग्य व्यवहार एक त्रुटि, परिणामों की कमी, या धीमा प्रतिक्रिया हो सकती है।
इस व्यवहार को पहचानने पर, आप एन्क्रिप्टेड डेटा को डिक्रिप्ट कर सकते हैं और यहां तक कि कोई साफ-टेक्स्ट एन्क्रिप्ट कर सकते हैं।
उत्पीडन कैसे करें
आप https://github.com/AonCyberLabs/PadBuster का उपयोग कर सकते हैं इस प्रकार की भयंकरता का उत्पीडन करने के लिए या बस करें
sudo apt-get install padbuster
एक साइट के कुकी को क्या विकल्पनशील है यह जांचने के लिए आप निम्नलिखित कोशिश कर सकते हैं:
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA=="
कोडिंग 0 का मतलब है कि base64 का उपयोग किया जाता है (लेकिन अन्य भी उपलब्ध हैं, मदद मेनू की जांच करें)।
आप इस सुरक्षा दोष का दुरुपयोग करके नए डेटा को एन्क्रिप्ट करने के लिए भी उपयोग कर सकते हैं। उदाहरण के लिए, यदि कुकी की सामग्री "user=MyUsername" है, तो आप इसे "_user=administrator_" में बदल सकते हैं और एप्लिकेशन के अंदर वरीयताएँ बढ़ा सकते हैं। आप paduster
का उपयोग करके भी इसे कर सकते हैं, -plaintext** पैरामीटर को निर्दिष्ट करते हुए:
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" -plaintext "user=administrator"
यदि साइट भेद्य है, तो padbuster
स्वतः प्रयास करेगा कि पैडिंग त्रुटि कब होती है, लेकिन आप इसे -error पैरामीटर का उपयोग करके त्रुटि संदेश को भी दिखा सकते हैं।
perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon=RVJDQrwUdTRWJUVUeBKkEA==" -error "Invalid padding"
सिद्धांत
सारांश में, आप सही मानों की अनुमान लगाकर शुरू कर सकते हैं जो सभी विभिन्न पैडिंग बनाने के लिए उपयोग किए जा सकते हैं। फिर, पैडिंग ऑरेकल हमला शुरू होगा जो अंत से शुरू तक बाइट्स को डिक्रिप्ट करने लगेगा जिसे यह अनुमान लगाएगा कि कौन सा सही मान होगा जो 1, 2, 3 आदि का पैडिंग बनाता है।
कल्पना करें कि आपके पास कुछ एन्क्रिप्टेड पाठ है जो 2 ब्लॉक्स को बनाता है जिनमें से बाइट्स E0 से E15 तक हैं।
अंतिम ब्लॉक (E8 से E15) को डिक्रिप्ट करने के लिए, पूरे ब्लॉक को "ब्लॉक साइपर डिक्रिप्शन" के माध्यम से गुजरना होगा जो इंटरमीडिएट बाइट्स I0 से I15 उत्पन्न करेगा।
अंततः, प्रत्येक इंटरमीडिएट बाइट पिछले एन्क्रिप्टेड बाइट्स (E0 से E7) के साथ XORed किया जाएगा। इसलिए:
C15 = D(E15) ^ E7 = I15 ^ E7
C14 = I14 ^ E6
C13 = I13 ^ E5
C12 = I12 ^ E4
- ...
अब, E7
को C15
0x01
तक मॉडिफाई करना संभव है, जो एक सही पैडिंग होगा। इसलिए, इस मामले में: \x01 = I15 ^ E'7
इसलिए, E'7
ढूंढने के बाद, I15 की गणना संभव है: I15 = 0x01 ^ E'7
जो हमें C15 की गणना करने की अनुमति देता है: C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7
C15 को जानकर, अब C14 की गणना संभव है, लेकिन इस बार पैडिंग \x02\x02
को ब्रूट-फोर्स करना होगा।
यह बीएफ पिछले एक के तुलना में इसी कठिनाई का है क्योंकि यह संभव है कि E''15
की गणना की जाए जिसका मान 0x02 है: E''7 = \x02 ^ I15
इसलिए बस E'14
ढूंढना होगा जो C14
को 0x02
के बराबर बनाता है।
फिर, C14 को डिक्रिप्ट करने के लिए एक ही कदम उठाएं: C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6
पूरे एन्क्रिप्टेड पाठ को डिक्रिप्ट करने तक इस श्रृंखला का पालन करें।
सुरक्षितता की खोज
एक खाता रजिस्टर करें और इस खाते से लॉग इन करें।
यदि आप कई बार लॉग इन करते हैं और हमेशा एक ही कुकी प्राप्त करते हैं, तो एप्लिकेशन में कुछ गड़बड़ हो सकती है। लॉग इन करने पर प्रेषित कुकी हर बार अद्वितीय होनी चाहिए। यदि कुकी हमेशा एक ही है, तो यह संभावना है कि यह हमेशा मान्य रहेगी और उसे अमान्य करने का कोई तरीका नहीं होगा।
अब, यदि आप कुकी को संशोधित करने की कोशिश करते हैं, तो आप एप्लिकेशन से त्रुटि प्राप्त करते हैं।
लेकिन यदि आप पैडिंग को बीएफ करते हैं (उदाहरण के लिए पैडबस्टर का उपयोग करके), तो आपको एक और कुकी प्राप्त करने में सफलता मिलती है जो एक विभिन्न उपयोगकर्ता के लिए मान्य है। यह स्थिति पैडबस्टर के लिए अत्यधिक संभावित रूप से विकल्पयोग्य है।
संदर्भ
जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!
HackTricks का समर्थन करने के अन्य तरीके:
- यदि आप अपनी कंपनी का विज्ञापन HackTricks में देखना चाहते हैं या PDF में HackTricks डाउनलोड करना चाहते हैं तो सब्सक्रिप्शन प्लान की जांच करें!
- आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें
- The PEASS Family की खोज करें, हमारा विशेष NFTs संग्रह।
- शामिल हों 💬 डिस्कॉर्ड समूह या टेलीग्राम समूह या हमें ट्विटर 🐦 @hacktricks_live** पर फॉलो करें।
- हैकिंग ट्रिक्स साझा करें हैकट्रिक्स और हैकट्रिक्स क्लाउड गिटहब रेपो में पीआर जमा करके।