个性化阅读
专注于IT技术分析

如何在Kali Linux中使用Nikto2扫描Web服务器漏洞

本文概述

Nikto是一个开放源代码Web服务器漏洞扫描程序, 它是用Perl编写的, 自2011年以来公开可用。Nikto提供了在Web服务器中搜索广泛已知的漏洞的能力。它本身对潜在的危险Web服务器漏洞进行了超过6.400项验证。尽管大多数检查不是每个检查都是安全问题。有些项目是”仅信息”类型检查, 用于寻找可能没有安全漏洞的内容, 但网站管理员或安全工程师可能不知道服务器上是否存在这些项目。这些项目通常在打印的信息中适当标记。还对日志文件中已扫描的未知项目进行了一些检查。有关Nikto的更多信息, 请在此处访问该项目的官方资源库, 或在此处访问官方文档。

在本文中, 我们将向你简要介绍如何在Kali Linux中正确而轻松地使用Nikto。

如何使用它?

默认情况下, 任何Kali Linux发行版都包含Nikto, 因此, 如果你在控制台中键入:

nikto --help

你应该能够看到CLI工具在输出中具有的所有选项。现在, 要扫描网站/服务器上的漏洞很简单, 只需运行以下命令:

nikto -h <server-ip> -p <port>

其中:

  • -h:要扫描的服务器的IP地址或主机名。
  • -p:由于并非每个网站都在80端口上运行, 因此可以使用此选项指定端口。

请注意, 某些服务器可能在同一台服务器上运行多个网站, 因此它们将共享相同的IP, 因此, 如果要对正确的网站进行特定扫描, 请提供域(主机名)而不是IP, 例如google.com。但是, 如果你要扫描使用SSL认证(安全连接)的网站, 则端口显然也应该更改, 例如, 扫描我们自己的网站, 我们可以简单地运行:

nikto -h ourcodeworld.com -p 443

并且扫描也应该开始。使用受保护的网站, 你还将看到SSL证书的信息, 并且Nikto将运行附加测试以检查SSL证书上的漏洞。 nikto在命令行中的输出如下所示:

Nikto CLI Kali Linux示例

扫描需要一段时间。在我们的案例中, 耗时约15分钟, Nikto发出了8348个请求以检查漏洞:

Nikto CLI完成扫描

作为服务器管理员, 我应在生成的列表中修复所有问题吗?

在检测到服务器的所有漏洞之后, 你可以将其修复在刚刚测试的服务器上。请注意, 并非所有的+都是漏洞, 但是也包含信息, 因此你将需要正确解释Nikto提供的信息并根据警告进行操作。 Nikto使用OSVDB(开放源代码漏洞数据库)代码来提供有关发现的漏洞的信息。

例如, 当我们通过HTTPS协议扫描网站的输出时, 我们将收到其他警告:

- Nikto v2.1.6
---------------------------------------------------------------------------
+ Target IP:          69.64.34.144
+ Target Hostname:    ourcodeworld.com
+ Target Port:        443
---------------------------------------------------------------------------
+ SSL Info:        Subject:  /OU=Domain Control Validated/OU=PositiveSSL Wildcard/CN=*.ourcodeworld.com
                   Ciphers:  ECDHE-RSA-AES256-GCM-SHA384
                   Issuer:   /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
+ Start Time:         2019-05-18 14:53:34 (GMT-5)
---------------------------------------------------------------------------
+ Server: Apache
+ Retrieved x-powered-by header: PleskLin
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS
+ The site uses SSL and the Strict-Transport-Security HTTP header is not defined.
+ The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type
+ Server leaks inodes via ETags, header found with file /cgi-bin/, fields: 0x31b 0x56c06c7df334a 
+ The Content-Encoding header is set to "deflate" this may mean that the server is vulnerable to the BREACH attack.
+ Server is using a wildcard certificate: *.ourcodeworld.com
+ Web Server returns a valid response with junk HTTP methods, this may cause false positives.
+ OSVDB-3092: /sitemap.xml: This gives a nice listing of the site content.

该工具会生成消息”服务器正在使用通配符证书:*。ourcodeworld.com”, 但这意味着, 我的意思是, 我们正在使用SSL证书来保护网站, 这总比没有好吗?嗯, 理论上Nikto会显示此警告, 因为通配符证书不如常规证书安全, 有趣吗?你需要正确解释的另一个重要示例如下:” Content-Encoding标头设置为” deflate”, 这可能意味着服务器容易受到BREACH攻击”, 你可以找到有关以下内容的详细但易于理解的解释:这里的BREACH攻击。如文章所述, 解决此问题的方法可能是关闭HTTP压缩, 但是你将如何向用户发送未压缩的资源!这将增加下载时间等, 针对此问题的建议解决方案将改为在我们的代码中, 而不是在服务器本身中:

  1. 使用CSRF令牌保护易受攻击的页面。
  2. 向响应中添加随机字节以隐藏实际的压缩长度。
  3. 将敏感数据与显示输入文本的页面分开。

另一个史诗般的消息是” OSVDB-3092:/sitemap.xml:这给出了很好的站点内容列表”。当然, 在某些情况下, 此信息在网站上的披露将是有害的, 但是对于Google Web Masters将该网站定位在google中, 这种文件是必需的!有了这样的消息, 你就不必花很多时间在妄想之中, 而是要仔细阅读警告并适当地进行干预, 这样就不会弄乱已经正常运行的事物。

祝你考试愉快!

赞(1)
未经允许不得转载:srcmini » 如何在Kali Linux中使用Nikto2扫描Web服务器漏洞

评论 抢沙发

评论前必须登录!