
लिनक्स कर्नेल को विशेषाधिकार वृद्धि शोषण के प्रति जोखिम का ऑडिट करता है और अनुमानात्मक विश्लेषण तथा config/sysctl जांचों का उपयोग करके कर्नेल सख्तीकरण सुरक्षा उपायों को सत्यापित करता है।
त्वरित डाउनलोड:
wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -O les.sh
LES के उपयोग और आंतरिक कार्यप्रणाली के बारे में विवरण:
https://blog.z-labs.eu/2019/05/10/les-paper.html
LES के लिए अतिरिक्त संसाधन:
https://github.com/mzet-/les-res
LES उपकरण किसी दिए गए Linux कर्नेल/Linux-आधारित मशीन के लिए सुरक्षा कमियों का पता लगाने में सहायता करने के लिए डिज़ाइन किया गया है। यह निम्नलिखित कार्यक्षमता प्रदान करता है:
उपकरण (यहाँ विस्तार से चर्चा की गई ह्यूरिस्टिक विधियों का उपयोग करके) दिए गए Linux सिस्टम के सार्वजनिक रूप से ज्ञात Linux विशेषाधिकार वृद्धि शोषणों के प्रति जोखिम का आकलन करता है। उपकरण आउटपुट का उदाहरण:
$ ./linux-exploit-suggester.sh
...
[+] [CVE-2017-16995] eBPF_verifier
Details: https://ricklarabee.blogspot.com/2018/07/ebpf-and-analysis-of-get-rekt-linux.html
Exposure: highly probable
Tags: debian=9.0{kernel:4.9.0-3-amd64},fedora=25|26|27,[ ubuntu=14.04 ]{kernel:4.4.0-89-generic},ubuntu=(16.04|17.04){kernel:4.(8|10).0-(19|28|45)-generic}
Download URL: https://www.exploit-db.com/download/45010
Comments: CONFIG_BPF_SYSCALL needs to be set && kernel.unprivileged_bpf_disabled != 1
[+] [CVE-2017-1000112] NETIF_F_UFO
Details: http://www.openwall.com/lists/oss-security/2017/08/13/1
Exposure: probable
Tags: [ ubuntu=14.04{kernel:4.4.0-*} ],ubuntu=16.04{kernel:4.8.0-*}
Download URL: https://raw.githubusercontent.com/xairy/kernel-exploits/master/CVE-2017-1000112/poc.c
ext-url: https://raw.githubusercontent.com/bcoles/kernel-exploits/cve-2017-1000112/CVE-2017-1000112/poc.c
Comments: CAP_NET_ADMIN cap or CONFIG_USER_NS=y needed. SMEP/KASLR bypass included. Modified version at 'ext-url' adds support for additional distros/kernels
[+] [CVE-2016-8655] chocobo_root
Details: http://www.openwall.com/lists/oss-security/2016/12/06/1
Exposure: probable
Tags: [ ubuntu=(14.04|16.04){kernel:4.4.0-(21|22|24|28|31|34|36|38|42|43|45|47|51)-generic} ]
Download URL: https://www.exploit-db.com/download/40871
Comments: CAP_NET_RAW capability is needed OR CONFIG_USER_NS=y needs to be enabled
...
प्रत्येक शोषण के लिए, जोखिम की गणना की जाती है। निम्नलिखित 'Exposure' स्थितियाँ संभव हैं:
अत्यधिक संभावित - आकलित कर्नेल सबसे अधिक संभावित रूप से प्रभावित है और इस बात की बहुत अच्छी संभावना है कि PoC शोषण बिना किसी बड़े संशोधन के तुरंत काम करेगा।
संभावित - यह संभव है कि शोषण काम करेगा लेकिन संभावना है कि आपके लक्ष्य के अनुरूप PoC शोषण का अनुकूलन आवश्यक होगा।
कम संभावित - यह सत्यापित करने के लिए अतिरिक्त मैनुअल विश्लेषण की आवश्यकता है कि कर्नेल प्रभावित है या नहीं।
असंभावित - अत्यधिक असंभावित कि कर्नेल प्रभावित है (शोषण उपकरण के आउटपुट में प्रदर्शित नहीं होता है)
LES आपके Linux कर्नेल द्वारा उपलब्ध अधिकांश सुरक्षा सेटिंग्स की जांच कर सकता है। यह न केवल कर्नेल कम्पाइल-टाइम कॉन्फ़िगरेशन (CONFIGs) को सत्यापित करता है बल्कि रन-टाइम सेटिंग्स (sysctl) को भी सत्यापित करता है, जो चल रहे कर्नेल के लिए सुरक्षा मुद्रा की अधिक संपूर्ण तस्वीर प्रदान करता है। यह कार्यक्षमता Tobias Klein के checksec.sh उपकरण के --kernel स्विच का आधुनिक निरंतरता होने का इरादा रखती है। उपकरण आउटपुट का उदाहरण:
$ ./linux-exploit-suggester.sh --checksec
Mainline kernel protection mechanisms:
[ Disabled ] GCC stack protector support (CONFIG_HAVE_STACKPROTECTOR)
https://github.com/mzet-/les-res/blob/master/features/stackprotector-regular.md
[ Disabled ] GCC stack protector STRONG support (CONFIG_STACKPROTECTOR_STRONG)
https://github.com/mzet-/les-res/blob/master/features/stackprotector-strong.md
[ Enabled ] Low address space to protect from user allocation (CONFIG_DEFAULT_MMAP_MIN_ADDR)
https://github.com/mzet-/les-res/blob/master/features/mmap_min_addr.md
[ Disabled ] Restrict unprivileged access to kernel syslog (CONFIG_SECURITY_DMESG_RESTRICT)
https://github.com/mzet-/les-res/blob/master/features/dmesg_restrict.md
[ Enabled ] Randomize the address of the kernel image (KASLR) (CONFIG_RANDOMIZE_BASE)
https://github.com/mzet-/les-res/blob/master/features/kaslr.md
[ Disabled ] Hardened user copy support (CONFIG_HARDENED_USERCOPY)
https://github.com/mzet-/les-res/blob/master/features/hardened_usercopy.md
...
Linux बॉक्स के सार्वजनिक रूप से ज्ञात शोषणों के प्रति जोखिम का आकलन करें:
$ ./linux-exploit-suggester.sh
Linux बॉक्स पर सुरक्षा सुविधाओं की स्थिति दिखाएं:
$ ./linux-exploit-suggester.sh --checksec
प्रदान किए गए 'uname' स्ट्रिंग (यानी uname -a कमांड के आउटपुट) के आधार पर Linux कर्नेल के सार्वजनिक रूप से ज्ञात शोषणों के प्रति जोखिम का आकलन करें:
$ ./linux-exploit-suggester.sh --uname <uname-string>
अधिक उपयोग उदाहरणों के लिए, यहाँ देखें।
उम्मीद है कि अब आप जानते हैं कि LES क्या है और यह आपके लिए क्या कर सकता है। अब देखें कि आप LES के लिए क्या कर सकते हैं:
Tags के रूप में दस्तावेज़ित करें, उदाहरण के लिए एक टैग: ubuntu=12.04{kernel:3.(2|5).0-(23|29)-generic} जो बताता है: टैग किया गया शोषण Ubuntu 12.04 पर कर्नेल: 3.2.0-23-generic, 3.2.0-29-generic, 3.5.0-23-generic और 3.5.0-29-generic के साथ सही ढंग से काम करने के लिए सत्यापित किया गया था; इस टैग को जोड़ने से LES स्वचालित रूप से उस शोषण के गतिशील Rank को हाइलाइट और बढ़ा देगा जब Ubuntu 12.04 पर सूचीबद्ध कर्नेल संस्करणों में से किसी एक के साथ चलाया जाता है। यह पेंटेस्ट के दौरान आपको (और दूसरों को) गंभीर रूप से कमजोर Linux मशीनों की तेजी से पहचान करने में मदद करेगा।ext-url प्रविष्टि के रूप में जोड़ें और नए जोड़े गए लक्ष्यों को दर्शाने के लिए Tags को संशोधित करें। किसी विशिष्ट PoC शोषण को विभिन्न कर्नेल संस्करणों में अनुकूलित करने के उत्कृष्ट उदाहरण के लिए यह लेख देखें।FEATURES सरणी में जोड़ें (यदि पहले से नहीं है) और अपना विश्लेषण यहाँ प्रकाशित करें: https://github.com/mzet-/les-res/blob/master/features/<feature-name>.md।LES में उनके उत्कृष्ट और बार-बार योगदान के लिए bcoles को धन्यवाद।