如何使用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。