Network Namespace

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

मूल जानकारी

नेटवर्क नेमस्पेस एक लिनक्स कर्नेल सुविधा है जो नेटवर्क स्टैक की अलगाव प्रदान करती है, जिससे प्रत्येक नेटवर्क नेमस्पेस को अपनी स्वतंत्र नेटवर्क कॉन्फ़िगरेशन, इंटरफेस, आईपी पते, रूटिंग टेबलें, और फ़ायरवॉल नियम हो सकते हैं। यह अलगाव विभिन्न स्थितियों में उपयोगी है, जैसे कंटेनरीकरण, जहां प्रत्येक कंटेनर को अपनी नेटवर्क कॉन्फ़िगरेशन होनी चाहिए, अन्य कंटेनरों और होस्ट सिस्टम से अलग।

काम कैसे करता है:

  1. जब एक नया नेटवर्क नेमस्पेस बनाया जाता है, तो यह एक पूरी तरह से अलग नेटवर्क स्टैक के साथ शुरू होता है, कोई नेटवर्क इंटरफेस नहीं सिवाए लूपबैक इंटरफेस (lo) के। इसका मतलब है कि नए नेटवर्क नेमस्पेस में चल रहे प्रक्रियाएँ डिफ़ॉल्ट रूप से अन्य नेमस्पेस या होस्ट सिस्टम की प्रक्रियाओं से संवाद करने में सक्षम नहीं हो सकती।

  2. वर्चुअल नेटवर्क इंटरफेस, जैसे veth पेयर, बनाए जा सकते हैं और नेटवर्क नेमस्पेस के बीच या नेमस्पेस और होस्ट सिस्टम के बीच नेटवर्क कनेक्टिविटी स्थापित करने की अनुमति देते हैं। उदाहरण के लिए, एक veth पेयर का एक अंत कंटेनर के नेटवर्क नेमस्पेस में रखा जा सकता है, और दूसरा अंत होस्ट नेमस्पेस में एक ब्रिज या दूसरे नेटवर्क इंटरफेस से कनेक्ट किया जा सकता है, कंटेनर को नेटवर्क कनेक्टिविटी प्रदान करते हुए।

  3. नेमस्पेस के भीतर नेटवर्क इंटरफेस अपने अपने आईपी पते, रूटिंग टेबलें, और फ़ायरवॉल नियम रख सकते हैं, अन्य नेमस्पेस से अलग। इससे विभिन्न नेटवर्क नेमस्पेस में प्रक्रियाएँ विभिन्न नेटवर्क कॉन्फ़िगरेशन रख सकती हैं और ऐसा लग सकता है कि वे अलग-अलग नेटवर्क सिस्टम पर चल रही हैं।

  4. प्रक्रियाएँ setns() सिस्टम कॉल का उपयोग करके नेमस्पेस के बीच ले जा सकती हैं, या unshare() या clone() सिस्टम कॉल का उपयोग करके CLONE_NEWNET फ़्लैग के साथ नए नेमस्पेस बना सकती हैं। जब कोई प्रक्रिया नए नेमस्पेस में जाती है या एक बनाती है, तो वह उस नेमस्पेस से संबंधित नेटवर्क कॉन्फ़िगरेशन और इंटरफेस का उपयोग करना शुरू करेगी।

लैब:

विभिन्न नेमस्पेस बनाएं

CLI

sudo unshare -n [--mount-proc] /bin/bash
# Run ifconfig or ip -a

यदि आप --mount-proc पैरामीटर का उपयोग करते हैं तो /proc फ़ाइल सिस्टम का एक नया इंस्टेंस माउंट करके, आप सुनिश्चित करते हैं कि नया माउंट नेमस्पेस के पास उस नेमस्पेस के लिए विशिष्ट प्रक्रिया सूचना का सटीक और अलग दृश्य है।

docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash
# Run ifconfig or ip -a

जांचें कि आपकी प्रक्रिया किस नेमस्पेस में है

ls -l /proc/self/ns/net
lrwxrwxrwx 1 root root 0 Apr  4 20:30 /proc/self/ns/net -> 'net:[4026531840]'

सभी नेटवर्क नेमस्पेस खोजें

sudo find /proc -maxdepth 3 -type l -name net -exec readlink {} \; 2>/dev/null | sort -u | grep "net:"
# Find the processes with an specific namespace
sudo find /proc -maxdepth 3 -type l -name net -exec ls -l  {} \; 2>/dev/null | grep <ns-number>

नेटवर्क नेमस्पेस के अंदर जाएं

nsenter -n TARGET_PID --pid /bin/bash

आप केवल रूट यदि आप अन्य प्रक्रिया नेमस्पेस में प्रवेश कर सकते हैं। और आप उसके बिना अन्य नेमस्पेस में प्रवेश नहीं कर सकते हैं जिसका संकेतक इसे पॉइंट कर रहा हो (जैसे /proc/self/ns/net)।

Last updated