User Namespace
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)
एक उपयोगकर्ता नामस्थान एक Linux कर्नेल सुविधा है जो उपयोगकर्ता और समूह आईडी मैपिंग का पृथक्करण प्रदान करती है, जिससे प्रत्येक उपयोगकर्ता नामस्थान को अपनी अपनी उपयोगकर्ता और समूह आईडी का सेट रखने की अनुमति मिलती है। यह पृथक्करण विभिन्न उपयोगकर्ता नामस्थानों में चलने वाली प्रक्रियाओं को विभिन्न विशेषाधिकार और स्वामित्व रखने की अनुमति देता है, भले ही वे संख्यात्मक रूप से समान उपयोगकर्ता और समूह आईडी साझा करते हों।
उपयोगकर्ता नामस्थान विशेष रूप से कंटेनरीकरण में उपयोगी होते हैं, जहां प्रत्येक कंटेनर को अपनी स्वतंत्र उपयोगकर्ता और समूह आईडी का सेट होना चाहिए, जिससे कंटेनरों और होस्ट सिस्टम के बीच बेहतर सुरक्षा और पृथक्करण की अनुमति मिलती है।
जब एक नया उपयोगकर्ता नामस्थान बनाया जाता है, तो यह उपयोगकर्ता और समूह आईडी मैपिंग का एक खाली सेट के साथ शुरू होता है। इसका मतलब है कि नए उपयोगकर्ता नामस्थान में चलने वाली कोई भी प्रक्रिया शुरुआत में नामस्थान के बाहर कोई विशेषाधिकार नहीं रखेगी।
नए नामस्थान में उपयोगकर्ता और समूह आईडी और माता-पिता (या होस्ट) नामस्थान में आईडी मैपिंग स्थापित की जा सकती है। यह नए नामस्थान में प्रक्रियाओं को माता-पिता नामस्थान में उपयोगकर्ता और समूह आईडी के अनुसार विशेषाधिकार और स्वामित्व रखने की अनुमति देता है। हालाँकि, आईडी मैपिंग को विशिष्ट रेंज और आईडी के उपसमुच्चयों तक सीमित किया जा सकता है, जिससे नए नामस्थान में प्रक्रियाओं को दिए गए विशेषाधिकार पर बारीक नियंत्रण की अनुमति मिलती है।
एक उपयोगकर्ता नामस्थान के भीतर, प्रक्रियाओं के पास नामस्थान के भीतर संचालन के लिए पूर्ण रूट विशेषाधिकार (UID 0) हो सकते हैं, जबकि नामस्थान के बाहर सीमित विशेषाधिकार भी हो सकते हैं। यह कंटेनरों को अपने नामस्थान के भीतर रूट-जैसी क्षमताओं के साथ चलाने की अनुमति देता है बिना होस्ट सिस्टम पर पूर्ण रूट विशेषाधिकार के।
प्रक्रियाएँ setns()
सिस्टम कॉल का उपयोग करके नामस्थानों के बीच स्थानांतरित हो सकती हैं या unshare()
या clone()
सिस्टम कॉल का उपयोग करके नए नामस्थान बना सकती हैं जिसमें CLONE_NEWUSER
ध्वज होता है। जब कोई प्रक्रिया नए नामस्थान में जाती है या एक बनाती है, तो यह उस नामस्थान से संबंधित उपयोगकर्ता और समूह आईडी मैपिंग का उपयोग करना शुरू कर देगी।
By mounting a new instance of the /proc
filesystem if you use the param --mount-proc
, you ensure that the new mount namespace has an सटीक और अलग दृष्टिकोण उस namespace के लिए विशिष्ट प्रक्रिया जानकारी.
Docker डेमन को --userns-remap=default
के साथ शुरू करने की आवश्यकता है (उबंटू 14.04 में, इसे /etc/default/docker
को संशोधित करके और फिर sudo service docker restart
चलाकर किया जा सकता है)
यह संभव है कि आप डॉकर कंटेनर से उपयोगकर्ता मानचित्र की जांच कर सकें:
या होस्ट से:
आप केवल दूसरे प्रक्रिया नामस्थान में प्रवेश कर सकते हैं यदि आप रूट हैं। और आप दूसरे नामस्थान में प्रवेश नहीं कर सकते बिना एक वर्णनकर्ता जो इसे इंगित करता है (जैसे /proc/self/ns/user
)।
उपयोगकर्ता नामस्थान के मामले में, जब एक नया उपयोगकर्ता नामस्थान बनाया जाता है, तो उस नामस्थान में प्रवेश करने वाली प्रक्रिया को उस नामस्थान के भीतर पूर्ण क्षमताओं का एक सेट दिया जाता है। ये क्षमताएँ प्रक्रिया को विशेषाधिकार प्राप्त संचालन करने की अनुमति देती हैं जैसे कि फाइल सिस्टम को माउंट करना, उपकरण बनाना, या फ़ाइलों के स्वामित्व को बदलना, लेकिन केवल इसके उपयोगकर्ता नामस्थान के संदर्भ में।
उदाहरण के लिए, जब आपके पास एक उपयोगकर्ता नामस्थान के भीतर CAP_SYS_ADMIN
क्षमता होती है, तो आप ऐसे संचालन कर सकते हैं जो आमतौर पर इस क्षमता की आवश्यकता होती है, जैसे कि फाइल सिस्टम को माउंट करना, लेकिन केवल आपके उपयोगकर्ता नामस्थान के संदर्भ में। इस क्षमता के साथ किए गए कोई भी संचालन होस्ट सिस्टम या अन्य नामस्थानों को प्रभावित नहीं करेंगे।
इसलिए, भले ही एक नए उपयोगकर्ता नामस्थान के भीतर एक नई प्रक्रिया प्राप्त करना आपको सभी क्षमताएँ वापस देगा (CapEff: 000001ffffffffff), आप वास्तव में केवल नामस्थान से संबंधित क्षमताओं का उपयोग कर सकते हैं (उदाहरण के लिए माउंट) लेकिन हर एक का नहीं। इसलिए, यह अपने आप में एक Docker कंटेनर से भागने के लिए पर्याप्त नहीं है।
hacking tricks by submitting PRs to the** HackTricks and HackTricks Cloud github repos.
सीखें और AWS हैकिंग का अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) सीखें और GCP हैकिंग का अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)