
Audita la exposición del kernel de Linux a exploits de escalada de privilegios y verifica las medidas de seguridad de endurecimiento del kernel mediante análisis heurístico y verificaciones de config/sysctl.
Descarga rápida:
wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -O les.sh
Detalles sobre el uso y funcionamiento interno de LES:
https://blog.z-labs.eu/2019/05/10/les-paper.html
Recursos adicionales para LES:
https://github.com/mzet-/les-res
La herramienta LES está diseñada para ayudar a detectar deficiencias de seguridad en un kernel de Linux/máquina basada en Linux determinada. Proporciona la siguiente funcionalidad:
La herramienta evalúa (mediante métodos heurísticos discutidos en detalle aquí) la exposición del sistema Linux dado a exploits de escalada de privilegios de Linux públicamente conocidos. Ejemplo de salida de la herramienta:
$ ./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
...
Para cada exploit se calcula la exposición. Los siguientes estados de 'Exposición' son posibles:
Altamente probable: el kernel evaluado probablemente está afectado y hay una gran probabilidad de que el exploit PoC funcione sin modificaciones importantes.
Probable: es posible que el exploit funcione, pero lo más probable es que se necesite personalizar el exploit PoC para adaptarlo a su objetivo.
Menos probable: se necesita un análisis manual adicional para verificar si el kernel está afectado.
Improbable: es muy poco probable que el kernel esté afectado (el exploit no se muestra en la salida de la herramienta)
LES puede verificar la mayoría de las configuraciones de seguridad disponibles en su kernel de Linux. No solo verifica las configuraciones de compilación del kernel (CONFIGs), sino también las configuraciones en tiempo de ejecución (sysctl), proporcionando una imagen más completa de la postura de seguridad para un kernel en ejecución. Esta funcionalidad está destinada a ser una continuación moderna del interruptor --kernel de la herramienta checksec.sh de Tobias Klein. Ejemplo de salida de la herramienta:
$ ./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
...
Evaluar la exposición de la máquina Linux a exploits públicamente conocidos:
$ ./linux-exploit-suggester.sh
Mostrar el estado de las características de seguridad en la máquina Linux:
$ ./linux-exploit-suggester.sh --checksec
Evaluar la exposición del kernel de Linux a exploits públicamente conocidos basándose en la cadena 'uname' proporcionada (es decir, la salida del comando uname -a):
$ ./linux-exploit-suggester.sh --uname <uname-string>
Para más ejemplos de uso, consulte aquí.
Esperamos que ahora sepa qué es LES y qué puede hacer por usted. Ahora vea qué puede hacer usted por LES:
Tags en LES, por ejemplo, de una etiqueta: ubuntu=12.04{kernel:3.(2|5).0-(23|29)-generic} que indica: el exploit etiquetado fue verificado para funcionar correctamente en Ubuntu 12.04 con kernels: 3.2.0-23-generic, 3.2.0-29-generic, 3.5.0-23-generic y 3.5.0-29-generic;. Con esta etiqueta agregada, LES resaltará y aumentará automáticamente el Rank dinámico del exploit cuando se ejecute en Ubuntu 12.04 con una de las versiones de kernel listadas. Esto le ayudará (a usted y a otros) durante las pruebas de penetración a identificar rápidamente máquinas Linux críticamente vulnerables.ext-url a LES y modifique Tags para reflejar los nuevos objetivos agregados. Consulte este artículo para un excelente ejemplo de adaptación de un exploit PoC específico a diferentes versiones del kernel.FEATURES (si aún no está) y publique su análisis en: https://github.com/mzet-/les-res/blob/master/features/<feature-name>.md.bcoles por sus excelentes y frecuentes contribuciones a LES.