nikto是一款开源的Web服务器扫描工具,主要用于检测Web服务器的漏洞、不安全配置和默认文件,它支持HTTP和HTTPS协议,能够扫描超过6700个潜在的危险文件/程序、检查过时的服务器版本以及多种已知的安全漏洞,在Linux系统中安装nikto可以通过源码编译或包管理器两种方式,其中源码编译适用于大多数Linux发行版,而包管理器则能简化安装过程,以下将详细介绍两种安装方法的步骤及注意事项。
通过包管理器安装(推荐新手用户)
对于使用Debian/Ubuntu或CentOS/RHEL等主流发行版的用户,可以通过系统自带的包管理器直接安装nikto,过程简单快捷。
Debian/Ubuntu系统
Debian/Ubuntu系统使用apt
包管理器,安装前需确保系统软件包列表已更新。
sudo apt update # 更新软件包列表 sudo apt install nikto # 安装nikto
安装完成后,可通过命令nikto -h
验证是否安装成功,若显示帮助信息则表示安装成功。
CentOS/RHEL系统
CentOS/RHEL系统使用yum
或dnf
包管理器(CentOS 7及以下使用yum
,CentOS 8+及RHEL 8+使用dnf
)。
# CentOS 7及以下 sudo yum install nikto # CentOS 8+及RHEL 8+ sudo dnf install nikto
同样,通过nikto -h
命令可验证安装。
优点:安装过程简单,无需手动处理依赖,系统会自动解决依赖关系。
缺点:包管理器中的nikto版本可能较旧,无法获取最新功能和漏洞库更新。
通过源码编译安装(推荐追求最新版本的用户)
若需使用nikto的最新版本(如GitHub上的master分支),或系统包管理器未提供nikto包,可通过源码编译安装,以下是详细步骤:
安装编译依赖
nikto基于Perl开发,编译时需安装Perl解释器、编译工具及SSL支持库,不同发行版的依赖安装命令如下:
发行版 | 包管理器 | 依赖包列表 | 安装命令 |
---|---|---|---|
Debian/Ubuntu | apt | perl, make, gcc, libssl-dev, zlib1g-dev | sudo apt install perl make gcc libssl-dev zlib1g-dev |
CentOS/RHEL 7 | yum | perl, make, gcc, openssl-devel, zlib-devel | sudo yum install perl make gcc openssl-devel zlib-devel |
CentOS/RHEL 8+ | dnf | perl, make, gcc, openssl-devel, zlib-devel | sudo dnf install perl make gcc openssl-devel zlib-devel |
下载nikto源码
nikto的官方源码托管在GitHub上,可通过wget
或curl
下载最新版本(以下以master分支为例):
wget https://github.com/sullo/nikto/archive/refs/heads/master.zip -O nikto-master.zip # 下载源码压缩包 unzip nikto-master.zip # 解压压缩包 cd nikto-master # 进入源码目录
编译并安装
nikto的源码无需传统编译,通过自带的make.pl
脚本即可完成安装:
sudo perl make.pl --install # 执行安装脚本
默认情况下,nikto会被安装到/usr/local/bin/nikto
目录,系统会自动将其添加到PATH环境变量中,无需手动配置。
验证安装
执行以下命令检查nikto版本及帮助信息:
nikto -version # 查看版本信息(如Nikto Version 2.5.0) nikto -h # 显示帮助信息
若输出正常,则表示安装成功。
安装后的配置与使用
配置文件位置
nikto的配置文件位于/etc/nikto/nikto.conf
,用户可根据需求修改扫描参数(如扫描端口、超时时间、排除的URL等),修改默认扫描端口:
sudo nano /etc/nikto/nikto.conf # 使用文本编辑器打开配置文件
找到PORT
选项,修改为所需端口(如PORT=8080
),保存退出。
基本使用示例
nikto的基本扫描命令格式为nikto -h <目标IP/域名> [选项]
,常用选项如下:
-h
:指定目标URL(如http://example.com
)。-p
:指定扫描端口(如-p 80,443
)。-ssl
:启用SSL扫描(针对HTTPS目标)。-C all
:扫描所有配置项(默认仅扫描部分)。-output
:将结果保存到文件(如-output scan_results.txt
)。
示例:扫描本地HTTP服务器(端口8080),结果保存至local_scan.txt
:
nikto -h http://localhost:8080 -ssl -C all -output local_scan.txt
更新nikto
若通过源码安装,可通过定期重新下载源码并执行安装脚本来更新:
cd /tmp # 进入临时目录 wget https://github.com/sullo/nikto/archive/refs/heads/master.zip -O nikto-master.zip unzip nikto-master.zip cd nikto-master sudo perl make.pl --install --update # 更新安装(若支持,否则重新安装)
通过包管理器安装的用户,可通过以下命令更新:
# Debian/Ubuntu sudo apt update && sudo apt upgrade nikto # CentOS/RHEL 7 sudo yum update nikto # CentOS/RHEL 8+ sudo dnf update nikto
注意事项
- 权限问题:扫描目标需获得授权,未经授权的扫描可能违反法律法规。
- 防火墙设置:若扫描目标为远程服务器,需确保目标防火墙允许扫描端口(如80、443)的入站连接。
- 性能影响:nikto扫描可能对目标服务器造成一定负载,建议在非高峰期执行。
- 依赖完整性:源码编译时需确保所有依赖安装完整,否则可能报错(如缺少
libssl-dev
会导致SSL扫描功能异常)。
相关问答FAQs
Q1:nikto安装后执行命令提示“perl: command not found”,如何解决?
A:该错误表明系统未安装Perl解释器,可根据发行版安装Perl:
- Debian/Ubuntu:
sudo apt install perl
- CentOS/RHEL:
sudo yum install perl
或sudo dnf install perl
安装完成后重新执行nikto命令即可。
Q2:nikto扫描时提示“SSL not available”,无法扫描HTTPS目标,如何解决?
A:该错误通常因缺少SSL开发库导致,需安装对应发行版的SSL开发包:
- Debian/Ubuntu:
sudo apt install libssl-dev
- CentOS/RHEL:
sudo yum install openssl-devel
或sudo dnf install openssl-devel
安装完成后重新编译nikto(源码安装时需重新执行sudo perl make.pl --install
),即可启用SSL扫描功能。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/21184.html