UTS Namespace

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

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

मूल जानकारी

एक UTS (UNIX Time-Sharing System) नेमस्पेस एक लिनक्स कर्नेल सुविधा है जो दो सिस्टम पहचानकर्ताओं को अलग करने की प्रदान करती है: होस्टनाम और NIS (नेटवर्क सूचना सेवा) डोमेन नाम। यह अलगाव उत्पन्न करता है कि प्रत्येक UTS नेमस्पेस के पास अपना स्वतंत्र होस्टनाम और NIS डोमेन नाम हो, जो विशेष रूप से उपकरणीकरण स्थितियों में उपयुक्त है जहां प्रत्येक कंटेनर एक अलग सिस्टम के रूप में प्रकट होना चाहिए।

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

  1. जब एक नया UTS नेमस्पेस बनाया जाता है, तो यह अपने मूल नेमस्पेस से होस्टनाम और NIS डोमेन नाम की प्रतिलिपि के साथ शुरू होता है। इसका मतलब है कि, निर्माण के समय, नया नेमस्पेस अपने मूल सिद्धांकों को साझा करता है। हालांकि, नेमस्पेस के भीतर होस्टनाम या NIS डोमेन नाम में किए गए किसी भी भविष्यवाणी परिवर्तन अन्य नेमस्पेस पर प्रभाव नहीं डालेगा।

  2. UTS नेमस्पेस के भीतर प्रक्रियाएँ sethostname() और setdomainname() सिस्टम कॉल का उपयोग करके होस्टनाम और NIS डोमेन नाम को बदल सकती हैं। ये परिवर्तन नेमस्पेस के लिए स्थानीय हैं और अन्य नेमस्पेस या मुख्य सिस्टम पर प्रभाव नहीं डालते।

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

लैब:

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

CLI

sudo unshare -u [--mount-proc] /bin/bash

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

docker run -ti --name ubuntu1 -v /usr:/ubuntu1 ubuntu bash

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

ls -l /proc/self/ns/uts
lrwxrwxrwx 1 root root 0 Apr  4 20:49 /proc/self/ns/uts -> 'uts:[4026531838]'

सभी UTS नेमस्पेस खोजें

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

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

nsenter -u TARGET_PID --pid /bin/bash

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

होस्टनाम बदलें

unshare -u /bin/bash
hostname newhostname # Hostname won't be changed inside the host UTS ns

संदर्भ

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

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

Last updated