在渗透测试中自动枚举缺失的补丁

信息安全 linux 渗透测试 脆弱性 自动化测试 特权升级
2021-08-22 08:54:12

Nessus 在运行凭证扫描时可以检查补丁级别并在软件包尚未更新到最新的非易受攻击版本时返回漏洞。

执行此操作以查找权限提升漏洞的好方法是什么 - 例如,当您在有限的用户帐户下获得对服务器的 shell 访问权限,但想要提升到 root 权限时?

dkpg --list可以在 Ubuntu 上使用之类的命令来枚举补丁级别。然而,这在很大程度上是一项手动的、耗时的任务。

是否有任何方法可以加快 Linux 主机上的权限提升?两种有用的技术是运行诸如unix-privesc-checklinuxprivchecker.py之类的脚本。但是,它们不会如上所述自动检查补丁级别。后者以某种方式进行,但我相信它仅进行一些基本检查,并且由于未维护,因此对更新的主机没有那么有用。

我的其他想法是运行某种类型的二进制文件,该二进制文件可以在非特权端口上有效地运行 SSH 服务器,并使用我自己的凭据而不是主机的凭据进行保护。这将使 Nessus 能够完成对机器的凭证扫描。

1个回答

Nessus,有时令人惊讶的是,经常会以好的和坏的方式提出你永远无法预料的结果。确保您正确配置它 - 凭证扫描可能很难正确。

OpenVAS有很多 Nessus 没有的检查,并且以非常相似的方式工作。但是,Nessus 确实有大量检查。它可能取决于操作系统或环境以获得最佳结果,因此请同时运行。

CVEDetails是一个很好的来源,您可以在其中缩小到特定的产品、版本等。它通常会链接到其他通常是原始资源 - 或者有时会拼出特定的漏洞利用或 Metasploit 模块(例如,use .*linux/gather/enum <tab>, <tab> <tab>)。如果没有,则在exploitsearch.net上搜索漏洞名称、带有编号、补丁编号或级别的CVE,或其他相关信息。通过每天查询这两个网站,我获得了很多 shell,甚至获得了新的权限提升漏洞的想法。

许多其他工具可能会有所帮助,具体取决于视角。是否在任何本地网络端口上运行任何东西?NeXpose 或 Nmap 可以识别这些端口吗?IPC 或管道呢?vulscan NSE 脚本还提供了超越默认 (-sC) 和更深入的 NSE 规划、配置和分析的绝佳方向。数据包分析(例如,pyshark 提供编程接口)也可以在这里使用。GitHub 和其他地方可能有大量适用于各种目标平台的第三方 NSE 脚本。有时您可能需要创建自己的 NSE 脚本。使用诸如metasploitHelper 之类的工具或技术最容易将已知端口或服务从 Nmap 映射到 Metasploit 。

我会谨慎使用诸如 linuxprivchecker.py、Linux_Exploit_Suggesterlinux-exp-suggester之类的工具,或者您通过其他方式发现的各种内核漏洞。您应该注意的主要注意事项之一是SMEP有关 SMEP 的更多信息可以在这个确切论坛上的一个答案中找到,包括如何查询它。它可以在启动时使用 grub 参数 `nosmep' 或使用LKM禁用。如果启用了 SMEP,运行内核漏洞而不修改可能会导致内核崩溃,这意味着它会导致系统崩溃。

除了 CVE 之外,还有很多方法可以提升权限。在我继续讨论该主题之前,您可能会发现将目标克隆(注意,如果您不了解所有详细信息,则尽可能接近)到您自己的受控环境中可以让您以 root 身份运行以了解您的目标更好的。在这些克隆环境中,诸如cvechecker之类的工具可能非常有用,以及重新运行您的 Nessus、OpenVAS,甚至可能是CIS-CATovaldi检查。

一些工具,例如LinEnum,无论是作为 root 还是作为低权限用户运行,都非常出色,可能类似于 unix-privesc-check。我从在各种环境中使用这些工具获得了很多帮助——克隆的或拥有的。我见过一些像这样工作的自定义脚本(主要用于 Offensive Security 的 PWK 实验室),但值得一提的是针对强化的非特权主机枚举脚本,例如LynisBastilleLSAT / USAT有关操作系统默认命令、外部工具和技术的另一个完整列表,请务必查看 -- https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/

对于存在受密码保护的 root 和其他“活动”帐户的目标环境,可能有许多方法可以攻击身份和信任关系以窃取凭据。很多权限提升(我说在过去 50 年的计算机使用和滥用中确实如此)是关于猜测关系(例如,known_hosts、authorized_keys2、hosts.equiv 等)、破解密码(例如,哈希)、暴力登录、远程(例如 ssh 密钥)或 su/sudo 提示等。在 Kali Linux 和其他地方有许多工具可以执行或帮助执行这些任务。甚至在最近几年,已经开发了如此多的技术。您绝对应该注意的两个是sucrackphrasendrescher

密码的关键是重用。如果您在系统(或附近的系统,例如在同一网络上)找到任何文件、服务或可配置文件,甚至可能进一步扩展,例如从已经存在的凭证转储中找到特定用户最喜欢的密​​码,例如 Adob​​e 、RockYou、Gawker 和其他工具(如 recon-ng)中发现的)并且它有密码,那么您应该在任何地方尝试该密码,特别是如果这样做合乎逻辑的话。没有工具可以为您做到这一点,但许多工具可以帮助改变一些事情。许多只是提供直接的密码恢复。为一个用户恢复一个密码,您可能会找到一条通往顶部的路径。Kali Linux中,pack 项目是一个很好的起点,使用 dictstat、maskgen 和 policygen 等工具。John 和 Hashcat 至高无上,尤其是与其他工具的集成(例如,metasploit-framework、LAIR-framework、KvasirSecurity)以及 statsprocessor 等扩展在实际操作正在发生的网络上,您可能能够获取大量明文、弱加密或场景驱动(即 MITM 条件)凭据。这个领域的工具是easy-credsPCredz,当与 metasploit 框架模块(例如辅助/服务器和辅助/欺骗层次结构下的模块)结合使用时可能会更好。证书也可以通过社会工程技术获得——我们不要忘记使用 SET 等工具的基础知识。