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 सबमिट करें।
CBC
यदि कुकी केवल उपयोगकर्ता नाम है (या कुकी का पहला भाग उपयोगकर्ता नाम है) और आप उपयोगकर्ता नाम "admin" का अनुकरण करना चाहते हैं। तो, आप उपयोगकर्ता नाम "bdmin" बना सकते हैं और कुकी के पहले बाइट को ब्रूटफोर्स कर सकते हैं।
CBC-MAC
साइफर ब्लॉक चेनिंग मैसेज ऑथेंटिकेशन कोड (CBC-MAC) एक विधि है जो क्रिप्टोग्राफी में उपयोग की जाती है। यह एक संदेश को लेती है और इसे ब्लॉक दर ब्लॉक एन्क्रिप्ट करती है, जहां प्रत्येक ब्लॉक का एन्क्रिप्शन पिछले ब्लॉक से जुड़ा होता है। यह प्रक्रिया एक ब्लॉकों की श्रृंखला बनाती है, यह सुनिश्चित करते हुए कि मूल संदेश के एक भी बिट को बदलने से एन्क्रिप्टेड डेटा के अंतिम ब्लॉक में अप्रत्याशित परिवर्तन होगा। ऐसा परिवर्तन करने या उलटने के लिए एन्क्रिप्शन कुंजी की आवश्यकता होती है, जो सुरक्षा सुनिश्चित करती है।
संदेश m का CBC-MAC निकालने के लिए, m को शून्य प्रारंभिक वेक्टर के साथ CBC मोड में एन्क्रिप्ट किया जाता है और अंतिम ब्लॉक को रखा जाता है। निम्नलिखित चित्र एक संदेश के CBC-MAC की गणना को दर्शाता है जिसमें ब्लॉक शामिल हैं एक गुप्त कुंजी k और एक ब्लॉक साइफर E का उपयोग करते हुए:
Vulnerability
CBC-MAC के साथ आमतौर पर IV का उपयोग 0 होता है।
यह एक समस्या है क्योंकि 2 ज्ञात संदेश (m1
और m2
) स्वतंत्र रूप से 2 हस्ताक्षर (s1
और s2
) उत्पन्न करेंगे। तो:
E(m1 XOR 0) = s1
E(m2 XOR 0) = s2
फिर m1 और m2 के संयोजन से बना एक संदेश (m3) 2 हस्ताक्षर (s31 और s32) उत्पन्न करेगा:
E(m1 XOR 0) = s31 = s1
E(m2 XOR s1) = s32
जिसे एन्क्रिप्शन की कुंजी को जाने बिना गणना करना संभव है।
कल्पना करें कि आप नाम Administrator को 8bytes ब्लॉकों में एन्क्रिप्ट कर रहे हैं:
Administ
rator\00\00\00
आप एक उपयोगकर्ता नाम Administ (m1) बना सकते हैं और हस्ताक्षर (s1) प्राप्त कर सकते हैं।
फिर, आप एक उपयोगकर्ता नाम बना सकते हैं जो rator\00\00\00 XOR s1
का परिणाम है। यह E(m2 XOR s1 XOR 0)
उत्पन्न करेगा जो s32 है।
अब, आप s32 का उपयोग पूर्ण नाम Administrator के हस्ताक्षर के रूप में कर सकते हैं।
Summary
- उपयोगकर्ता नाम Administ (m1) का हस्ताक्षर प्राप्त करें जो s1 है
- उपयोगकर्ता नाम rator\x00\x00\x00 XOR s1 XOR 0 का हस्ताक्षर प्राप्त करें जो s32 है।
- कुकी को s32 पर सेट करें और यह उपयोगकर्ता Administrator के लिए एक मान्य कुकी होगी।
Attack Controlling IV
यदि आप उपयोग किए गए IV को नियंत्रित कर सकते हैं तो हमला बहुत आसान हो सकता है।
यदि कुकी केवल उपयोगकर्ता नाम एन्क्रिप्टेड है, तो उपयोगकर्ता "administrator" का अनुकरण करने के लिए आप उपयोगकर्ता "Administrator" बना सकते हैं और आपको इसकी कुकी मिल जाएगी।
अब, यदि आप IV को नियंत्रित कर सकते हैं, तो आप IV के पहले बाइट को बदल सकते हैं ताकि IV[0] XOR "A" == IV'[0] XOR "a" और उपयोगकर्ता Administrator के लिए कुकी को फिर से उत्पन्न कर सकें। यह कुकी प्रारंभिक IV के साथ उपयोगकर्ता administrator का अनुकरण करने के लिए मान्य होगी।
References
अधिक जानकारी के लिए https://en.wikipedia.org/wiki/CBC-MAC
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 सबमिट करें।