
Auditiert die Exposition des Linux-Kernels gegenüber Privilegieneskalations-Exploits und überprüft Kernel-Härtungssicherheitsmaßnahmen mittels heuristischer Analyse sowie Konfigurations-/sysctl-Prüfungen.
Schneller Download:
wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -O les.sh
Details zur Nutzung und Funktionsweise von LES:
https://blog.z-labs.eu/2019/05/10/les-paper.html
Zusätzliche Ressourcen für LES:
https://github.com/mzet-/les-res
Das LES-Tool dient dazu, Sicherheitsmängel für einen bestimmten Linux-Kernel bzw. eine Linux-basierte Maschine zu erkennen. Es bietet folgende Funktionen:
Das Tool bewertet (mit heuristischen Methoden, die hier ausführlich besprochen werden) die Exposition des gegebenen Linux-Systems gegenüber öffentlich bekannten Linux-Privilegieneskalations-Exploits. Beispiel für die Ausgabe des Tools:
$ ./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
...
Für jeden Exploit wird die Exposition berechnet. Folgende 'Exposure'-Zustände sind möglich:
Höchstwahrscheinlich - Der bewertete Kernel ist höchstwahrscheinlich betroffen und es besteht eine sehr gute Chance, dass der PoC-Exploit ohne größere Änderungen sofort funktioniert.
Wahrscheinlich - Es ist möglich, dass der Exploit funktioniert, aber höchstwahrscheinlich ist eine Anpassung des PoC-Exploits an Ihr Ziel erforderlich.
Weniger wahrscheinlich - Eine zusätzliche manuelle Analyse ist erforderlich, um zu überprüfen, ob der Kernel betroffen ist.
Unwahrscheinlich - Es ist äußerst unwahrscheinlich, dass der Kernel betroffen ist (der Exploit wird in der Ausgabe des Tools nicht angezeigt)
LES kann die meisten der von Ihrem Linux-Kernel bereitgestellten Sicherheitseinstellungen überprüfen. Es überprüft nicht nur die Kernel-Konfigurationen zur Kompilierzeit (CONFIGs), sondern auch die Laufzeiteinstellungen (sysctl), was ein vollständigeres Bild des Sicherheitszustands eines laufenden Kernels liefert. Diese Funktion soll eine moderne Fortsetzung des --kernel-Schalters des Tools checksec.sh von Tobias Klein sein. Beispiel für die Ausgabe des Tools:
$ ./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
...
Exposition der Linux-Box gegenüber öffentlich bekannten Exploits bewerten:
$ ./linux-exploit-suggester.sh
Zustand der Sicherheitsfunktionen auf der Linux-Box anzeigen:
$ ./linux-exploit-suggester.sh --checksec
Exposition des Linux-Kernels gegenüber öffentlich bekannten Exploits basierend auf der bereitgestellten 'uname'-Zeichenfolge (d.h. Ausgabe des Befehls uname -a) bewerten:
$ ./linux-exploit-suggester.sh --uname <uname-string>
Weitere Anwendungsbeispiele finden Sie hier.
Sie wissen hoffentlich jetzt, was LES ist und was es für Sie tun kann. Sehen Sie nun, was Sie für LES tun können:
Tags in LES, z. B. eines Tags: ubuntu=12.04{kernel:3.(2|5).0-(23|29)-generic}, das besagt: Der getaggte Exploit wurde auf Ubuntu 12.04 mit den Kerneln 3.2.0-23-generic, 3.2.0-29-generic, 3.5.0-23-generic und 3.5.0-29-generic erfolgreich getestet;. Mit diesem hinzugefügten Tag hebt LES den dynamischen Rank des Exploits automatisch hervor und erhöht ihn, wenn er auf Ubuntu 12.04 mit einer der aufgeführten Kernel-Versionen ausgeführt wird. Dies hilft Ihnen (und anderen) bei Pentests, kritisch verwundbare Linux-Maschinen schnell zu identifizieren.ext-url-Eintrag zu LES hinzu und ändern Sie die Tags, um die neu hinzugefügten Ziele widerzuspiegeln. Siehe diesen Artikel für ein hervorragendes Beispiel zur Anpassung eines bestimmten PoC-Exploits an verschiedene Kernel-Versionen.FEATURES-Array hinzu (falls noch nicht vorhanden) und veröffentlichen Sie Ihre Analyse unter: https://github.com/mzet-/les-res/blob/master/features/<feature-name>.md.bcoles für seine hervorragenden und häufigen Beiträge zu LES.