
يدقق تعرض نواة لينكس لاستغلالات رفع الامتيازات ويتحقق من إجراءات تعزيز أمان النواة باستخدام التحليل الإرشادي وفحوصات 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-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
...
يتم حساب مدى التعرض لكل استغلال. حالات "التعرض" التالية ممكنة:
عالية جداً (Highly probable) - النواة المقيمة على الأرجح متأثرة وهناك فرصة جيدة جداً أن يعمل استغلال PoC فوراً دون أي تعديلات كبيرة.
محتملة (Probable) - من الممكن أن يعمل الاستغلال لكن على الأرجح ستحتاج تخصيص استغلال PoC ليتناسب مع هدفك.
أقل احتمالاً (Less probable) - هناك حاجة لتحليل يدوي إضافي للتحقق مما إذا كانت النواة متأثرة.
غير محتملة (Unprobable) - من غير المرجح بشدة أن تكون النواة متأثرة (لا يتم عرض الاستغلال في مخرجات الأداة)
يمكن لـ LES فحص معظم إعدادات الأمان المتاحة بواسطة نواة لينكس الخاصة بك. لا يتحقق فقط من تكوينات وقت التجميع للنواة (CONFIGs) بل يتحقق أيضاً من إعدادات وقت التشغيل (sysctl) مما يعطي صورة أكثر اكتمالاً للوضع الأمني للنواة قيد التشغيل. تهدف هذه الوظيفة إلى أن تكون استمرارية حديثة للتبديل --kernel في أداة checksec.sh لـ Tobias Klein. مثال على مخرجات الأداة:
$ ./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-exploit-suggester.sh
إظهار حالة ميزات الأمان على جهاز لينكس:
$ ./linux-exploit-suggester.sh --checksec
تقييم مدى تعرض نواة لينكس لاستغلالات معروفة علناً بناءً على سلسلة 'uname' المقدمة (أي مخرجات أمر uname -a):
$ ./linux-exploit-suggester.sh --uname <uname-string>
لمزيد من أمثلة الاستخدام، انظر هنا.
نأمل أنك الآن تعرف ما هو LES وما يمكنه فعله لك. انظر الآن ما يمكنك فعله لـ LES:
Tags في LES، على سبيل المثال علامة: 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 مع أحد إصدارات النواة المدرجة. سيساعدك هذا (وغيرك) أثناء اختبارات الاختراق على التعرف السريع على أجهزة لينكس المعرضة بشكل خطير.ext-url في LES وقم بتعديل Tags لتعكس الأهداف المضافة حديثاً. انظر هذا المقال للحصول على مثال ممتاز لتكييف استغلال PoC محدد مع إصدارات نواة مختلفة.FEATURES (إذا لم يكن موجوداً بالفعل) وانشر تحليلك على: https://github.com/mzet-/les-res/blob/master/features/<feature-name>.md.bcoles لمساهماته الممتازة والمتكررة في LES.