目录
✨ 核心功能一览
🚀 基本使用方法
1. 扫描单个目标
2. 指定端口扫描
3. 扫描 HTTPS 目标
使用 -ssl 参数主要有两个核心原因
⚙️ 高级使用技巧
1. 使用代理扫描
2. 保存扫描结果
3. 使用特定插件
4.交互命令
✨ 核心功能一览
Nikto 是一款开源的 Web 服务器扫描工具,专为检测 Web 服务器的安全漏洞而设计。它能够识别大量潜在危险文件、CGI,检查服务器配置错误、默认或不安全的文件和程序,以及过时的服务器软件。
- 全面漏洞检测:支持检测 SQL 注入、XSS、文件包含等常见 Web 漏洞。
- 灵活配置:允许用户自定义扫描规则、端口、协议等选项。
- 多种输出格式:支持将扫描结果保存为 TXT、HTML 等多种格式,方便后续分析。
- 插件扩展:可通过插件扩展扫描功能,适应特定需求。
- 自动更新:其扫描数据库和插件可自动更新,以应对新的漏洞。
🚀 基本使用方法
1. 扫描单个目标
最基本的命令是指定目标 URL 或 IP 地址:
nikto -h http://example.com
或
nikto -h 192.168.1.1
2. 指定端口扫描
如果目标服务运行在非标准端口,可以使用 -p
参数:
nikto -h example.com -p 8080
多个端口用逗号分隔:
nikto -h example.com -p 80,443,8080
3. 扫描 HTTPS 目标
对 HTTPS 服务进行扫描,可以忽略证书检查(使用 -ssl
参数)
nikto -h https://example.com -ssl
使用 -ssl
参数主要有两个核心原因
切换协议
- 默认情况下,
nikto -h example.com
会使用 HTTP(端口80)去连接。 - 当目标是
https://example.com
时,你必须加-ssl
参数,Nikto 才会改用 HTTPS(端口443)协议进行连接。
忽略证书错误
- 测试环境的HTTPS网站常使用自签名或无效的证书。
- 不加
-ssl
参数,Nikto 会像浏览器一样报错并停止扫描。 - 加上
-ssl
参数就等于告诉 Nikto:“别管证书警告,直接连接”,从而确保扫描能顺利进行。
⚙️ 高级使用技巧
1. 使用代理扫描
通过代理进行扫描,可以帮助隐藏源IP地址或访问特定网络环境中的目标。
nikto -h http://example.com -useproxy http://proxy_address:port
2. 保存扫描结果
Nikto 支持将扫描结果输出到文件,便于后续分析。支持多种格式(TXT、HTML、CSV等)。
nikto -h example.com -o /path/to/results.txt
指定 HTML 格式输出:
nikto -h example.com -o /path/to/report.html -Format htm
3. 使用特定插件
Nikto 支持通过插件扩展其扫描功能。
nikto -h example.com -Plugins "apacheusers"
4.交互命令
按键 | 功能说明 | 使用场景举例 |
(Space) | 报告当前扫描状态。显示已用时间、剩余时间、当前正在检查的请求等信息。 | 扫描了很长时间,你想知道“现在到哪了?还要扫多久?” |
| 切换详细(Verbose)模式。按一次开启,再按一次关闭。开启后会显示更多扫描细节,例如每个测试的 ID 和它针对的 URL。 | 某个测试发现了有趣的东西,你想立刻知道 Nikto 具体发送了什么请求才导致这个结果,而不必等到最后看报告。 |
| 切换调试(Debug)模式。按一次开启,再按一次关闭。这会输出极其详细的信息,包括完整的 HTTP 请求和响应头。会刷屏,仅用于排错。 | 扫描行为不符合预期,或者你想深入分析 Nikto 与服务器之间的具体通信内容以排查问题。 |
| 显示错误信息。报告扫描过程中遇到的连接错误、超时等问题。 | 你想知道扫描是否顺利,或者为什么对某个特定路径的测试失败了。 |
| 显示扫描进度。与空格键类似,但信息更简洁。 | 快速查看进度。 |
| 退出(Quit)扫描。立即停止当前扫描并退出 Nikto。 | 你发现扫错了目标,或者需要中断扫描。 |
| 强制中断。立即终止程序。效果同 | 最直接的中断方式。 |