Abusing Docker Socket for Privilege Escalation
Last updated
Last updated
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
कुछ अवसर होते हैं जब आपके पास डॉकर सॉकेट तक पहुंच होती है और आप इसका उपयोग विशेषाधिकार बढ़ाने के लिए करना चाहते हैं। कुछ क्रियाएँ बहुत संदिग्ध हो सकती हैं और आप उनसे बचना चाह सकते हैं, इसलिए यहाँ विभिन्न फ्लैग्स हैं जो विशेषाधिकार बढ़ाने के लिए उपयोगी हो सकते हैं:
आप एक कंटेनर में फाइल सिस्टम के विभिन्न भागों को रूट के रूप में माउंट कर सकते हैं और उन्हें एक्सेस कर सकते हैं। आप कंटेनर के अंदर विशेषाधिकार बढ़ाने के लिए माउंट का दुरुपयोग भी कर सकते हैं।
-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 में होस्ट फाइल सिस्टम को एक्सेस कर सकते हैं।
माउंट करने के लिए </dev/sda1>
डिवाइस खोजने के लिए होस्ट में fdisk -l
चलाएँ।
-v /tmp:/host
-> यदि किसी कारणवश आप केवल कुछ निर्देशिका को होस्ट से माउंट कर सकते हैं और आपके पास होस्ट के अंदर पहुंच है। इसे माउंट करें और माउंट की गई निर्देशिका में suid के साथ एक /bin/bash
बनाएं ताकि आप इसे होस्ट से निष्पादित कर सकें और रूट तक बढ़ा सकें।
ध्यान दें कि शायद आप /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
को संशोधित करके)।
--privileged
-> इस फ्लैग के साथ आप कंटेनर से सभी अलगाव हटा देते हैं। रूट के रूप में विशेषाधिकार प्राप्त कंटेनरों से भागने की तकनीकों की जांच करें।
--cap-add=<CAPABILITY/ALL> [--security-opt apparmor=unconfined] [--security-opt seccomp=unconfined] [-security-opt label:disable]
-> क्षमताओं का दुरुपयोग करके विशेषाधिकार बढ़ाने के लिए, उस क्षमता को कंटेनर को दें और अन्य सुरक्षा विधियों को अक्षम करें जो शोषण को काम करने से रोक सकती हैं।
इस पृष्ठ पर हमने डॉकर फ्लैग्स का उपयोग करके विशेषाधिकार बढ़ाने के तरीकों पर चर्चा की है, आप पृष्ठ में कर्ल कमांड का उपयोग करके इन तरीकों का दुरुपयोग करने के तरीके पा सकते हैं।
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)