Nikto查看源代码讨论查看历史
Nikto是一款开源的(GPL)网页服务器扫描器,它可以对网页服务器进行全面的多种扫描,包含超过3300种有潜在危险的文件CGIs;超过625种服务器版本;超过230种特定服务器问题。[1]
简介
Nikto是一款开源的(GPL)网页服务器扫描器,实用的操作系统:Linux、FreeBSD、UNIX,软件大小是162KB,它可以对网页服务器进行全面的多种扫描,包含超过3300种有潜在危险的文件/CGIs;超过625种服务器版本;超过230种特定服务器问题。扫描项和插件可以自动更新(如果需要)。基于Whisker/libwhisker完成其底层功能。这是一款非常棒的工具,但其软件本身并不经常更新,最新和最危险的可能检测不到。
Nikto的作者是Chris Sullo,他是开放安全基金会(Open Security Foundation) 的财务总监。
功能
Nikto用来检查网页服务器和其他多个范畴内的项目:
- 错误的配置
- 默认文件和脚本
- 不安全的文件和脚本
- 过时软件
Nikto使用Rain Forest Puppy的LibWhisker实现HTTP功能,并且可以检查HTTP和HTTPS。同时支持基本的端口扫描以判定网页服务器是否运行在其他开放端口。 Nikto可以使用'update'选项从主版本站点自动更新,以应对新的弱点。 Nikto可以在启动时加载用户自定义的检测规则,当然前提是自定义检测规则已经放在了user_scan_database.db文件内(这个文件在插件目录下);即使使用-update选项升级,自定义的检测规则也不会被覆盖。Nikto也具有反入侵探测(IDS)功能。
系统要求
Unix:
Perl、NET::SSLeay、OpenSSL (只在需要SSL扫描时才用到)。
Windows
ActiveState编译的Net::SSL (只在需要SSL扫描时才用到). 可以考虑使用Cygwin。
Nikto-操作方法
从官方网站上下载nikto-current.tar.gz文件,在Linux系统解压操作:
tar -xvf nikto-current.tar.gz
gzip -d nikto-current.tar
解压后的结果如下所示:
Config.txt、docs、kbase、plugins、 templates
Nikto的使用说明:
Nikto扫描需要主机目标IP、主机端口。默认扫描的是80端口。扫描主机目标IP地址可以使用选项-h(host)。下面将扫描IP为 192.168.0.1的TCP 80端口,如下所示:
h 192.168.0.1
也可以自定义扫描的端口,可以使用选项-p(port),下面将扫描IP为192.168.0.1的TCP 443端口,如下所示:
h 192.168.0.1 –p 443....................
Nikto也可以同时扫描多个端口,使用选项-p(port),可以扫描一段范围(比如:80-90),也可以扫描多个端口(比如:80,88,90)。下面扫描主机的80/88/443端口,如下所示:
h 192.168.0.1 –p 80,88,443..............
如果运行Nikto的主机是通过HTTP proxy来访问互联网的,也可以使用代理来扫描,使用选项-u(useproxy)。下面将通过HTTP proxy来扫描,如下所示:
h 192.168.0.1 –p 80 –u.................
Nikto的更新:
Nikto的升级可以通过-update的命令来更新插件和数据库,如下所示:
update
也可以通过从网站下载来更新插件和数据库:
Nikto的选项说明:
-Cgidirs:扫描CGI目录。
-config:使用指定的config文件来替代安装在本地的config.txt文件
-dbcheck:选择语法错误的扫描数据库。
-evasion:使用LibWhisker中对IDS的躲避技术,可使用以下几种类型:
1.随机URL编码(非UTF-8方式).........
2.自选择路径(/./)
3.虚假的请求结束
4.长的URL请求
5.参数隐藏
6.使用TAB作为命令的分隔符
7.大小写敏感
8.使用Windows路径分隔符\替换/
9.会话重组
-findonly:仅用来发现HTTP和HTTPS端口,而不执行检测规则
-Format:指定检测报告输出文件的格式,默认是txt文件格式(csv/txt/htm/)
-host:目标主机,主机名、IP地址、主机列表文件。
-id:ID和密码对于授权的HTTP认证。格式:id:password/
-mutate:变化猜测技术
1.使用所有的root目录测试所有文件//
2.猜测密码文件名字
3.列举Apache的用户名字(/~user)
4.列举cgiwrap的用户名字(/cgi-bin/cgiwrap/~user)................
-nolookup:不执行主机名查找
-output:报告输出指定地点
-port:扫描端口指定,默认为80端口。
-Pause:每次操作之间的延迟时间
- Display:控制Nikto输出的显示
1.直接显示信息
2.显示的cookies信息
3.显示所有200/OK的反应
4.显示认证请求的URLs
5.Debug输出
-ssl:强制在端口上使用SSL模式
-Single:执行单个对目标服务的请求操作。
-timeout:每个请求的超时时间,默认为10秒
-Tuning:Tuning 选项控制Nikto使用不同的方式来扫描目标。
0.文件上传
1.日志文件
2.默认的文件
3.信息泄漏
4.注射(XSS/Script/HTML)
5.远程文件检索(Web 目录中)
6.拒绝服务
7.远程文件检索(服务器)
8.代码执行-远程shell
9.SQL注入
a.认证绕过
b.软件关联
g.属性(不要依懒banner的信息)
x.反向连接选项
-useproxy:使用指定代理扫描
-update:更新插件和数据库
警告
Nikto是一个用来发现默认网页文件、检查网页服务器和CGI安全问题的工具。它对远程主机使用大量请求,这些过量的请求可能会导致远程主机宕机。Nikto可能会损害主机、远程主机和网络。某些选项可能对目标产生超过 70,000个HTTP请求。 同样从网站更新的插件也不能保证绝对系统无害,选择权在用户手中。
视频
Nikto 相关视频
参考文献
- ↑ NIKTO介绍及使用方法,博客园,2018-04-15