如何使用Nikto扫描器来查找Web服务器的漏洞?

扫描您的Web服务器以查找漏洞,使用Nikto扫描仪进行免费的配置错误

97%的Trustwave测试的应用程序中存在一个或多个弱点。

调查的入侵中14%由于配置错误而导致。配置错误可能导致严重风险。

有许多可以在Internet上测试您的Web应用程序。但是,如果您要测试Intranet应用程序或内部应用程序,则可以使用Nikto Web扫描仪。

Nikto是一个开源扫描程序,您可以与任何Web服务器(Apache,Nginx,IHS,OHS,Litespeed等)一起使用。听起来像一个完美的内部Web服务器扫描工具。它能够扫描超过6700个项目,以检测配置错误,风险文件等。其中一些功能包括;

  • 您可以将报告保存为HTML,XML,CSV
  • 它支持SSL
  • 扫描服务器上的多个端口
  • Find subdomain
  • Apache用户枚举
  • 检查过时的组件
  • 检测停车场网站

让我们开始安装和使用这个工具。

有许多使用Nikto的方法。

  • 使用Kali Linux
  • Docker容器
  • 在基于UNIX的发行版或Windows上使用二进制文件。

注意:执行扫描会向您的Web服务器发送大量请求。您承认风险,并仅对您自己的服务器执行扫描。

在Kali Linux上使用Nikto

由于它是Kali中内置的,所以您不需要安装任何东西。

  • 登录到Kali Linux
  • 转到应用程序>>漏洞分析,然后单击nikto

它将打开终端,您可以在其中针对Web服务器运行扫描。您可以使用多个语法来运行扫描。但是,最快的方法如下。

# nikto –h $webserverurl

请不要忘记将$webserverurl更改为您的Web服务器实际IP或FQDN。

root@Chandan:~# nikto -h thewebchecker.com
- Nikto v2.1.6
---------------------------------------------------------------------------
+ Target IP:                  128.199.222.244
+ Target Hostname:     thewebchecker.com
+ Target Port:              80
+ Start Time:                2016-08-22 06:33:13 (GMT8)
---------------------------------------------------------------------------
+ Server: Apache/2.4.18 (Ubuntu)
+ Server leaks inodes via ETags, header found with file /, fields: 0x2c39 0x53a938fc104ed
+ 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 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
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ Allowed HTTP Methods: GET, HEAD, POST, OPTIONS
+ Uncommon header 'x-ob_mode' found, with contents: 1
+ OSVDB-3092: /manual/: Web server manual found.
+ OSVDB-3268: /manual/images/: Directory indexing found.
+ OSVDB-3233: /icons/README: Apache default file found.
+ /phpmyadmin/: phpMyAdmin directory found
+ 7596 requests: 0 error(s) and 10 item(s) reported on remote host
+ End Time:                  2016-08-22 06:54:44 (GMT8) (1291 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

如上所示,上述扫描针对Apache 2.4的默认配置,并且有许多需要注意的项目。

您可以参考我的Apache Security & Hardening Guide来修复这些问题。

在CentOS上使用Nikto

  • 登录到CentOS或任何基于Linux的操作系统
  • 使用wget从Github下载最新版本
wget https://github.com/sullo/nikto/archive/master.zip .
  • 使用unzip命令进行解压
unzip master.zip
  • 它将创建一个名为“nikto-master”的新文件夹
  • 进入文件夹nikto-master > program
cd nikto-master/program
  • 使用目标域执行nikto.pl

安装完成后执行nikto应该没问题。这次,我将对Nginx Web服务器进行扫描,以查看其性能如何。

./nikto.pl -h $IPADDRESS
[root@lab program]# ./nikto.pl -h XX.XX.137.171
- Nikto v2.1.6
---------------------------------------------------------------------------
+ 目标 IP:          XX.XX.137.171
+ 目标主机名:    XX.XX.137.171
+ 目标端口:        80
+ 开始时间:         2020-06-07 07:39:40 (GMT0)
---------------------------------------------------------------------------
+ 服务器: nginx/1.14.1
+ 缺少反点击劫持X-Frame-Options头
+ 未定义X-XSS-Protection头。此头可以提示用户代理保护免受某些形式的XSS攻击
+ 未设置X-Content-Type-Options头。这可能导致用户代理以不同方式呈现站点内容,与MIME类型不同
+ 未找到CGI目录(使用“-C all”强制检查所有可能的目录)
+ /httpd.conf: Apache httpd.conf配置文件
+ /httpd.conf.bak: Apache httpd.conf配置文件
+ 8075个请求:在远程主机上报告0个错误和5个条目
+ 结束时间:           2020-06-07 07:39:50 (GMT0) (10秒)
---------------------------------------------------------------------------
+ 已测试1个主机
[root@lab program]#

所以,正如你所看到的,默认的Nginx Web服务器配置也是有漏洞的,而这个security guide将帮助你解决这些问题。

故障排除

在CentOS上运行时,可能会遇到以下错误,如果遇到此问题,可以像下面解释的那样进行修复。

错误 -1

+ 警告:缺少模块JSON::PP。-Savedir和重放功能无法使用。

或者

错误:找不到所需的模块:Getopt::Long
错误:找不到所需的模块:Time::Local
错误:找不到所需的模块:Time::HiRes qw(sleep ualarm gettimeofday tv_interval)

如果收到上述警告,则需要通过以下方式安装Perl模块。

# yum install perl-CPAN*

或者在CentOS 8上使用DNF

# dnf install perl-CPAN*

错误 – 2

perl: 警告:设置区域设置失败。

对于此错误,您需要在终端上导出区域设置,如here中所述。

export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

错误 – 3

无法在@INC中找到bignum.pm(您可能需要安装bignum模块)

您需要安装Perl bignum模块。

# yum install perl-bignum

或者在CentOS 8上使用DNF

# dnf install perl-bignum

结论

继续使用Nikto软件进行尝试,如果有兴趣了解更多信息,请查看此hacking and penetration testing course

类似文章