【THM】Vulnerability Scanner Overview(漏洞扫描器概述)-学习
本文相关的TryHackMe实验房间链接:https://tryhackme.com/r/room/vulnerabilityscanneroverview
本文相关内容:了解漏洞扫描器及其在实际场景中的工作方式。
什么是漏洞?
想象一下,你住在一栋可爱的小房子里。有一天,你注意到你家的屋顶有很多小洞。如果不加以处理,这些小洞就可能会造成严重的问题。在下雨时,水可以通过这些小洞渗入以损坏你的家具。灰尘颗粒和昆虫也可以通过这些小洞进入你的房子。这些小洞是你家的弱点,如果不及时解决,将来可能会导致严重的问题。这些缺陷被称为漏洞,你可以开始修理屋顶来解决这个问题并保证你家的安全,而修复漏洞的过程被称为打补丁(Patching)。
数字设备的软件或硬件内部也存在漏洞。这些漏洞是软件程序或硬件中的缺陷,攻击者可以利用它们来入侵数字设备。这些漏洞对你来说可能听起来很普通,就像屋顶上随时可以修复的小洞一样。然而,如果不及时发现,数字设备中的漏洞就可能会造成巨大的损失。黑客总是在寻找这些缺陷,并利用它们入侵你的系统或网络。关于数字设备漏洞的有趣之处在于,除非你致力于去寻找它们,否则你将无法像发现屋顶上的小洞一样轻易找到它们。在找到这些漏洞后,漏洞修复过程就可以开始了,在该过程中会应用一些修复程序来保护你的系统免受漏洞危害。
学习本文的目的是了解如何在数字设备中寻找漏洞。我们将学习一些可用的工具来自动化漏洞搜寻过程,并且会利用其中一个工具来演示如何进行与漏洞扫描相关的实际操作。
学习目标
- 了解漏洞扫描及其类型。
- 了解常见的一些用于漏洞扫描的工具。
- 查看OpenVAS漏洞扫描器的使用演示。
- 完成本文要求的实践练习任务。
答题
阅读本小节内容并回答问题。
修复漏洞的过程被称为什么?
Patching (打补丁)
漏洞扫描介绍
漏洞扫描是对数字系统进行检查以发现它的缺陷。组织在其数字基础设施中存储着关键信息,他们必须定期扫描其系统和网络以确定是否存在漏洞,因为攻击者可以利用漏洞来入侵其数字基础设施,进而可能造成相当大的损失。漏洞扫描也是许多监管机构的一项重要合规要求。一些安全标准建议每季度执行一次漏洞扫描,而另一些安全标准则建议每年执行一次漏洞扫描。
我们已经认识到定期在数字环境中进行漏洞扫描的重要性;然而,手动查找这些漏洞可能会非常繁琐,并且容易遗漏一些重大漏洞。网络规模越大,手动进行漏洞扫描的速度就越慢。现在,这不再是问题,因为市面上已经出现了一些高效的自动化漏洞扫描工具。这种自动化漏洞扫描可以让工作变得轻松许多。你只需要安装漏洞扫描工具,并为其指定目标主机的 IP 地址或者目标网络的网络范围;它就会开始检查漏洞,并为你提供一份易于阅读的漏洞报告,其中将包含所发现的漏洞的详细信息。
发现漏洞后,组织可以通过对软件程序或系统进行更改来修复漏洞,这些更改被称为补丁(Patches) 。
漏洞扫描可分为多种类型,但是,这些扫描的主要分类将如下所述。
已验证扫描与未验证扫描
经过身份验证(Authenticated)的扫描需要提供目标主机的凭据,并且得到的结果会比未经身份验证(unauthenticated)的扫描更加详细,这些类型的扫描有助于发现主机内部的威胁面;而未经身份验证的扫描无需提供目标主机的任何凭据即可进行,这类扫描有助于识别来自主机外部的威胁面。
经过身份验证的扫描 | 未经身份验证的扫描 |
---|---|
必须向漏洞扫描程序提供目标主机的凭据 | 这类漏洞扫描程序不需要主机的凭据;它只需要我们提供目标的 IP 地址 |
识别可以被有权访问主机的攻击者利用的漏洞 | 识别无法访问目标主机的外部攻击者可以利用的漏洞 |
它通过扫描目标系统的配置和已安装的应用程序,来提供对目标系统的更深入的了解 | 它占用的资源较少,并且设置起来很简单 |
例如,通过向漏洞扫描程序提供相关凭据来扫描内部数据库 | 例如,扫描面向公众的网站以查找任何用户都可以利用的漏洞 |
内部扫描与外部扫描
内部(Internal)扫描是从网络内部进行的,而外部(external)扫描是从网络外部进行的,下面让我们看看它们之间的一些区别。
Internal Scans 内部扫描 | External Scans 外部扫描 |
---|---|
从网络内部进行 | 从网络外部进行 |
它主要关注网络内部可被利用的漏洞 | 它主要关注那些可以从网络外部进行利用的漏洞 |
识别那些在攻击者进入网络内部后可能会被暴露的漏洞 | 识别那些从网络外部暴露给攻击者的漏洞 |
漏洞扫描类型的选择取决于多种因素,经过身份验证的扫描通常会用于进行内部漏洞扫描,而未经身份验证的扫描则主要会用于进行外部漏洞扫描。
答题
阅读本小节内容并回答问题。
哪种类型的漏洞扫描需要提供目标主机的凭据?
Authenticated
哪种类型的漏洞扫描侧重于识别可以从网络外部进行利用的漏洞?
External
漏洞扫描工具
市面上有很多工具可以执行自动化漏洞扫描,每种工具都提供独特的功能。让我们来讨论一下一些被广泛使用的漏洞扫描程序。
Nessus
Nessus于 1998 年作为开源项目开发。后来,它于 2005 年被 Tenable 收购,并成为专有软件。它具有丰富的漏洞扫描选项,并且被大型企业广泛使用。它提供了免费版本和付费版本。免费版本仅提供有限数量的扫描功能,相比之下,其商业版本能够提供高级扫描功能、无限次扫描和专业支持。 Nessus需要在本地部署和管理。
Qualys
Qualys于 1999 年开发,是一个基于订阅的漏洞管理解决方案。除了持续漏洞扫描外,它还能提供合规性检查和资产管理功能。它会针对持续监控过程中发现的漏洞自动发出警报。Qualys最大的优点在于它是一个基于云的平台,这意味着我们无需花费额外的成本或精力在物理硬件上维护和管理它。
Nexpose
Nexpose由 Rapid7 于 2005 年开发,是一款基于订阅的漏洞管理解决方案。它能持续发现网络中的新资产并对其进行漏洞扫描,它会根据资产价值和漏洞影响给出漏洞风险评分,它还能够提供针对各种标准的合规性检查。Nexpose可提供本地部署和混合(云和本地)部署模式。
OpenVAS(开放式漏洞评估系统)
OpenVAS是 Greenbone Security 开发的一款开源漏洞评估解决方案。它提供了通过其数据库扫描已知漏洞的基本功能。它的功能不如商业工具那么强大,但也能为你提供完整漏洞扫描程序的体验。OpenVAS对于小型组织和个人系统而言还是比较有用的。在下一小节中,我们将通过执行漏洞扫描来更详细地探讨此工具。
tips:OpenVAS-Open Vulnerability Assessment System(开放式漏洞评估系统)。
几乎所有漏洞扫描器都能提供生成漏洞评估报告的功能,在每次漏洞扫描后,它们都会生成一份详细的报告。这些报告包含已发现的漏洞的列表、漏洞风险评分以及漏洞详情描述。一些漏洞扫描器还能提供高级的漏洞报告功能,为所有已经发现的漏洞提供相应的修复方法,并允许你以不同的格式导出这些漏洞评估报告。
上面提到的每个工具都有其优点。在实际为你的数字资产选择合适的漏洞扫描器时,你必须考虑范围、资源、分析深度以及其他一些因素。
答题
阅读本小节内容并回答问题。
Nessus 目前是开源漏洞扫描器吗? (Yea/Nay:是/否)
Nay
哪家公司开发了 Nexpose 漏洞扫描器?
Rapid7
由Greenbone Security 开发的开源漏洞扫描器的名称是什么?
OpenVAS
CVE和CVSS
想象一下,你坐在IT投诉办公室的服务台上,管理着众多客户。你每天要处理数百起有关IT中断或者其他需要公司支持的问题的投诉。让我们看看CVE和CVSS如何帮助你追踪所有这些咨询和投诉。
CVE
CVE代表Common Vulnerabilities and Exposures(通用漏洞与披露)。CVE可以理解为你的每条咨询和投诉都会有一个唯一的编号。如果有任何问题的更新,你都可以使用唯一的CVE编号轻松跟踪。这个CVE编号是分配给漏洞的唯一编号,是由 MITRE 公司开发的。任何软件应用程序中发现的新漏洞都会被赋予一个唯一的CVE编号作为参考,并会在CVE数据库中在线发布。发布该编号的目的是让人们了解这些漏洞,以便他们能够采取保护措施来修复它们。你可以在 CVE 数据库中找到任何先前发现的漏洞的详细信息。下图显示了漏洞的CVE编号示例:
- CVE前缀:每个CVE编号开头都有前缀“ CVE ”。
- 年份:每个CVE编号的第二部分将包含发现它的年份(例如2024年)。
- 任意数字: CVE编号的最后一部分会包含四个或更多任意数字(例如9374)。
CVSS
CVSS代表Common Vulnerability Scoring System(通用漏洞评分系统)。我们再次回到服务台的场景,你始终需要对投诉进行优先级排序。确定投诉优先级的最有效的方法是按照投诉的严重性程度进行排序。如果你的所有投诉均以从 0 到 10 的分数进行登记,其中分数越高表示投诉越严重,情况会怎么样?这将解决对关键投诉进行优先级排序的问题。在漏洞管理的背景中,这被称为CVSS评分。在计算机领域,正如每个漏洞都有一个唯一标识它的CVE编号一样,每个漏洞也都有一个CVSS分数来表明其严重性程度。CVSS分数的计算考虑了多种因素,包括漏洞的影响、漏洞的易利用性等等。
下表显示了不同 CVSS 分数所对应的严重程度:
CVSS评分范围 | 严重性程度 |
---|---|
0.0-3.9 | Low 低的 |
4.0-6.9 | Medium 中等的 |
7.0-8.9 | High 高的 |
9.0-10 | Critical 严重的 |
答题
阅读本小节内容并回答问题。
CVE 代表什么?
Common Vulnerabilities and Exposures
哪个组织开发了 CVE?
MITRE Corporation
得分为 5.3 的漏洞的严重级别是什么?
Medium
OpenVAS扫描器的使用
正如第三小节中所讨论的那样,OpenVAS是一个完整的开源漏洞扫描器。在本小节中,我们将了解如何使用 OpenVAS 扫描器进行漏洞扫描。
安装OpenVAS
我们将介绍如何在一台 Ubuntu 机器上安装 OpenVAS 。 OpenVAS 工具的安装过程可能会非常繁琐,因为它有很多依赖项。我们将使用 docker 来安装OpenVAS。 Docker 是一个可以帮助你创建和分发不同应用程序的软件包的平台,这些软件包被称为容器。应用程序的容器中已经安装了所有依赖项,因此我们不需要花费更多时间来安装应用程序的依赖项。为了方便起见,我们已经在TryHackMe为我们提供的实验虚拟机上安装了 OpenVAS 工具。
下面是 OpenVAS 工具的正常安装步骤,我们先安装docker:
sudo apt install docker.io
安装好docker之后,我们还需要运行以下命令来安装 OpenVAS 容器(它会附带所有已经安装的依赖项):
sudo docker run -d -p 443:443 --name openvas mikesplain/openvas
访问OpenVAS
完成上述安装过程后,你可以打开任意浏览器并在 URL 中输入以下内容来访问 OpenVAS Web 界面:
https://127.0.0.1
这将带你进入 OpenVAS 的登录页面。输入正确的登录凭据后,将打开以下仪表面板。此仪表面板会提供关于你的漏洞扫描活动的全面概述:
执行漏洞扫描
现在,我们将在一台机器上执行漏洞扫描。第一步是在 OpenVAS 仪表面板中创建一个任务,然后我们将填写此任务的详细信息并执行它以运行漏洞扫描。
单击仪表面板上显示的“Scans-扫描”选项内可用的“Tasks-任务”选项,你将进入显示所有正在运行的任务的页面。由于我们尚未执行任何扫描,因此该页面上看不到任何任务存在,如果想要创建任务,请单击下图中的星形图标,然后点击屏幕截图中突出显示的“New Task-新建任务”选项即可:
输入任务名称,然后单击下面截图中突出显示的“Scan Targets-扫描目标”选项:
输入目标机器的名称和IP地址,然后单击“Create-创建”:
你将有多个可用的扫描选项,每个扫描选项都有其扫描范围;你可以研究每种扫描类型的详细信息并进行相应的选择,然后单击“Create-创建”按钮:
任务已创建,并会显示在“Tasks-任务”仪表面板上。如果想要启动扫描,请单击下图所标记的“Actions-操作”选项中的播放按钮:
完成扫描可能需要几分钟的时间。扫描完成后,你将看到其状态被标记为“Done-完成”。“Tasks-任务”仪表面板内的可视化效果将显示一些数字,指示已发现的漏洞的严重性程度。如果要检查该扫描的详细信息,你必须单击任务名称:
如果要查看在扫描期间发现的所有漏洞的详细信息,你可以单击表示在目标主机中发现的漏洞数量的数字:
现在,我们得到了在这台目标机器上发现的所有漏洞及其严重性程度的信息列表。我们可以点击其中任何一个漏洞来查看更多相关的详细信息:
与其他漏洞扫描器一样,OpenVAS 允许我们将这些漏洞评估结果导出为报告。你可以从OpenVAS的“Tasks-任务”仪表面板中获取任何格式的报告。
答题
阅读本小节内容并回答问题。
在本次任务中被扫描的目标机器的 IP 地址是什么?(查看本小节内容中的OpenVAS使用演示截图即可)
10.10.154.44
我们在该目标主机上发现了多少个漏洞?(查看本小节内容中的OpenVAS使用演示截图即可)
13
实践练习
场景:一家信誉良好的公司针对其网络上存储着关键信息的服务器 (MACHINE_IP)进行了漏洞扫描。这项活动旨在增强组织的安全态势。安全团队使用OpenVAS漏洞扫描器进行了此项活动,相关的漏洞扫描报告已经被放置在实验虚拟机的桌面上。假设你是该公司的一名信息安全工程师,你现在的任务是审阅此漏洞扫描报告。你只需要打开实验虚拟机桌面上的报告或者再次执行一次漏洞扫描活动即可回答本小节答题任务中的问题。在与本文相关的实验环境中,OpenVAS工具已经安装在了我们有权访问的实验虚拟机上。
注意:执行漏洞扫描可能需要等待一些时间。这就是为什么TryHackMe已经为我们将相关的扫描报告放在实验虚拟机的桌面上,这方便我们分析报告并回答问题。
在与本文相关的TryHackMe实验房间页面中,你可以通过点击下面的“Start Machine”按钮来启动实验虚拟机。该机器将会以分屏视图的形式启动。如果这个实验虚拟机不可见,请继续点击实验房间页面顶部的蓝色Show Split View按钮。
在实验虚拟机启动后,如果你希望自己执行漏洞扫描而不是分析扫描报告,则必须启动 OpenVAS 的 docker 容器才能访问它。你可以通过使用 root 权限执行以下命令来执行此操作:
root@tryhackme$ docker start openvas
在docker启动后,你现在可以通过在实验虚拟机的浏览器中输入以下 URL 来访问 OpenVAS 相关页面:
https://127.0.0.1/login/login.html
在与本文相关的实验环境中,该工具的默认登录凭据将如下所示:
Username: admin
Password: admin
注意:请注意,扫描过程可能会很慢。
答题
完成本小节的实践练习并回答以下问题。
我们可以直接查看实验虚拟机桌面上现成的漏洞评估报告:
也可以手动执行漏洞扫描任务:
tips:在这里我们只需要使用实验虚拟机即可(不需要启动TryHackMe为我们提供的攻击机),我们将要执行的其实是针对实验虚拟机IP的本地漏洞扫描。
#在实验虚拟机的终端上执行命令
sudo su
docker start openvas
#浏览器访问:https://127.0.0.1/login/login.html
#Username: admin
#Password: admin
#目标ip:127.0.0.1
#新建任务并执行扫描
#等待ing
#查看漏洞扫描结果
在扫描中可以发现的单个高严重性漏洞的得分是多少?(查看上面的扫描结果图)
10
OpenVAS针对此漏洞的建议解决方案是什么?(查看上面的扫描结果图)
tips:点击漏洞即可查看相关的详细信息。
Change the password of the mentioned account(s)