一、Nikto简介
Nikto 是一款开放源代码的、功能强大的 WEB 扫描评估软件,能对 web 服务器多种安全项目进行测试的扫描软件,去寻找已知有名的漏洞,能在230多种服务器上扫描出2600多种有潜在危险的文件、CGI 及其他问题,它可以扫描指定主机的 WEB 类型、主机名、特定目录、COOKIE、特定 CGI 漏洞、返回主机允许的 http 模式等等。
它也使用 LibWhiske 库,但通常比 Whisker 更新的更为频繁。Nikto 是网管安全人员必备的 WEB 审计工具之一。
Nikto 是 perl 语言开发的,其特点扫描全面,速度快。
二、安装
- 安装perl
$ sudo apt-get install perl
- 安装libwhisker
$ wget https://sourceforge.net/projects/whisker/files/libwhisker/2.5/libwhisker2-2.5.tar.gz
$ tar xzvf libwhisker2-2.5.tar.gz
$ mkdir -p /usr/local/share/perl/5.26.1/ #若没有创建该目录,在后面安装libwhisker时会报错
$ cd libwhisker2-2.5
$ perl Makefile.pl install
- 下载nikto
$ git clone https://github.com/sullo/nikto.git
三、命令行参数
以下所有选项,凡是有带 + 号的代表后面需要跟一个值:
-ask+
Whether to ask about submitting updates
yes 询问每个(默认)
no 不用询问,且不不发送
auto 不用询问,只是发送
-Cgidirs+ 扫描CGI目录:"none", "all", 或者类似 "/cgi/ /cgi-a/"
-config+ 使用指定的 config 文件来替代安装在本地的 config.txt 文件
-Display+
开启/关闭 Nikto 输出的显示
1 显示重定向
2 显示已收到的cookies信息
3 显示所有200/OK的响应
4 显示有认证请求的URL
D Debug输出
E 显示所有HTTP错误
P 将进度打印到标准输出
S 清除ip和主机的输出
V 详细输出
-dbcheck 检查数据库和其他关键文件的语法错误
-evasion+
使用 LibWhisker 中对 IDS 的逃逸技术,可使用以下几种类型:
1 随机URL编码(非UTF-8方式)
2 自选择路径(/./)
3 虚假的请求结束
4 前置长随机字符串
5 参数欺骗
6 使用制表符作为请求的分隔符
7 改变URL的大小写
8 使用Windows路径分隔符\替换/
A 使用回车(0x0d)作为请求的分隔符
B 使用二进制值0x0b作为请求的分隔符
-Format+
指定检测报告输出文件的格式
csv Comma-separated-value
htm HTML格式
msf+ 记录到Metasploit
nbe Nessus NBE格式
txt 文本格式
xml XML格式
-Help 帮助信息
-host+ 目标主机(主机名、IP地址、主机列表文件)
-IgnoreCode Ignore Codes--treat as negative responses
-id+ ID和密码对于授权的HTTP认证。格式:id:password 或 id:pass:realm
-key+ 客户端证书密钥文件
--list-plugins 列出所有可用的插件,不执行测试
-maxtime+ 每个主机的最大测试时间
-mutate+
变化猜测技术
1 使用所有的root目录测试所有文件
2 猜测密码文件名字
3 列举Apache的用户名(/~user)
4 列举cgiwrap的用户名(/cgi-bin/cgiwrap/~user)
5 尝试暴力破解子域名,假设主机名是父域名
6 尝试从提供的字典文件中猜测目录名
-mutate-options 提供突变的信息
-nointeractive 禁用互动功能
-nolookup 禁用DNS查找
-nossl 禁用SSL的使用
-no404 禁止nikto尝试猜测404页面
-output+ 指定报告输出路径和文件名
-Pause+ 每次测试之间的延迟时间(seconds, integer or float)
-Plugins+ 要运行的插件列表(default: ALL)
-port+ 扫描端口指定,默认为80端口。
-RSAcert+ 客户端证书文件
-root+ Prepend root value to all requests, format is /directory
-Save Save positive responses to this directory ('.' for auto-name)
-ssl 强制在端口上使用SSL模式
-Tuning+
控制 Nikto 使用不同的方式来扫描目标。
0 文件上传
1.日志文件
2.默认的文件
3 信息泄漏
4 注入(XSS/Script/HTML)
5 远程文件检索(Web 目录中)
6 拒绝服务(DOS)
7 远程文件检索(服务器)
8 代码执行/远程shell
9 SQL注入
a 认证绕过
b 软件识别
c Remote Source Inclusion
x 反向调优选项(例如:包括除指定外的所有文件)
-timeout+ 每个请求的超时时间,默认为10秒
-Userdbs
只加载用户数据库,而不加载标准数据库
all---禁用标准dbs,只加载用户dbs
tests-仅禁用db_tests和加载udb_tests
-until 运行到指定的时间或持续时间
-update 从 CIRT.net 更新插件和数据库
-useproxy 使用在 nikto.conf 中定义的代理
-Version 打印插件和数据库版本
-vhost+ Virtual host (for Host header)
四、nikto基本使用
1、扫描一个主机
nikto -h 104.192.80.196
2、扫描指定端口
nikto -h 104.192.80.196 -p 80
3、使用完整的url进行扫描
nikto -h https://104.192.80.196:443/
4、保存结果
nikto -h 104.192.80.196 -p 80 -o result.html
格式化结果
nikto -h 104.192.80.196 -p 80 -Format xml -o result.xml
这里将结果输入格式化为xml格式,其他还支持csv、html、msf、txt等格式。如果不指定Format的话,会根据-o后面文件名的后缀名来决定。
5、扫描https时指定ssl
nikto -h 104.192.80.196 -p 443 -ssl
6、同时扫描多个端口
nikto -h 104.192.80.196 -p 80,443,8080
7、同时扫描多个主机
创建一个主机列表文件 hostlist.txt :
104.192.80.196
https://www.baidu.com:443/
www.163.com
www.cnblogs.com
然后使用nikto扫描:
nikto -h hostlist.txt
8、将nmap扫描到的结果直接给nikto
nmap -p80 192.168.4.0/24 -oG - | nikto -h - -o net192.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码