文章总结: 本文介绍Kali工具nikto,一款Perl编写的Web服务器扫描器,拥有7000多项检查,用于检测过时版本、危险文件、配置错误及缺失安全头。文章详解其参数用法、与Burp联动方法、Tuning代码表及实战命令,并强调授权扫描、生产环境限速等合规要点。建议结合Burp验证误报,提升扫描效率。
综合评分: 82
文章分类: 安全工具,渗透测试,WEB安全
每天学一个 Kali 工具 · Day21 nikto:Web 服务器的老牌”体检医生”
原创
0day收割机
0day收割机
0day收割机
2026年9月21日 19:43
山东
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
每天学一个 Kali 工具 · Day21
nikto:Web 服务器的老牌”体检医生”
摘要:「每天学一个 Kali 工具」第二十一天。昨天 davtest 敲开了进攻篇的大门,今天请出 Web 漏洞扫描界的元老——nikto:Perl 编写的 Web 服务器扫描器,七千多项检查,专治过时版本、危险文件、错误配置和缺失安全头。它还能把全部流量喂给 Burp Suite 联动分析。文末附完整参数速查和 Tuning 代码表,建议收藏。
写在前面
Day02 到 Day05,我们学了四件目录爆破兵器(dirb、feroxbuster、ffuf、gobuster),它们回答的问题是:“这个服务器上有什么路径?”
Day19 的 Burp Suite 回答的是:“这个请求的每个字节能不能做手脚?”
今天的 nikto 回答的问题更进一步:“这台 Web 服务器本身,病了吗?”
软件版本过时吗?有没有不该存在的默认文件?管理后台暴露了吗?安全响应头配齐了吗?CGI 目录能被利用吗?——nikto 拿着七千多项检查清单,把 Web 服务器从头到脚体检一遍,直接出病历。
它是渗透测试流程里雷打不动的一环:nmap 发现 80 端口 → nikto 体检 → Burp 精细手术。OffSec 的 WEB-200 课程专门给它开了章节。
一、nikto 是什么?
Kali 官网的定义:Nikto 是一款 Web 服务器扫描器(Perl 编写),通过 CSV 格式的检查数据库对 Web 服务器执行全面的漏洞测试,支持文本/HTML 等多种输出格式,支持 SSL、代理和 Cookie。
三个身份标签:
| 标签 | 说明 |
| — | — |
| 元老资历 | 2001 年诞生,比大多数读者的安全生涯都长,至今仍在维护更新 |
| 数据库驱动 | 检查项存在 CSV 数据库里(7000+ 项),更新数据库就是更新”病历知识库” |
| 轻量敏捷 | 2.15 MB,依赖只有 Perl 和几个库——和 Burp 的 344MB 形成鲜明对比 |
nikto 检查什么? 官方归纳的核心类别:
- 过时/存在漏洞的服务器软件版本
- 危险的默认文件和 CGI 脚本
- 服务器配置错误(目录列表开启、可写目录等)
- 缺失的安全响应头(X-Frame-Options、CSP 等)
- 信息泄露(版本号、内部路径、注释里的敏感信息)
- 管理后台、安装脚本等敏感入口暴露
二、快速上手:官网示例精讲
官网给的示例:对 192.168.0.102 做扫描,显示等级 1234EP,只跑 1/2/3/b/d/e 六类检查,HTML 报告输出:
nikto -Display 1234EP -o report.html -Format htm -Tuning 123bde -host 192.168.0.102
官网输出(节选):
+ Target IP: 192.168.0.102
+ Server: Apache/2.2.22 (Ubuntu)
+ The X-XSS-Protection header is not defined...
+ Apache/2.2.22 appears to be outdated...
+ End Time: 2018-03-23 10:50:44
逐段解读:
-
Server: Apache/2.2.22 (Ubuntu):nikto 第一件事就是抓服务器 Banner——2.2.22 是 2012 年的版本,早已停止维护;
-
X-XSS-Protection header is not defined:缺失安全响应头,一条典型的”配置病”;
-
Apache/2.2.22 appears to be outdated:直接判定软件过时——这就是 nikto 的看家本领,对着版本数据库比年龄;
-
End Time:扫描耗时统计,报告收尾。
参数拆解:
| 片段 | 含义 |
| — | — |
| -host 192.168.0.102 | 目标主机(也可用 -url) |
| -Display 1234EP | 显示控制:1 重定向、2 Cookie、3 所有 200/OK 响应、4 需认证的 URL、E 错误、P 进度 |
| -Tuning 123bde | 只跑指定类别的检查(代码表见第四节) |
| -o report.html -Format htm | 输出 HTML 报告 |
三、和 Burp Suite 联动:流量全进航母
Day19 学的 Burp,今天就能和 nikto 打配合——nikto 支持走代理:
# 1. 编辑 nikto.conf,把代理指向 Burp
PROXYHOST=127.0.0.1
PROXYPORT=8080
# 2. nikto 挂代理扫描(Burp 要先开且关闭拦截,免得流量卡住)
nikto -host http://target -useproxy
这样 nikto 打出的每一个请求都会进 Burp 的 Proxy History 和 Site Map:nikto 负责地毯式体检,Burp 负责把可疑请求捞出来 Send to Repeater 精细手术。老兵 + 航母,Web 测试的标准双打。
四、参数速查表
▍目标指定
| | |
| — | — |
| -host <主机/URL> | 目标主机或 URL |
| -url <主机/URL> | -host 的别名 |
| -port <端口> | 目标端口,默认 80 |
| -ssl | 强制对端口使用 SSL |
| -nossl | 禁用 SSL |
| -ipv4 / -ipv6 | 只用 IPv4 / IPv6 |
| -check6 | 检查 IPv6 是否可用 |
| -vhost <主机名> | 虚拟主机(用于 Host 头) |
▍扫描控制(精华所在)
| | |
| — | — |
| -Tuning <代码> | 扫描调优 :只跑指定类别的检查(代码表见下) |
| -Plugins <列表> | 只运行指定插件 |
| -list-plugins | 列出所有可用插件 |
| -evasion <编号> | 编码规避技术 :改变请求形态躲避 IDS/过滤 |
| -mutate <编号> | 猜测额外文件名(对发现的目录做变体扩展) |
| -mutate-options | 为 mutate 提供附加信息 |
| -maxtime <秒> | 单主机最大测试时长 |
| -timeout <秒> | 单请求超时,默认 10 秒 |
| -Pause <秒> | 每个测试之间的暂停(放慢节奏) |
| -Cgidirs <目录> | 指定要扫描的 CGI 目录 |
| -Platform <平台> | 指定目标平台 |
| -followredirects | 跟随 3xx 重定向 |
| -root <路径> | 给所有请求加统一前缀路径 |
▍-Tuning 代码表(背下来,扫描效率翻倍)
| 代码 | 类别 | 代码 | 类别 |
| — | — | — | — |
| 0 | 文件上传 | 8 | 命令执行/远程 Shell |
| 1 | 日志中见过的有趣文件 | 9 | SQL 注入 |
| 2 | 错误配置/默认文件 | a | 认证绕过 |
| 3 | 信息泄露 | b | 软件识别 |
| 4 | 注入(XSS/脚本) | c | 远程源码包含 |
| 5 | 远程文件获取(Web 根内) | d | Web 服务 |
| 6 | 拒绝服务(DoS) | e | 管理控制台 |
| 7 | 远程文件获取(全服务器) | x | 反向排除 (跑除了它以外的所有) |
组合直接连写:-Tuning 123bde(官网示例同款);排除某类用 x:-Tuning 9x 表示”除了 SQL 注入都跑”。
▍认证与代理
| | |
| — | — |
| -id <user:pass> | HTTP 认证 |
| -key <文件> | 客户端证书私钥 |
| -RSAcert <文件> | 客户端证书 |
| -useproxy | 使用 nikto.conf 里定义的代理(接 Burp 就靠它) |
| -nocookies | 不使用响应里的 Cookie |
| -useragent <UA> | 强制 User-Agent |
| -Add-header <头> | 给请求附加 HTTP 头 |
▍输出与报告
| | |
| — | — |
| -o / -output <文件> | 输出到文件 |
| -Format <格式> | 输出格式(txt/htm/csv/xml/json 等) |
| -Display <代码> | 终端显示控制:1 重定向、2 Cookie、3 全部 200/OK、4 认证 URL、E 错误、P 进度、V 详细 |
| -Save <目录> | 把阳性响应保存到目录——可回放 |
| -nointeractive | 禁用交互特性 |
| -noslash | 去掉 URL 末尾斜杠 |
▍数据库与配置
| | |
| — | — |
| -dbcheck | 检查数据库和关键文件完整性 |
| -update | 更新检查数据库(老手扫前必跑) |
| -nocheck | 启动时不检查更新 |
| -config <文件> | 使用指定配置文件 |
| -Option <选项> | 覆盖 nikto.conf 里的某个选项 |
| -Version | 打印插件和数据库版本 |
| -404code <代码> | 把这些 HTTP 状态码当作”不存在”忽略 |
| -404string <字符串> | 响应体里出现该字符串就当作 404 |
| -no404 | 禁用 nikto 的 404 页面猜测 |
| -nolookup | 禁用 DNS 反查 |
五、实战速查
# 1. 最简扫描:一条命令体检
nikto -host http://192.168.0.102
# 2. 官网同款:调优扫描 + HTML 报告
nikto -Display 1234EP -o report.html -Format htm -Tuning 123bde -host 192.168.0.102
# 3. 扫前先更新数据库(病历知识库要最新)
nikto -update
# 4. HTTPS 站点强制 SSL
nikto -host target.com -ssl -port 443
# 5. 非标准端口的管理后台体检
nikto -host http://192.168.0.102:8080
# 6. 只测高危类别:命令执行 + SQL 注入 + 认证绕过
nikto -host http://target -Tuning 89a
# 7. 挂 Burp 代理联动扫描
nikto -host http://target -useproxy
# 8. 带认证扫描内部系统
nikto -host http://target -id admin:pass123
# 9. 温柔模式:每个测试间隔 2 秒 + 限时 10 分钟
nikto -host http://target -Pause 2 -maxtime 600s
# 10. 阳性响应存档,供后续回放分析
nikto -host http://target -Save ./nikto_results
# 11. 多格式报告一次出齐
nikto -host http://target -o report.csv -Format csv
nikto -host http://target -o report.xml -Format xml
# 12. IDS 规避:改变请求编码形态(仅限授权评估)
nikto -host http://target -evasion 1
六、合规提醒
nikto 是主动漏洞扫描器,动静比目录爆破更大:
-
书面授权
:nikto 会对目标发起数千个探测请求(含注入类、DoS 类测试项),未授权扫描可能直接触发对方告警甚至法律责任;
-
生产环境限速
:默认速度对老旧系统可能过载,
-Pause放慢、-maxtime限时、避开业务高峰; -
Tuning 排除危险项
:给客户生产系统体检时用
-Tuning x6(排除 DoS 类)更稳妥; -
报告保管
:HTML/CSV 报告含完整漏洞清单,等同攻击地图,加密保管按项目流程流转;
-
误报要人工复核
:nikto 是老牌扫描器,发现项要结合 Burp/手工验证再写进报告,直接照搬输出容易闹笑话。
今日小结
-
nikto
= Web 服务器体检医生:2001 年出道至今仍在更新,7000+ 项检查存在 CSV 数据库里,
-update保持病历最新; -
检查重心和目录爆破不同:版本过时、危险文件、配置错误、缺失安全头——是”服务器本身病没病”,不是”有什么路径”;
-
-Tuning 代码表是效率灵魂
:只跑关心的类别,官网示例
123bde值得当默认起手式; -
-useproxy挂 Burp 联动:nikto 地毯式体检 + Burp 精细手术,Web 测试标准双打;
-
输出格式全家福(txt/htm/csv/xml/json)+
-Save阳性响应存档回放,报告链路完整。
觉得有用的话,点赞 + 在看 + 转发 给一起学安全的朋友
关注「每天学一个 Kali 工具」,明天见!
参考资料
· Kali 官方工具页:https://www.kali.org/tools/nikto/
· 项目主页:https://cirt.net/Nikto2
· GitHub:https://github.com/sullo/nikto
· OffSec WEB-200 课程:Introduction to Nikto
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:0day收割机 0day收割机
0day收割机《每天学一个 Kali 工具 · Day21 nikto:Web 服务器的老牌”体检医生”》