Docker सॉकेट का दुरुपयोग करके विशेषाधिकार वृद्धि

Reading time: 4 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें

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

माउंट के माध्यम से

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

  • -v /:/host -> कंटेनर में होस्ट फाइल सिस्टम को माउंट करें ताकि आप होस्ट फाइल सिस्टम पढ़ सकें।
  • यदि आप महसूस करना चाहते हैं कि आप होस्ट में हैं लेकिन कंटेनर में हैं, तो आप फ्लैग्स का उपयोग करके अन्य रक्षा तंत्रों को निष्क्रिय कर सकते हैं जैसे:
  • --privileged
  • --cap-add=ALL
  • --security-opt apparmor=unconfined
  • --security-opt seccomp=unconfined
  • -security-opt label:disable
  • --pid=host
  • --userns=host
  • --uts=host
  • --cgroupns=host
  • **--device=/dev/sda1 --cap-add=SYS_ADMIN --security-opt apparmor=unconfined ** -> यह पिछले तरीके के समान है, लेकिन यहाँ हम डिवाइस डिस्क को माउंट कर रहे हैं। फिर, कंटेनर के अंदर mount /dev/sda1 /mnt चलाएँ और आप /mnt में होस्ट फाइल सिस्टम को एक्सेस कर सकते हैं।
  • होस्ट में fdisk -l चलाएँ ताकि </dev/sda1> डिवाइस को माउंट किया जा सके।
  • -v /tmp:/host -> यदि किसी कारणवश आप केवल कुछ निर्देशिका को होस्ट से माउंट कर सकते हैं और आपके पास होस्ट के अंदर पहुंच है। इसे माउंट करें और माउंट की गई निर्देशिका में /bin/bash के साथ suid बनाएं ताकि आप इसे होस्ट से निष्पादित कर सकें और रूट तक बढ़ा सकें

note

ध्यान दें कि शायद आप /tmp फ़ोल्डर को माउंट नहीं कर सकते लेकिन आप एक विभिन्न लिखने योग्य फ़ोल्डर को माउंट कर सकते हैं। आप लिखने योग्य निर्देशिकाएँ खोजने के लिए: find / -writable -type d 2>/dev/null का उपयोग कर सकते हैं।

ध्यान दें कि सभी निर्देशिकाएँ लिनक्स मशीन में suid बिट का समर्थन नहीं करेंगी! यह जांचने के लिए कि कौन सी निर्देशिकाएँ suid बिट का समर्थन करती हैं, mount | grep -v "nosuid" चलाएँ। उदाहरण के लिए आमतौर पर /dev/shm, /run, /proc, /sys/fs/cgroup और /var/lib/lxcfs suid बिट का समर्थन नहीं करते हैं।

यह भी ध्यान दें कि यदि आप /etc या किसी अन्य फ़ोल्डर को कॉन्फ़िगरेशन फ़ाइलों के साथ माउंट कर सकते हैं, तो आप उन्हें रूट के रूप में डॉकर कंटेनर से बदल सकते हैं ताकि आप होस्ट में उनका दुरुपयोग कर सकें और विशेषाधिकार बढ़ा सकें (शायद /etc/shadow को संशोधित करके)।

कंटेनर से बाहर निकलना

कर्ल

इस पृष्ठ पर हमने डॉकर फ्लैग्स का उपयोग करके विशेषाधिकार बढ़ाने के तरीकों पर चर्चा की है, आप पृष्ठ में कर्ल कमांड का उपयोग करके इन तरीकों का दुरुपयोग करने के तरीके पा सकते हैं:

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें