# Nikto 漏洞扫描工具
# 简介
Nikto 是一款常用的 Web 漏洞扫描工具,它可以扫描 Web 服务器上的常见漏洞和安全问题,如 SQL 注入、XSS、文件包含、目录遍历等。本文将介绍 Nikto 的安装和使用方法。
# 功能介绍
使用 Rain Forest Puppy 的 LibWhisker 实现 HTTP 功能,并且可以检查 HTTP 和 HTTPS
支持基本的端口扫描以判定网页服务器是否运行在其他开放端口
可以使用 'update' 选项从主版本站点自动更新,以应对新的弱点
可以在启动时加载用户自定义的检测规则,当然前提是自定义检测规则已经放在了 user_scan_database.db 文件内 (这个文件在插件目录下),即使使用 - update 选项升级,自定义的检测规则也不会被覆盖
具有反入侵探测 (IDS) 功能
Nikto 可用来检查网页服务器和其他多个范畴内的项目:错误的配置、默认文件和脚本、不安全的文件和脚本、过时软件等
# 安装
linux 安装
apt-get install nikto | |
或者 | |
yum install nikto |
windows 安装
- 下载压缩包,在 github 上下载链接
- nikto 在 windows 系统中使用需要依赖于 ActiveState Perl 环境,需要下载
- 安装完毕 ActivePerl 之后,添加 Perl 到 PATH 环境中并创建 Perl 文件关联,打开 CMD 窗口,检测当前 ActivePerl 环境是否安装完成
- 解压 nikto 后在 cmd(命令行模式)窗口中,进入 nikto.pl 路径直接执行就可以使用了
# 使用
- 基本用法
在命令行中输入以下命令,即可使用 Nikto 扫描目标网站:
nikto -h 目标网站的URL | |
#例如,扫描百度网站可以使用以下命令: | |
nikto -h https://www.baidu.com | |
#Nikto 会自动扫描目标网站的漏洞和安全问题,并输出扫描结果 | |
[root@localhost nikto]# nikto -h https://www.baidu.com | |
- ***** RFIURL is not defined in nikto.conf--no RFI tests will run ***** | |
- ***** SSL support not available (see docs for SSL install) ***** | |
- Nikto v2.1.6 | |
--------------------------------------------------------------------------- | |
+ No web server found on www.baidu.com:443 | |
--------------------------------------------------------------------------- | |
+ 0 host(s) tested |
- 扫描选项
Nikto 提供了多种扫描选项,可以根据需要进行配置。以下是常用的扫描选项:
- -p:指定要扫描的端口号,多个端口号用逗号分隔。
- -ssl:指定使用 SSL 协议进行扫描。
- -id:指定要发送的 HTTP 头信息。
- -Tuning:指定扫描的级别,包括 0-3 级。
- -output:指定输出扫描结果的文件名。
例如,使用以下命令可以扫描目标网站的 80 和 443 端口,并输出扫描结果到文件中:
nikto -h https://www.baidu.com -p 80,443 -output baidu.txt |
- 报告生成
Nikto 可以生成 HTML、CSV 和 XML 格式的扫描报告。使用以下命令生成报告:
nikto -h <目标主机> -p <端口号> -Format <格式> -output <文件名> |
<格式>
可以是 html
、 csv
或 xml
。
例如:
nikto -h localhost -p 80 -Format html -output report.html |
- 高级用法
Nikto 还提供了一些高级用法,可以更加灵活地进行扫描。以下是一些常用的高级用法:
使用代理服务器进行扫描:
nikto -h https://www.baidu.com -useproxy http://proxy.example.com:8080
使用认证信息进行扫描:
nikto -h https://www.example.com -id admin:password
扫描指定目录:
nikto -h https://www.example.com -root /admin/
扫描指定文件类型:
nikto -h https://www.example.com -filetype php
扫描指定漏洞:
nikto -h https://www.example.com -plugins vulnerabilities
# 配置 Nikto
Nikto 的配置文件 nikto.conf
包含了多种配置选项。在 Linux 上,配置文件通常位于 /etc/nikto/config
在 Windows 上,位于 Nikto 的安装目录。
# 常用配置选项
host
: 要扫描的目标主机名或 IP 地址。port
: 要扫描的端口号,默认为 80。ssl
: 是否使用 SSL 连接,默认为 false。timeout
: 连接超时时间,默认为 10 秒。plugins
: 要使用的插件列表,默认为所有插件。dbcheck
: 是否检查 Nikto 的漏洞数据库,默认为 true。proxy
: 代理服务器的地址和端口号。
配置文件内容
######################################################################################################### | |
# CONFIG STUFF | |
# $Id: config.txt 94 2009-01-21 22:47:25Z deity $ | |
######################################################################################################### | |
# default command line options, can't be an option that requires a value. used for ALL runs. | |
# CLIOPTS=-g -a | |
# ports never to scan | |
SKIPPORTS=21 111 | |
# User-Agent variables: | |
# @VERSION - Nikto version | |
# @TESTID - Test identifier | |
# @EVASIONS - List of active evasions | |
USERAGENT=Mozilla/5.00 (Nikto/@VERSION) (Evasions:@EVASIONS) (Test:@TESTID) | |
# RFI URL. This remote file should return a phpinfo call, for example: <?php phpinfo(); ?> | |
# You may use the one below, if you like. | |
#RFIURL=http://cirt.net/rfiinc.txt? | |
# IDs never to alert on (Note: this only works for IDs loaded from db_tests) | |
#SKIPIDS= | |
# The DTD | |
NIKTODTD=docs/nikto.dtd | |
# the default HTTP version to try... can/will be changed as necessary | |
DEFAULTHTTPVER=1.0 | |
# Nikto can submit updated version strings to CIRT.net. It won't do this w/o permission. You should | |
# send updates because it makes the data better for everyone ;) *NO* server specific information | |
# such as IP or name is sent, just the relevant version information. | |
# UPDATES=yes - ask before each submission if it should send | |
# UPDATES=no - don't ask, don't send | |
# UPDATES=auto - automatically attempt submission *without prompting* | |
UPDATES=yes |