AWS - Nitro Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
AWS Nitro एक नवोन्मेषी प्रौद्योगिकियों का समूह है जो AWS EC2 इंस्टेंस के लिए आधारभूत प्लेटफ़ॉर्म बनाता है। इसे सुरक्षा, प्रदर्शन और विश्वसनीयता को बढ़ाने के लिए Amazon द्वारा पेश किया गया था, Nitro कस्टम हार्डवेयर घटकों और एक हल्के हाइपरवाइज़र का लाभ उठाता है। यह पारंपरिक वर्चुअलाइजेशन कार्यक्षमता के अधिकांश हिस्से को समर्पित हार्डवेयर और सॉफ़्टवेयर में एब्स्ट्रैक्ट करता है, हमले की सतह को कम करता है और संसाधन दक्षता में सुधार करता है। वर्चुअलाइजेशन कार्यों को ऑफ़लोड करके, Nitro EC2 इंस्टेंस को करीब-बेयर-मेटल प्रदर्शन प्रदान करने की अनुमति देता है, जो संसाधन-गहन अनुप्रयोगों के लिए विशेष रूप से फायदेमंद है। इसके अतिरिक्त, Nitro सुरक्षा चिप विशेष रूप से हार्डवेयर और फर्मवेयर की सुरक्षा सुनिश्चित करती है, जिससे इसकी मजबूत आर्किटेक्चर को और मजबूत किया जाता है।
AWS Nitro Enclaves एक सुरक्षित, अलग कंप्यूट वातावरण प्रदान करता है जो Amazon EC2 इंस्टेंस के भीतर है, जिसे अत्यधिक संवेदनशील डेटा को संसाधित करने के लिए विशेष रूप से डिज़ाइन किया गया है। AWS Nitro सिस्टम का लाभ उठाते हुए, ये एनक्लेव मजबूत अलगाव और सुरक्षा सुनिश्चित करते हैं, जो गोपनीय जानकारी जैसे PII या वित्तीय रिकॉर्ड को संभालने के लिए आदर्श हैं। इनमें एक न्यूनतम वातावरण होता है, जो डेटा के उजागर होने के जोखिम को काफी कम करता है। इसके अतिरिक्त, Nitro Enclaves क्रिप्टोग्राफिक अटेस्टेशन का समर्थन करते हैं, जिससे उपयोगकर्ता यह सत्यापित कर सकते हैं कि केवल अधिकृत कोड चल रहा है, जो सख्त अनुपालन और डेटा सुरक्षा मानकों को बनाए रखने के लिए महत्वपूर्ण है।
Nitro Enclave छवियाँ EC2 इंस्टेंस के अंदर से चलती हैं और आप AWS वेब कंसोल से नहीं देख सकते कि क्या कोई EC2 इंस्टेंस Nitro Enclave में छवियाँ चला रहा है या नहीं।
सभी निर्देशों का पालन करें दस्तावेज़ से। हालाँकि, ये सबसे महत्वपूर्ण हैं:
Nitro Enclave में आप जो इमेज़ चला सकते हैं, वे डॉकर इमेज़ पर आधारित हैं, इसलिए आप अपने Nitro Enclave इमेज़ को डॉकर इमेज़ से बना सकते हैं जैसे:
जैसा कि आप देख सकते हैं, Nitro Enclave छवियाँ eif
(Enclave Image File) एक्सटेंशन का उपयोग करती हैं।
आउटपुट इस तरह दिखेगा:
जैसा कि दस्तावेज़ में बताया गया है, एक एन्क्लेव इमेज चलाने के लिए आपको इसे eif
फ़ाइल के आकार का कम से कम 4 गुना मेमोरी आवंटित करनी होगी। इसे फ़ाइल में डिफ़ॉल्ट संसाधनों को कॉन्फ़िगर करना संभव है।
हमेशा याद रखें कि आपको माता EC2 इंस्टेंस के लिए भी कुछ संसाधन आरक्षित करने की आवश्यकता है!
एक इमेज को देने के लिए संसाधनों को जानने के बाद और यहां तक कि कॉन्फ़िगरेशन फ़ाइल को संशोधित करने के बाद, एक एन्क्लेव इमेज चलाना संभव है:
यदि आप एक EC2 होस्ट को समझौता करते हैं, तो चल रहे एनक्लेव छवियों की सूची प्राप्त करना संभव है:
यह चल रहे एन्क्लेव इमेज के अंदर एक शेल प्राप्त करना संभव नहीं है क्योंकि यही एन्क्लेव का मुख्य उद्देश्य है, हालाँकि, यदि आपने पैरामीटर --debug-mode
का उपयोग किया, तो आप इसे stdout प्राप्त कर सकते हैं:
यदि एक हमलावर एक EC2 उदाहरण को समझौता करता है, तो डिफ़ॉल्ट रूप से वह उनके अंदर एक शेल प्राप्त नहीं कर पाएगा, लेकिन वह उन्हें terminate करने में सक्षम होगा:
enclave चलाने वाली छवि के साथ संवाद करने का एकमात्र तरीका vsocks का उपयोग करना है।
Virtual Socket (vsock) लिनक्स में एक सॉकेट परिवार है जिसे विशेष रूप से वर्चुअल मशीनों (VMs) और उनके hypervisors के बीच या VMs के बीच संवाद को सुविधाजनक बनाने के लिए डिज़ाइन किया गया है। Vsock कुशल, द्वि-दिशात्मक संचार को सक्षम बनाता है बिना होस्ट के नेटवर्किंग स्टैक पर निर्भर किए। यह VMs को नेटवर्क कॉन्फ़िगरेशन के बिना संवाद करने की अनुमति देता है, 32-बिट Context ID (CID) और पोर्ट नंबरों का उपयोग करके कनेक्शन की पहचान और प्रबंधन करने के लिए। vsock API स्ट्रीम और डेटाग्राम सॉकेट प्रकारों का समर्थन करता है, जो TCP और UDP के समान है, वर्चुअल वातावरण में उपयोगकर्ता-स्तरीय अनुप्रयोगों के लिए एक बहुपरकारी उपकरण प्रदान करता है।
इसलिए, एक vsock पता इस तरह दिखता है: <CID>:<Port>
CIDs खोजने के लिए जो enclave चलाने वाली छवियों के लिए हैं, आप बस निम्नलिखित cmd निष्पादित कर सकते हैं और EnclaveCID
प्राप्त कर सकते हैं:
ध्यान दें कि होस्ट से यह जानने का कोई तरीका नहीं है कि कोई CID किसी पोर्ट को उजागर कर रहा है! जब तक कि कुछ vsock पोर्ट स्कैनर जैसे https://github.com/carlospolop/Vsock-scanner का उपयोग न किया जाए।
यहां कुछ उदाहरण दिए गए हैं: