
कर्नेल विशेषाधिकार वृद्धि गणना और शोषण ढांचा
kernelpop एक फ्रेमवर्क है जो निम्नलिखित ऑपरेटिंग सिस्टम पर स्वचालित कर्नेल भेद्यता गणना और शोषण करने के लिए डिज़ाइन किया गया है:
Linux
Mac
इसे python संस्करण-अज्ञेय होने के लिए डिज़ाइन किया गया है, जिसका अर्थ है कि यह python2 और python3 दोनों के साथ काम करना चाहिए।

$ git clone https://github.com/spencerdodd/kernelpop
$ cd kernelpop
$ python kernelpop.py || python3 kernelpop.py
$ git clone https://github.com/spencerdodd/kernelpop
$ cd kernelpop
$ ./create_executable.sh
$ ./kernelpop
pyinstaller स्थापित करें (चरण बिल्ड सिस्टम के अनुसार भिन्न होते हैं)$ pyinstaller kernelpop.py --onefile$ cp dist/kernelpop .दोनों बाइनरी बिल्ड चरणों से प्रोजेक्ट रूट में एक बाइनरी kernelpop बनानी चाहिए।
user@debian:~/Desktop/kernelpop$ python3 kernelpop.py
##########################
# kernelpop में आपका स्वागत है #
# #
# चलो कुछ कर्नेल पॉप करें #
##########################
[*] अंतर्निहित OS (linuxdebian7) से डिस्ट्रो संस्करण और रिलीज़ प्राप्त कर रहा है
[*] 'uname -a' से कर्नेल संस्करण प्राप्त कर रहा है
[+] कर्नेल (Linux debian 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux) इस प्रकार पहचाना गया:
[base]
type: linux
distro: linuxdebian7
version: 3.2.0-4
architecture: i686
[specific]
type: linux
distro: linuxdebian7
version: 3.2.41-2
architecture: i686
[*] कर्नेल का ज्ञात एक्सप्लॉइट से मिलान कर रहा है
[+] 11 संभावित एक्सप्लॉइट खोजे गए!
[[ डिस्ट्रो कर्नेल मिलान एक्सप्लॉइट उपलब्ध ]]
CVE20165195_32 Dirty COW रेस कंडीशन रूट प्रिव एस्क 32 बिट के लिए
[[ डिस्ट्रो कर्नेल संस्करण संवेदनशील ]]
CVE20144699 Linux 3.15.4 से पहले में शोषण योग्य रेस कंडीशन
CVE20143153 `futex_requeue` भेद्यता 3.14.6 से पहले प्रिव एस्क की अनुमति देती है
CVE20162384 `सnd_usbmidi_create` में डबल फ्री भेद्यता (भौतिक निकटता आवश्यक है)
CVE20140196 `n_tty_write` भेद्यता 3.14.4 से पहले रूट तक प्रिव एस्क की अनुमति देती है
CVE20132094_semtex perf_swevent_init स्थानीय रूट शोषण (32 बिट)
CVE20176074 `dccp_rcv_state_process` net/dccp/input.c में स्ट्रक्ट्स को गलत तरीके से संभालता है और स्थानीय रूट ले जा सकता है
CVE20132094_32 perf_swevent_init स्थानीय रूट शोषण (32 बिट)
[[ आधार Linux कर्नेल संवेदनशील ]]
CVE20144014 `chmod` प्रतिबंध बाईपास जो 3.14.8 से पहले उपयोगकर्ताओं को रूट प्राप्त करने की अनुमति देता है
CVE20177308 `packet_set_ring` net/packet/af_packet.c में विशेषाधिकार प्राप्त करने के लिए क्राफ्टेड सिस्टम कॉल के माध्यम से प्राप्त किया जा सकता है।
CVE20171000112 ip_ufo_append_data() मेमोरी करप्शन दोष का उपयोग करके रूट विशेषाधिकार प्राप्त किए जा सकते हैं।
आउटपुट में, कुछ श्रेणियां हैं। इसका अर्थ यह है:
[[ डिस्ट्रो कर्नेल मिलान एक्सप्लॉइट उपलब्ध ]]
[[ डिस्ट्रो कर्नेल संस्करण संवेदनशील ]]
[[ आधार Linux कर्नेल संवेदनशील ]]
python2 या python3
pyinstaller (यदि आप एक बाइनरी बनाना चाहते हैं)
रन मोड:
(डिफ़ॉल्ट) python3 kernelpop.py
(एक्सप्लॉइट-मोड) python3 kernelpop.py -e {एक्सप्लॉइट नाम}
(डंप-स्रोत) python3 kernelpop.py -e {एक्सप्लॉइट नाम} -d
(uname-मोड) python3 kernelpop.py -u {uname -a आउटपुट}
(इंटरैक्टिव-मोड) python3 kernelpop.py -i # LEGACY विकल्प (uname-मोड के समान)
अन्य:
(प्लेग्राउंड पथ) -p {नया पथ}
(json आउटपुट फ़ाइल) --digest json
डिफ़ॉल्ट मोड होस्ट कर्नेल के बारे में जानकारी संसाधित करता है और इसकी तुलना प्रोग्राम में उपलब्ध ज्ञात कर्नेल एक्सप्लॉइट से करता है। फिर यह संभावित रूप से उपयोगी भेद्यताओं और संलग्न एक्सप्लॉइट की एक सूची आउटपुट करता है।
-e {एक्सप्लॉइट नाम}
एक्सप्लॉइट मोड प्रोग्राम के अंदर stdio इंटरैक्शन के साथ एक्सप्लॉइट स्रोत कोड को गतिशील रूप से संकलित और चलाता है। यह छोटी-छोटी रुकी हुई कोशिशों से इंटरप्ट भी पकड़ सकता है। एक्सप्लॉइट के उस नाम का उपयोग करें जो डिफ़ॉल्ट मोड में प्रारंभिक kernelpop गणना रन में आता है।
डंप-स्रोत (विकल्प) -d
एक्सप्लॉइट मोड के लिए एक संशोधक है। यह दिए गए एक्सप्लॉइट के लिए स्रोत-फ़ाइलों को उनके संबंधित फ़ाइलों में PLAYGROUND_PATH (डिफ़ॉल्ट /tmp) में डंप करता है। यह एक बॉक्स पर एक्सप्लॉइट स्रोत को संशोधित करने या एक्सप्लॉइट के साथ काम करने के लिए उपयोगी है जिसमें मैन्युअल इंटरैक्शन या मानों के हार्ड-कोडिंग की आवश्यकता होती है। यह विशेष रूप से बाइनरी से चलते समय उपयोगी है, क्योंकि आपके पास प्रोजेक्ट स्रोत कोड (अर्थात एक्सप्लॉइट स्रोत) तक पहुंच नहीं होगी।-u {uname -a आउटपुट}
यह विकल्प आपको प्रोग्राम में एक uname -a कमांड का आउटपुट इनलाइन पास करने की अनुमति देता है, जो इसे स्वचालित स्क्रिप्ट में एकीकरण या किसी अन्य संभावित कारण के लिए उपयोगी बनाता है। इंटरैक्टिव मोड का प्रतिस्थापन।
uname आउटपुट द्वारा आवश्यक]-i {uname -a आउटपुट}
इंटरैक्टिव मोड आपको केवल uname -a कमांड के आउटपुट के साथ गणना करने की अनुमति देता है, जो इसे एक होस्ट-साइड केवल गणना उपकरण के रूप में उपयोगी बनाता है। यह kernelpop को -i फ्लैग के साथ शुरू करके और फिर अनुरोध करने पर uname -a का आउटपुट पास करके चलाया जाता है। यह एक विरासत सुविधा है और uname मोड द्वारा प्रतिस्थापित किया गया है, लेकिन समर्थित रहता है क्योंकि -u Mac गणना का समर्थन नहीं करता है।
PLAYGROUND पथ-p {नया PLAYGROUND_PATH निर्देशिका}
-p विकल्प ग्लोबल वेरिएबल PLAYGROUND_PATH का मान सेट करता है। यह वह स्थान है जहां सभी एक्सप्लॉइट स्रोत फ़ाइलें लिखी जाती हैं, और एक्सप्लॉइट संकलित किए जाते हैं। यह डिफ़ॉल्ट रूप से /tmp पर सेट होता है। हालांकि, आप इसे इस संशोधक के साथ किसी भी निर्देशिका पर सेट कर सकते हैं यदि आपके पास /tmp में लिखने की पहुंच नहीं है।
--digest json
यह विकल्प आपको एक kernelpop रन के परिणामों को बाद में प्रसंस्करण के लिए एक सुपाच्य json फ़ाइल में डंप करने की अनुमति देता है। अब तक, मैंने केवल json डंप को लागू किया है, लेकिन यदि अनुरोध किया जाता है तो मैं एक XML संस्करण पर काम करूंगा।
और एक्सप्लॉइट जोड़ें! (src/to_add अगर कोई इनमें से कुछ पर काम करना चाहता है, तो मेहमान बनिए!)
संवेदनशील विंडो तुलनाओं में पैच स्तर शामिल करें
गलत पार्सिंग या विरोधी सेटिंग्स के मामले में पता लगाई गई सेटिंग्स को ओवरराइड करने का तरीका जोड़ें
गूगल: CVE-XXXX-XXXX "ubuntu"
कैनोनिकल लिंक पर क्लिक करें (https://people.canonical.com/~ubuntu-security/cve/2016/CVE-XXXX-XXXX.html)
usn.ubuntu.com पर सभी लिंक किए गए परामर्शों पर क्लिक करें और जानकारी पार्स करें
प्रति संस्करण भेद्यता विंडो भरने के लिए पैच संस्करण प्राप्त करें
गूगल: CVE-XXXX-XXXX "debian"
security-tracker.debian.org लिंक (https://security-tracker.debian.org/tracker/CVE-XXXX-XXXX)
गूगल: CVE-XXXX-XXXX "mitre"
CVE-2017-1000379
CVE-2017-1000373
CVE-2017-1000372
CVE-2017-1000371
CVE-2017-1000370
CVE-2017-1000367
CVE-2017-1000112
CVE-2017-7308
CVE-2017-6074
CVE-2017-5123
CVE-2016-5195
CVE-2016-2384
CVE-2016-0728
https://github.com/SecWiki/linux-kernel-exploits
http://exploit-db.com/
https://github.com/lucyoa/kernel-exploits
https://github.com/SecWiki/windows-kernel-exploits
Debian
CVE-2015-1328
CVE-2014-4699
CVE-2014-4014
CVE-2014-3153
CVE-2014-0196
CVE-2014-0038
CVE-2013-2094
CVE-2010-4347
CVE-2010-2959
CVE-2009-1185