nikto是一款专业的web服务器扫描工具,软件采用命令行的执行方式,可以对服务器进行快速的检测,从而发现潜在的危险以及CGI等问题,是网络管理人员的必备工具。需要说明的是小编带来的是nikto是针对windows系统的,欢迎下载!
nikto基本介绍
nikto是基于PERL开发的程序,所以需要PERL环境,支持Windows(使用ActiveState Perl环境)、Mac OSX、多种Linux 或Unix系统。它也使用LibWhiske库,但通常比Whisker更新的更为频繁,是一款非常棒的WEB扫描评估软件。
nikto功能介绍
1、使用Rain Forest Puppy的LibWhisker实现HTTP功能,并且可以检查HTTP和HTTPS
2、支持基本的端口扫描以判定网页服务器是否运行在其他开放端口
3、可以使用'update'选项从主版本站点自动更新,以应对新的弱点
4、可以在启动时加载用户自定义的检测规则,当然前提是自定义检测规则已经放在了
user_scan_database.db文件内(这个文件在插件目录下),即使使用-update选项升级,自定义的检测规则也不会被覆盖
5、具有反入侵探测(IDS)功能
6、Nikto可用来检查网页服务器和其他多个范畴内的项目:错误的配置、默认文件和脚本、不安全的文件和脚本、过时软件等
nikto使用说明
基本测试
例子1 perl nikto.pl -h 192.168.0.1
-h 指定被扫描的IP或者主机名
-p 指定扫描的端口,没有指定,则默认80
例子2 perl nikto.pl -h 192.168.0.1 -p 443
可以指定协议,如
例子3 perl nikto.pl -h https://192.168.0.1:443/
例子4 perl nikto.pl -h 192.168.0.1 -p 443 –ssl
其实不必指定443端口使用ssl,nikto首先使用HTTP规则,如果失败,接着尝试HTTPS规则。当然,指定-ssl能省去不必要的步骤,加快速度。
使用-mutate parameter可以实现更复杂的测试。
例子5 perl nikto.pl -h 192.168.0.1 -mutate 3 -mutata-options user-list.txt
-mutate 变化猜测技术,使用这个选项会产生大量测试。选项数字编号代表含义:
1-使用所有的root目录测试所有文件
2-猜测密码文件名字
3-列举apache用户名字 (/~user type requests)
4-列举cgiwrap用户名(/cgi-bin/cgiwrap/~user type requests)
5-暴力尝试子域名,假设hostname是父域名
6-通过提供字典文件猜测目录名
-mutate-options 对-mutate选项提供额外信息,如字典文件。
注意:-mutate和-mutate-options在nikto2.1.2版本后,不推荐使用。使用-Plugin parameter代替。如下插件描述代替上面描述的-mutate
tests(all)
tests(passfiles)
apacheusers(enumerate,home[,dictionary:dict.txt])
apacheusers(enumerate,cgiwrap[,dictionary:dict.txt])
subdomain
dictionary(dictionary:dict.txt)
多端口测试
指定多个端口,用逗号分割
例子6 perl nikto.pl -h 192.168.0.1 -p 80,88,443
指定端口范围
例子7 perl nikto.pl -h 192.168.0.1 -p 80-90
多主机测试
通过主机文件
例子8 perl nikto.pl -h host.txt
host.txt文件,一行一个,如下
192.168.0.1:80
http://192.168.0.1:8080/
192.168.0.3
也可以使用命令行输出,如下面,这里"-"代表标准输入输出
例子9 nmap -p80 192.168.0.0/24 -oG - | nikto.pl -h -
使用代理
如果我们通过代理运行nikto
例子10 perl nikto.pl -h 192.168.0.1 -p 80 –useproxy
代理在nikto.conf文件中配置
# Proxy settings -- still must be enabled by –useproxy
#PROXYHOST=127.0.0.1
#PROXYPORT=8080
#PROXYUSER=proxyuserid
#PROXYPASS=proxypassword
也可以在命令行设置
例子11 ./nikto.pl -h localhost -useproxy http://localhost:8080/
更新
例子12 perl nikto.pl –update
在连网情况下更新插件和测试库,当然也可以从
http://www.cirt.net/%E7%9B%B4%E6%8E%A5%E4%B8%8B%E8%BD%BD 下载
与nessus 集成
Nessus (http://www.nessus.org/nessus/)
nikto.pl配置到path中;nikto.nasl在nessus的安装目录下;运行nessusd -R 再重启nessus
在nessus发现web server时,会自动加载nikto
详细可以参考:http://blog.tenablesecurity.com/2008/09/using-nessus-to.html
交互指令
在扫描期间,按下如下的按键
space 报告当前扫描状态
v 打开/关闭verbose模式
d 打开/关闭debug模式
e 打开/关闭错误报告
p 打开/关闭进度报告
r 打开/关闭显示重定向
c 打开/关闭显示cookie
o 打开/关闭OK显示
a 打开/关闭auth信息显示
q 退出
N 下一个HOST
P 暂停
例子13 nikto.pl -host target.txt -Plugins "apache_expect_xss(verbose,debug)"
例子14
nikto.pl -host targets.txt -Plugins "apacheusers(enumerate,dictionary:users.txt);report_xml" -output apacheusers.xml
nikto使用教程
1、nikto在windows系统中使用需要依赖于ActiveState Perl环境,所以大家在操作nikto之前请先下载安装ActivePerl程序。
2、安装完毕ActivePerl之后,添加 Perl到PATH环境中并创建Perl文件关联,打开CMD窗口,检测当前ActivePerl环境是否安装完成,如下图所示:
3、解压压缩包文件,在cmd(命令行模式)窗口中,进入nikto.pl路径。
perl nikto.pl -h x.x.x.x -p 80,8080 -o report.log,指定ip、端口、输出文件,进行操作检测。
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
更新插件和数据库