|
```html Nikto 跑完一台目标机,用教屏幕上滚出 6700 多条潜在问题。用教别慌,用教这里面大部分是用教信息泄露和配置缺陷,真正能直接打进去的用教没几条。但如果你连它扫出来的用教东西都读不懂,那这工具算白用了。用教 先装。用教Kali 自带,用教不用折腾。用教其他系统上 apt install nikto 或者去 GitHub 拉源码,用教Perl 环境跑起来就行。用教安装这一步没什么好说的用教,真正要聊的用教是怎么让它干活。 最基础的用教用法就一行:nikto -h http://target.com。跑起来之后它会做几件事——检查服务器版本、找危险文件、看有没有默认配置、翻 CGI 脚本的漏洞。默认扫描大概几分钟,取决于目标响应速度和网络状况。我遇到过扫一个内网老站,跑了快二十分钟,因为它有几千个目录,Nikto 一个个去试,慢得让人想砸键盘。 想快?加 -Tuning 参数。这个参数值得单独拿出来说,因为它直接决定你扫什么、不扫什么。比如 -Tuning 1 只看有意思的文件,-Tuning 2 只查配置错误,-Tuning 9 专门抓 SQL 注入。实际渗透测试里我常用 -Tuning 123b,文件、配置、信息泄露、软件识别一起上,省时间。别贪心全开,全开就是给自己找罪受,输出多到你看不完。 代理别忘了。扫外网目标不挂代理,IP 容易被封。Nikto 支持 -useproxy http://127.0.0.1:8080,配合 Burp 或者 Proxychains 都行。有次我忘了挂代理,扫到一半目标直接返回 403,后面所有请求全废,只能换 IP 重来。这个坑踩一次就够了。 输出格式也讲究。默认往屏幕上怼,信息一多就乱。加 -o result.html -F html 存成网页,浏览器打开慢慢看。或者 -F csv 丢进 Excel 里排序筛选,找高危项特别方便。我习惯先存 HTML,再用 grep 过滤关键词,比如 grep -i "vulnerable",把真正有问题的条目拎出来。 Nikto 的扫描结果里,OSVDB 编号已经过时了,很多条目对应的漏洞信息早就不维护。看到 OSVDB 开头的别太当回事,重点看它描述的具体路径和文件。比如它报 /backup/ 目录可访问,这个比什么编号都实在——直接浏览器打开看看里面有没有数据库备份文件,比对着编号查资料快得多。 还有一个坑:Nikto 的误报率不低。它说某文件存在,可能只是服务器返回了自定义 404 页面。所以扫完别急着写报告,手动验证几条。用 curl 加 -I 看响应头,或者浏览器直接访问,确认了再往报告里写。我见过新手把 Nikto 输出原封不动贴进渗透报告,结果客户那边一验证全是误报,场面相当尴尬。 扫描 HTTPS 站点加 -ssl,遇到自签名证书加 -nossl 跳过验证。这两个参数经常一起用,比如 nikto -h https://target.com -ssl -nossl。不加的话要么连不上,要么卡在证书验证那一步无限等待。 最后说个实际场景。你拿到一个 IP,不知道上面跑了什么 Web 服务。先 nmap 扫端口,发现 80 和 443 开着。然后 nikto -h http://IP -p 80 和 nikto -h https://IP -p 443 -ssl 各跑一遍。对比两份结果,往往 HTTPS 那边会漏掉一些 HTTP 才有的问题,因为配置不同。两个都扫,别偷懒。 Nikto 不是万能工具,它更像一个信息收集器。真正有价值的发现往往来自你手动跟进它给出的线索。扫完只是开始,后面还有一堆活要干。 ``` |