Kubernetes Network Attacks
परिचय
कुबरनेटीज़ डिफ़ॉल्ट रूप से सभी कंटेनर्स को जोड़ता है जो एक ही नोड में चल रहे होते हैं (यदि वे अलग-अलग नेमस्पेस के हों) तक लेयर 2 (ईथरनेट) तक। इससे एक दुष्ट कंटेनर्स को एक ARP स्पूफिंग हमला करने की अनुमति होती है जो समान नोड पर स्थित कंटेनर्स के ट्रैफ़िक को कैप्चर कर सकता है।
स्थिति में 4 मशीनें बनाई जाएंगी:
ubuntu-pe: नोड से बाहर निकलने और मैट्रिक्स की जांच करने के लिए विशेषाधिकृत मशीन (हमले के लिए आवश्यक नहीं)
ubuntu-attack: डिफ़ॉल्ट नेमस्पेस में दुष्ट कंटेनर
ubuntu-victim: kube-system नेमस्पेस में शिकार मशीन
mysql: डिफ़ॉल्ट नेमस्पेस में शिकार मशीन
मूल Kubernetes नेटवर्किंग
यदि आप यहां प्रस्तुत किए गए नेटवर्किंग विषयों के बारे में अधिक विवरण चाहते हैं, तो संदर्भों पर जाएं।
ARP
सामान्य रूप से, नोड के अंदर पॉड-टू-पॉड नेटवर्किंग एक ब्रिज के माध्यम से उपलब्ध होती है जो सभी पॉड को जोड़ता है। यह ब्रिज "cbr0" कहलाता है। (कुछ नेटवर्क प्लगइन अपना ब्रिज स्थापित करेंगे।) cbr0 ARP (पता संक्षेपण प्रोटोकॉल) संक्षेपण को भी संभाल सकता है। cbr0 पर एक इनकमिंग पैकेट पहुंचता है, तो यह ARP का उपयोग करके गंतव्य MAC पता को संक्षेपण कर सकता है।
यह तथ्य इस बात का अर्थ है कि, डिफ़ॉल्ट रूप से, एक ही नोड में चल रहे हर पॉड को इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इसका अर्थ है कि इस
पिछली जानकारी में आपको कुछ दिलचस्प दिखाई देता है, सेवा का आईपी 10.96.0.10 है लेकिन सेवा चलाने वाले पॉड का आईपी 172.17.0.2 है।
यदि आप किसी भी पॉड के अंदर DNS पता देखते हैं, तो आपको कुछ इस तरह का कुछ मिलेगा:
यहां, पॉड नहीं जानता कि उस पते तक कैसे पहुंचेगा क्योंकि इस मामले में पॉड रेंज 172.17.0.10/26 है।
इसलिए, पॉड DNS अनुरोध को पते 10.96.0.10 पर भेजेगा जो cbr0 द्वारा 172.17.0.2 में अनुवादित होगा।
इसका मतलब है कि पॉड का DNS अनुरोध हमेशा ब्रिज को जाएगा ताकि सेवा IP को अंत बिंदु IP में अनुवादित किया जा सके, यदि DNS सर्वर पॉड के समान सबनेट में है या नहीं।
इसे जानते हुए और जानते हुए कि ARP हमले संभव हैं, नोड में एक पॉड सबनेट और ब्रिज के बीच के ट्रैफिक को अवरोधित कर सकता है और DNS सर्वर से DNS प्रतिक्रियाएं संशोधित कर सकता है (DNS स्पूफिंग कर सकता है)।
इसके अलावा, यदि DNS सर्वर हमलावर के समान नोड में है, तो हमलावर को क्लस्टर में किसी भी पॉड के सभी DNS अनुरोधों को (DNS सर्वर और ब्रिज के बीच) अवरोधित करने और प्रतिक्रियाएं संशोधित करने की क्षमता होगी।
पॉड में ARP स्पूफिंग समान नोड में
हमारा लक्ष्य है यूबंटू-विक्टिम से माइक्रोसॉफ्ट तक कम से कम संचार चुराना।
Scapy
ARPSpoof
ARPSpoof एक नेटवर्क आक्रमण तकनीक है जिसमें हम ARP (Address Resolution Protocol) पैकेट्स को मोडिफाई करके नेटवर्क में उपस्थित होने वाले उपयोगकर्ताओं को गुमराह करते हैं। इसके द्वारा हम उपयोगकर्ताओं को विशिष्ट IP पते के लिए गलत MAC पता प्रदान कर सकते हैं, जिससे उपयोगकर्ता गलत नेटवर्क गेटवे या अन्य उपयोगकर्ताओं के साथ संचार करने की कोशिश कर सकते हैं। इसका उपयोग करके हम उपयोगकर्ताओं के बीच गोपनीयता और सुरक्षा को खतरे में डाल सकते हैं और उनकी गोपनीयता सूचनाओं को चोरी कर सकते हैं।
इस तकनीक का उपयोग करने के लिए हमें एक आक्रमण यंत्र (जैसे Ettercap, Bettercap) की आवश्यकता होती है, जिसका उपयोग हम नेटवर्क में उपस्थित होने वाले उपयोगकर्ताओं के ARP पैकेट्स को जांचने और मोडिफाई करने के लिए करते हैं। इसके बाद, हम ARP पैकेट्स को उपयोगकर्ताओं के बीच फॉर्वर्ड करते हैं, जिससे उपयोगकर्ता गलत नेटवर्क गेटवे या अन्य उपयोगकर्ताओं के साथ संचार करने की कोशिश करता है।
इस तकनीक का उपयोग करने के लिए हमें नेटवर्क में उपस्थित होने वाले उपयोगकर्ताओं के लिए एक विशिष्ट IP पता और उनके साथ संचार करने के लिए उपयोग होने वाले नेटवर्क गेटवे का MAC पता प्राप्त करने की आवश्यकता होती है। इसके लिए हम नेटवर्क में उपस्थित होने वाले उपयोगकर्ताओं के ARP पैकेट्स को जांचते हैं और उनके लिए उपयोग होने वाले नेटवर्क गेटवे के ARP पैकेट्स को जांचते हैं। इसके बाद, हम उपयोगकर्ताओं के लिए एक विशिष्ट IP पता और उनके साथ संचार करने के लिए उपयोग होने वाले नेटवर्क गेटवे का MAC पता प्राप्त करते हैं। इसके बाद, हम ARP पैकेट्स को उपयोगकर्ताओं के बीच फॉर्वर्ड करते हैं, जिससे उपयोगकर्ता गलत नेटवर्क गेटवे या अन्य उपयोगकर्ताओं के साथ संचार करने की कोशिश करता है।
DNS स्पूफिंग
जैसा कि पहले ही उल्लेख किया गया था, अगर आप DNS सर्वर पॉड के समान नोड में पॉड को कंप्रोमाइज़ करते हैं, तो आप ARPSpoofing के साथ ब्रिज और DNS पॉड के साथ MitM कर सकते हैं और सभी DNS प्रतिक्रियाएं संशोधित कर सकते हैं।
आपके पास एक बहुत अच्छा टूल और ट्यूटोरियल है जिसका उपयोग करके आप इसे टेस्ट कर सकते हैं https://github.com/danielsagi/kube-dnsspoof/
हमारे स्थिति में, हमें टूल को हमलावर पॉड में डाउनलोड करना होगा और एक **hosts
नामक फ़ाइल बनानी होगी ** जिसमें आपको डोमेन को स्पूफ़ करना है, जैसे:
यूबंटू-शिकार मशीन पर हमला करें:
यदि आप अपना डीएनएस स्पूफिंग स्क्रिप्ट बनाने की कोशिश करते हैं, और यदि आप केवल डीएनएस प्रतिक्रिया को संशोधित करते हैं, तो यह काम नहीं करेगा, क्योंकि प्रतिक्रिया में एक स्रोत आईपी होगी, यानी एक खतरनाक पॉड का आईपी पता होगा और वह स्वीकार नहीं किया जाएगा। आपको एक नया डीएनएस पैकेट उत्पन्न करने की आवश्यकता होगी, जिसमें पीड़ित डीएनएस अनुरोध को भेजने वाले डीएनएस का स्रोत आईपी होगा (जो कुछ इस प्रकार होगा 172.16.0.2, 10.96.0.10 नहीं है, यह K8s DNS सेवा आईपी है और यह डीएनएस सर्वर आईपी नहीं है, इसके बारे में अधिक जानकारी इंट्रोडक्शन में है)।
ट्रैफिक को कैप्चर करना
टूल Mizu एक सरल लेकिन शक्तिशाली API ट्रैफिक व्यूअर Kubernetes है, जो आपको माइक्रोसर्विस के बीच सभी API संचार को देखने में सक्षम बनाता है, ताकि आप अपनी डीबग और रिग्रेशन की समस्याओं को खोजने में मदद कर सकें। यह चयनित पॉड में एजेंट्स स्थापित करेगा और उनकी ट्रैफिक जानकारी को इकट्ठा करेगा और आपको एक वेब सर्वर में दिखाएगा। हालांकि, इसके लिए आपको उच्च K8s अनुमतियाँ चाहिए (और यह बहुत छिपाने वाला नहीं है)।
संदर्भ
Last updated