【译】使用OpenVAS 9进行漏洞扫描

  本文译自Vulnerability Scanning with OpenVAS 9 part 1: Installation & Setup系列,本文将融合目前已经发表的四个部分。

Part I:安装和使用

安装Openvas 9

  要在我们的Kali Linux系统上安装Openvas 9及其依赖项,我们只需运行以下命令:

apt-get update && apt-get install openvas

  下一步运行安装过程,该过程将安装OpenVAS并下载大量网络漏洞测试(NVT)或签名。由于大量的NVT(50.000+),安装过程可能需要一段时间来完成并消耗大量的数据。在我们用于本教程的测试设置中,整个设置过程花费了10分钟完成,这还不错。(对我们来讲可能得两小时)

  运行以下命令以启动安装过程:

openvas-setup

  设置过程完成后,将启动所有必需的OpenVAS进程,并自动打开Web界面。 Web界面在端口9392上本地运行,可以通过浏览器访问:

https://localhost:9392/

  OpenVAS还将设置一个管理员帐户并自动生成此帐户的密码,该密码显示在设置输出的最后一部分中:

  【注】可以使用以下命令更改管理员密码:

openvasmd –user=[username]–new-password=[password]
openvasmd –user=admin –new-password=[password]

  下一步是接受自签名证书警告并使用自动生成的管理凭据登录Web界面: 

  登录Web界面后,我们将重定向到Greenbone Security Assistant仪表板。 从现在开始,我们可以开始配置和运行漏洞扫描。

启动和停止OpenVAS

  在我们开始安装虚拟设备之前,我想指出的最后一步是如何启动和停止OpenVAS服务。 OpenVAS服务可能会消耗大量不必要的资源,因此建议您在不使用OpenVAS时终止这些服务。  

  运行以下命令以停止服务:

openvas-stop

  再次启动OpenVAS服务,请运行:

openvas-start

  这样我们便可以开始使用OpenVAS进行漏洞扫描了。

Part II:漏洞扫描

  本部分我们将学习如何配置和运行漏洞扫描。 出于演示目的,我们还安装了一个带有Metasploitable 2的虚拟机,我们将使用OpenVAS进行定位。 如果您不知道如何安装Metasploitable,可以查看Metasploitable 2的安装教程或Metasploitable 3。  

  在我们使用OpenVAS 9实际启动漏洞扫描之前,我们必须完成以下任务:  

  • 创建和配置目标
  • 创建和配置扫描任务
  • 运行扫描 

  在本部分,您需要安装和配置OpenVAS 9.0。 如果您此时尚未执行此操作,建议您首先按第1部分安装OpenVAS。 同时,建议启动并运行易受攻击的Metasploitable虚拟机,该计算机可从OpenVAS设备或已安装OpenVAS的Kali Linux VM访问。 本教程使用的实验室设置如下所示:

  • 使用VMWare Workstation Pro 12的主机
  • 安装了OpenVAS 9.0的Kali Linux 2018.2 VM(192.168.65.128)
  • Metasploitable 2 VM(192.168.65.137)

  所有虚拟机都使用NAT网络,可以在网络适配器的网络设置中进行配置。 既然我们已经完成了所有工作,那就让我们开始配置目标和扫描任务。

  【提示】您是否忘记写下或更改您的OpenVAS管理员密码? 查看第一部分的安装教程,了解如何重置管理员密码。

在OpenVAS中创建目标

  第一步是使用OpenVAS / Greenbone Security Assistant Web界面创建和配置目标。 在我们配置扫描任务的以下步骤中选择此新创建的目标。

  创建目标,执行如下两个步骤:

  • 转到顶部菜单中的“配置”,然后选择“目标”
  • 单击左上角的蓝色图标以创建新目标  

   点击新目标按钮后,会出现一个对话框,我们需要输入以下信息:

  • 目标名称,我们将其命名为Metasploitable 2
  • 目标IP主机,它是我们的Metasploitable 2实验室机器的IP地址

   其他设置默认即可,然后单击“创建”按钮。

  

  新创建的目标现在将显示在可用目标列表中:

  现在我们已经完成了目标设置,让我们继续创建扫描任务,扫描Metasploitable 2目标中的漏洞。

在OpenVAS中配置扫描任务

  在本部分中,我们将创建一个新的扫描任务。 扫描任务定义将扫描哪些目标以及扫描选项,例如计划,扫描配置和同时扫描的目标以及每个主机的NVT。 在本教程中,我们将只创建一个扫描任务并使用默认扫描配置。 在使用OpenVAS 9.0的漏洞扫描第3部分(将于2018年5月25日发布)中,我们将对扫描配置进行更详细的介绍。 

   要创建新的扫描任务,我们必须执行以下步骤:

  • 转到顶部菜单中的“扫描”,然后选择“任务”
  • 指向左上角的蓝色图标,然后选择“新任务”

  单击新扫描选项后,将出现一个对话框屏幕,我们必须输入以下信息:

  • 任务名称,我们将其命名为“Scan Metasploitable 2”
  • 确保选中我们之前创建的Metasploitable 2目标
  • 勾选复选框(单次运行)
  • 保持所有其他设置为默认值,然后单击“创建”按钮以创建新任务  

  新创建的任务现在将显示在任务列表中,如下所示:

  还有一些其他选项可用于创建扫描任务。 我们可以使用扫描任务向导立即扫描目标以及高级扫描任务向导,该向导还提供了一些配置选项。 出于演示目的,我们将坚持我们刚刚创建的任务。

  现在我们已经配置了扫描任务并将Metasploitable 2机器添加到目标列表,剩下的就是运行任务并等待结果。

运行OpenVAS漏洞扫描 

   要运行新创建的任务,我们只需单击绿色开始按钮,如下所示:  

  现在,扫描任务将针对所选目标执行。 请注意,完整扫描可能需要一段时间才能完成。 刷新任务页面时,您将能够检查执行任务的进度:   

  • 重新加载页面
  • 检查任务状态/进度

  等待一段时间后,扫描任务完成,状态变为“完成”:

  正如预期的那样,我们可以看到OpenVAS发现了许多严重的漏洞。 我们来看看结果的细节。

查看扫描结果

  现在漏洞扫描已经完成,我们可以浏览顶部菜单中的“扫描 ->报告”。 在报告页面上,我们可以找到已完成扫描任务的报告:

  通过单击报告名称,我们可以概述Metasploitable 2计算机上发现的所有漏洞,这与预期的一样多。 结果默认按严重性顺序排序:

  当我们单击漏洞名称时,我们可以概述有关漏洞的详细信息。 以下详细信息适用于我们在早期教程中介绍的虚幻IRCD中的后门漏洞:

  最后,我们还可以以各种格式导出报告,例如:XML,HTML和PDF。 我们可以通过从下拉菜单中选择所需的格式来执行此操作,然后单击绿色导出图标,如下所示:

Part III:执行网络扫描

运行自定义漏洞扫描

  前面我们学习了如何针对网络上的单个目标运行漏洞扫描。 本节我们将配置主机列表并使用计划定期运行扫描。

创建目标主机列表

  在我们可以在特定主机或子网上运行计划任务之前,我们必须创建目标列表。 要执行此操作,请单击“配置”菜单中的“目标”菜单项,然后单击左上角的蓝色图标以创建新目标:  

  我们将新目标命名为“Target 192.168.100.1/24”。 在新目标对话框屏幕的下一部分中,我们可以使用几个不同的选项指定目标主机。 我们可以指定手动主机(范围),从文件中读取主机或从主机资产创建目标列表。 最后一个选项显示为灰色,因为我们的库存中目前没有主机资产。 当您必须使用单个目标列表扫描多个子网时,可以更轻松地从文本文件中读取主机。 为此,只需创建一个文本文件,并在一行中用逗号分隔每个目标IP或范围,如下所示:192.168.100.0/24,192.168.200.100-110,192.168.300.10         

  • 单IPv4地址:192.168.300.10
  • IPv4格式的短地址范围:192.168.200.100-11
  • 长格式的IPv4地址范围:192.168.200.100-192.168.200.110
  • CIDR表示法中的IPv4地址范围:192.168.100.0/24

  对于此演示,我们将使用手动选项并指定范围192.168.100.1/24。 此范围包含从192.168.100.1到192.168.100.254的所有IP地址。 然后我们有一些选项可以排除某些主机,反向查找,我们可以指定端口列表和活动测试设置。 除了我们设置为“ICMP和ARP Ping”的活动测试设置外,我们将保留所有设置的默认值。

设置主机发现任务

  现在我们已经设置了目标列表,让我们运行扫描以发现我们之前在目标列表中指定的子网中的主机。 转到顶部菜单中的“扫描 ->任务”并创建一个新任务:

  对于此任务,我们将“扫描目标”选项设置为新创建的目标列表,我们选择将结果添加到资产中。 然后我们将“扫描配置”设置为“主机发现”,然后单击“创建”按钮以创建新的扫描任务:  

  接下来,我们通过单击“运行任务”图标来运行新创建的任务:

  主机发现扫描完成后,我们可以在结果页面上找到结果(扫描 ->结果):   

  结果列表包含使用ICMP或ARP Ping发现的所有主机。 我们还可以在OpenVAS的资产部分找到发现的主机:    

运行系统发现扫描

  我们现在概述了响应我们的主机发现探测器的所有主机,但这只告诉我们主机是生命。 要获得有关这些实时主机的更多信息,我们可以运行“系统发现”扫描。 在我们运行此扫描之前,让我们看看它到底做了什么。 转到“配置 ->扫描配置”,然后单击“系统发现”扫描配置:

  当我们单击NVT系列条目时,我们可以看到System Discovery扫描使用各种检查来确定操作系统并发现SMB服务器,打印机和各种服务。 现在我们知道这次扫描的作用,让我们在几个目标上运行它。 从发现的主机中,我们选择了一些目标,并将它们包含在新的自定义目标列表中:   

  然后我们创建一个新的扫描任务,选择自定义目标列表,最后选择“系统发现”扫描:

  接下来,我们可以执行任务并等待它完成。   

  这看起来比Host Discovery扫描更有趣,它甚至在扫描配置有限的情况下发现了一些严重的漏洞。 在扫描结果中,我们可以发现扫描发现了2个漏洞:DistCC Detection和允许匿名登录的FTP服务器。

  另一个有趣的更新发生在资产部分。 当我们浏览资产 ->操作系统

运行完全和快速漏洞扫描

  现在我们已经在192.168.100.1/24子网上发现了实时主机,基于这些主机创建了一个自定义目标列表并运行了一些扫描,让我们运行全速和快速漏洞扫描。 Full&Fast漏洞扫描是一种平衡扫描配置,经过优化可在最短的时间内提供最佳结果。 这种类型的扫描探测大多数NVT并使用以前收集的信息。 让我们通过创建一个新任务来设置此扫描:  

  我们再次使用我们之前创建的自定义目标列表,然后选择完全和快速扫描配置。 您还可以使用扫描配置设置指定同时扫描多少NVT和主机。 当您使用相对较重的扫描配置定位许多主机时,请考虑您的计算机有足够的资源可用于有效执行扫描任务。 此外,考虑到使用此类扫描一次扫描不同的主机会产生大量网络流量,甚至可能导致服务和主机崩溃。 在本次演示中,我们同时扫描了一台主机和20台NVT。 经过一个多小时的扫描,OpenVAS得出以下结果:

  发现的漏洞包括信息泄露漏洞,例如主机192.168.100.106的“DCE / RPC和MSRPC服务枚举报告”,以及更严重的漏洞,例如“Microsoft Windows SMB Server Multiple Vulnerabilities-Remote(4013389)”或更好地称为MS17 -010和EternalBlue。 OpenVAS还扫描已知错误配置的目标,其中“IIS ASP.NET应用程序跟踪已启用”就是一个很好的例子。 可能会滥用启用应用程序跟踪等错误配置,以允许攻击者查看Web请求。 这些请求[FB1]可以包含敏感数据,例如具有登录凭据的POST请求。

  到目前为止,结果非常有趣,因为我们发现了一些严重的漏洞,如MS17-010。我们还发现了不同的错误配置,允许攻击者从我们的系统中检索敏感数据,这些数据可用于访问系统或为以后的攻击阶段提供有用的信息。在这一点上,我不想详细讨论误报,甚至更糟糕的误报,但OpenVAS等扫描工具只能检测它扫描的漏洞。当我正在扫描我自己的私人实验室机器时,我知道有一些漏洞/错误配置,OpenVAS没有接收到它们,如果没有进一步测试它们就会被忽视。虽然OpenVAS确实揭示了严重的漏洞,但我们不能完全依赖扫描结果,因此结合自动扫描进行手动测试也很重要。在使用OpenVAS进行漏洞扫描的第4部分中,我们将介绍漏报(未检测到的漏洞),我们将看看我们可以采取哪些措施来避免这种情况。在下一节中,我们将了解如何使用OpenVAS执行凭证扫描。

Credentialed漏洞扫描 

   到目前为止,我们仅从网络角度扫描了漏洞目标,例如易受攻击的Web服务器,SMB和FTP服务器。 我们还可以在目标配置中提供凭据,以便OpenVAS能够登录并检查本地漏洞,例如内核和已安装软件中的安全问题,例如允许权限提升的漏洞。 使用凭据的另一种方法是检查目标是否为默认值或易于猜测凭据,例如admin / admin。 在这种情况下,OpenVAS将检查目标上的给定凭据,并报告它们是否正常工作。 一个很好的用例就是在扫描(一系列)Cisco设备时创建默认凭据。 在这种情况下,您可以添加cisco / cisco作为用户名和密码,或只添加用户名。 在本演示中,我们将扫描Metasploitable 2并提供管理员凭据。

  要在目标上运行凭证扫描,我们必须首先创建凭据,方法是转到“配置 - >凭据”,然后单击蓝色星形图标以创建一组新凭据:   

  我们将其命名为“MS2”并提供Metasploitable 2的默认凭据(用户名和密码:msfadmin)。 下一步是创建一个新目标,输入目标IP地址并指定新创建的SSH访问凭据,以便OpenVAS能够运行经过身份验证的检查:   

  从这里开始,你将不得不创建一个新的扫描任务并运行它,就像我们在本教程中已经做过几次一样。 现在我们已经提供了凭据,扫描完成后,本地漏洞将包含在报告中。

安排扫描任务

  我们将在本教程中介绍的最后一个主题是扫描任务调度。 当您希望在预先指定的时间内定期扫描主机或网络范围时,任务调度特别有用。 假设我们希望在晚上几乎没有流量时在公司网络上运行漏洞扫描。 在这种情况下,我们可以创建每天晚上11点运行的日程安排。 我们来看看如何做到这一点。

  首先,我们需要创建一个计划,然后我们将其分配给扫描任务。 要创建计划,请转至“配置” - >“计划”,创建新计划并指定所需的参数:

  此计划将从今天晚上11点开始每天运行漏洞扫描。 唯一剩下的就是创建一个新的扫描任务并分配计划: 

Part IV:自定义扫描配置 

打印机的自定义扫描配置

  在本节中,我们将创建一个自定义扫描配置,以测试企业打印机和多功能(MFP)的漏洞。 我们要创建自定义扫描配置的原因是,在安全性和漏洞方面,打印机通常是被忽视的目标。 成功利用这些设备上的漏洞不仅可以让攻击者访问敏感数据,还可以获得网络上的滩头阵地。 许多企业打印机还使用轻量级目录访问协议(LDAP)对公司的域控制器进行身份验证。 在大多数情况下,设备不太可能通过管理员帐户进行身份验证,但可能会为攻击者提供对域帐户的访问权限。

  在定位打印机时,尽可能优化扫描配置并仅扫描目标打印机的NVT非常重要。 许多打印机具有易碎的网络堆栈,无法处理大型扫描负载,甚至可能导致目标崩溃。 我们将排除与打印机无关的NVT,例如针对特定制造商的设备的NVT或针对本地漏洞的NVT。

创建自定义扫描配置

  首先,我们将创建一个新的扫描配置,并将其命名为“打印机”。 我们可以选择复制现有的扫描配置并禁用我们不想使用的NVT,但由于我们在此处定位打印机,最好从空扫描配置开始,并启用适用于打印机设备的少数NVT。  

  接下来我们可以编辑扫描配置来定位NVT:

  向下滚动到全局变量设置:从扫描中排除打印机,然后单击“编辑”图标:

  启用“从扫描中排除打印机”:

   

  接下来,我们创建一个新的扫描任务,并选择打印机目标列表作为目标,并选择新创建的扫描配置“完全和快速打印机”:

提示1:当您选择单个NVT时,请不要单击NVT系列复选框,因为这将添加来自特定系列的所有NVT。
提示2:在本演示中,我们仅添加了专门针对打印机的NVT。 由于大多数现代打印机运行不同的服务和服务器,因此建议同时启用面向FTP,Telnet,SSH,SNMP和Web服务器的NVT。
提示3:一般来说,我建议不要选择单个NVT的路线,除非它只是少数几个与打印机一样的NVT。

   The End!!! 

posted @ 2018-12-12 22:24 starnight_cyber 阅读(...) 评论(...) 编辑 收藏