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

本文概述

  • 如何使用它?
  • 作为服务器管理员, 我应在生成的列表中修复所有问题吗?
Nikto是一个开放源代码Web服务器漏洞扫描程序, 它是用Perl编写的, 自2011年以来公开可用。Nikto提供了在Web服务器中搜索广泛已知的漏洞的能力。它本身对潜在的危险Web服务器漏洞进行了超过6.400项验证。尽管大多数检查不是每个检查都是安全问题。有些项目是” 仅信息” 类型检查, 用于寻找可能没有安全漏洞的内容, 但网站管理员或安全工程师可能不知道服务器上是否存在这些项目。这些项目通常在打印的信息中适当标记。还对日志文件中已扫描的未知项目进行了一些检查。有关Nikto的更多信息, 请在此处访问该项目的官方资源库, 或在此处访问官方文档。
在本文中, 我们将向你简要介绍如何在Kali Linux中正确而轻松地使用Nikto。
如何使用它? 【如何在Kali Linux中使用Nikto2扫描Web服务器漏洞】默认情况下, 任何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在命令行中的输出如下所示:
如何在Kali Linux中使用Nikto2扫描Web服务器漏洞

文章图片
扫描需要一段时间。在我们的案例中, 耗时约15分钟, Nikto发出了8348个请求以检查漏洞:
如何在Kali Linux中使用Nikto2扫描Web服务器漏洞

文章图片
作为服务器管理员, 我应在生成的列表中修复所有问题吗? 在检测到服务器的所有漏洞之后, 你可以将其修复在刚刚测试的服务器上。请注意, 并非所有的+都是漏洞, 但是也包含信息, 因此你将需要正确解释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.comCiphers:ECDHE-RSA-AES256-GCM-SHA384Issuer:/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中, 这种文件是必需的!有了这样的消息, 你就不必花很多时间在妄想之中, 而是要仔细阅读警告并适当地进行干预, 这样就不会弄乱已经正常运行的事物。
祝你考试愉快!

    推荐阅读