nikto这东西,老牌开源Web扫描器,命令行一敲,几千个已知危险文件、过期组件、服务器配置漏洞就给你列出来。它不玩花活,就干一件事——把目标站点的“底裤”掀开给你看。下载它?十分钟的事,但很多人卡在第一步:不知道去哪下,或者下错版本。
直接说,官方渠道就俩:GitHub仓库和CIRT.net官网。GitHub上搜“sullo/nikto”,那是作者维护的主仓库,代码实时更新,适合懂点Git的人。不会用Git?那去cirt.net/nikto,页面最底下有压缩包下载链接,zip格式,解压即用。别去什么第三方软件站下,那些捆绑了广告插件甚至后门的“nikto中文版”,纯粹是坑人。我见过有人从某下载站弄了个“绿色版”,一运行,杀毒软件直接报毒——那不是nikto,那是木马穿了马甲。
下载之前,先确认你系统里有Perl。nikto是Perl写的,Windows上你得装个Strawberry Perl或者ActivePerl,Linux和macOS自带Perl,省事。Windows用户还有个偷懒办法:用WSL(Windows Subsystem for Linux),装个Ubuntu,然后apt install nikto,一条命令搞定,连依赖都给你配好。不过apt源里的nikto版本可能旧一点,比如Ubuntu 20.04自带的还是2.1.5,而GitHub上已经更新到2.5.0了——版本旧不代表不能用,但新版本对某些新漏洞的检测更全,自己权衡。
解压之后,进目录,先跑一句perl nikto.pl -Version试试。看到版本号输出,说明环境没问题。Linux下如果提示没权限,记得chmod +x nikto.pl。Windows下用命令行窗口,切到nikto目录,同样perl命令跑。跑通了,你会看到一堆数据库加载信息,什么“Scan Database: db_tests”,什么“+ Target IP”,别慌,那是它在加载几千条测试规则,正常现象。
真正用起来,基本命令就一个:perl nikto.pl -h http://目标地址。-h后面跟URL或者IP都行。想扫特定端口,加个-p 8080。想调速度,用-Tuning参数控制扫描类型,比如只查文件泄露就写-Tuning 1。第一次跑,你会被输出刷屏——几百行测试结果,什么“/admin/”存在,什么“Apache版本泄露”,看着吓人,其实大部分是低危信息。你得学会看重点:状态码200的条目,比404的值得关注;带“OSVDB”编号的,说明是知名漏洞库收录的问题,需要认真对待。
有个细节容易忽略:nikto默认只扫80端口,如果你目标是HTTPS站点,记得加-ssl参数,或者直接写https://开头。不然扫半天,返回全是“Connection refused”,白忙活。还有,nikto不是越权扫描器,它只做被动识别和简单请求,不会像sqlmap那样注入攻击。所以扫出来漏洞,只是“可能存在”,具体能不能利用,你得自己手动验证。别拿nikto的结果直接当攻击报告交差,会被同行笑话的。
最后说个实用技巧:把扫描结果存成HTML格式,用-o report.html -F html,方便存档或者发给同事看。默认的纯文本输出在终端里看还行,一旦结果超过一屏,翻起来能累死你。存成文件,用浏览器打开,按状态码排序,一眼就能找出最可疑的路径。
下载这事,说穿了就三步:找对源,装Perl,跑版本命令。别在下载环节纠结太久,nikto真正的难点在解读输出——那需要你懂点HTTP状态码、懂点服务器中间件,甚至懂点漏洞原理。工具只是放大镜,眼睛还得长你自己头上。搞定了下载和基础使用,剩下的就是拿个测试站点练手,扫个十几次,自然就熟了。