The-Z-Labs/linux-exploit-suggester

GitHub: The-Z-Labs/linux-exploit-suggester

基于 Bash 的 Linux 内核提权漏洞智能推荐与安全加固检测工具,通过启发式算法评估系统暴露程度并审计内核防护机制。

Stars: 6405 | Forks: 1160

## LES:Linux 提权审计工具 快速下载: ``` 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 系统在公开已知漏洞下的暴露程度 该工具评估(使用[此处](https://blog.z-labs.eu/2019/05/10/les-paper.html)详细讨论的启发式方法)给定 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](http://www.trapkit.de/tools/checksec.html) 工具中 `--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 ``` 更多使用示例,请参见[此处](https://mzet-.github.io/2019/05/10/les-paper.html)。 ## 参与贡献 您现在应该已经了解了 LES 是什么以及它能为您做什么。现在看看您能为 LES 做些什么: - 向其中添加新发布的 Linux 提权漏洞。 - 在具有多个内核版本的不同 Linux 发行版上测试现有漏洞,然后以 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;*。添加此标签后,当在搭载所列内核版本之一的 Ubuntu 12.04 上运行时,LES 将自动高亮显示并提升该漏洞的动态 `Rank`(排名)。这将帮助您(及其他人)在渗透测试期间快速识别出严重易受攻击的 Linux 机器。 - 公开的漏洞利用程序通常仅为了 PoC 目的而编写,且仅针对一个(或几个)特定的 Linux 发行版和/或内核版本。选择您选定的漏洞源码并进行自定义,使其能在不同的内核版本上运行。然后将您自定义的漏洞利用版本作为 `ext-url` 条目添加到 LES 中,并修改 `Tags` 以反映新添加的目标。请参阅[这篇](https://ricklarabee.blogspot.com/2017/12/adapting-poc-for-cve-2017-1000112-to.html)文章,其中包含将特定 PoC 漏洞适配到不同内核版本的绝佳示例。 - 对选定的内核加固安全措施进行源代码分析,然后将其添加到 `FEATURES` 数组中(如果尚未添加),并在以下位置发布您的分析:`https://github.com/mzet-/les-res/blob/master/features/.md`。 ### 致谢 感谢 [bcoles](https://github.com/bcoles/) 对 LES 做出的卓越且频繁的贡献。
标签:Shell脚本, Web报告查看器, 内核漏洞, 反取证, 子域名枚举, 安全评估, 应用安全, 提权, 提权审计, 操作系统安全, 攻击路径可视化, 无线安全, 本地提权, 漏洞利用建议, 系统安全, 网络安全, 隐私保护, 黑客工具