Nikto

Nikto

转载请注明,原文转自 http://blog.csdn.net/fly_heart_yuan/article/details/6799043

一 简介

Nikto 是一款开放源代码的、功能强大的WEB扫描评估软件,能对web服务器多种安全项目进行测试的扫描软件,去寻找已知有名的漏洞,能在230多种服务器上扫描出 2600多种有潜在危险的文件、CGI及其他问题,它可以扫描指定主机的WEB类型、主机名、特定目录、COOKIE、特定CGI漏洞、返回主机允许的 http模式等等。它也使用LibWhiske库,但通常比Whisker更新的更为频繁。Nikto是网管安全人员必备的WEB审计工具之一。

 

二 安装

a 安装LibWhiske

wget http://sourceforge.net/projects/whisker/files/libwhisker/2.5/libwhisker2-2.5.tar.gz/download?_test=goal

tar -xzf libwhisker2-2.5.tar.gz

b 安装nikto

wget --no-check-certificate https://cirt.net/nikto/nikto-2.1.4.tar.gz

tar -xf nikto-2.1.4.tar

cd nikto-2.1.4


三 使用

1. 快速入门

进行最基本的nikto扫描,你只需要指定目标的host(通过 -h 参数指定),也可以指定要扫描的端口号(通过 -p 来指定),默认是80

perl nikto.pl -h 192.168.0.1
2 多端口扫描

#扫描80,88,443三个端口
perl nikto.pl -h 192.168.0.1 -p 80,88,443
 
  
#扫描80~90共10个端口
perl nikto.pl -h 192.168.0.1 -p 80-90
3 多host扫描

-h 参数的值为一个文件,该文件存一系列的host或者ip,文件的格式要求是,每个host必须占一行,端口号放行末,端口号通过冒号或者逗号和host,其他端口号区分开,给一个文件示例

192.168.0.1:80
http://192.168.0.1:8080/
192.168.0.3
4 交互功能

在扫描期间,按下下面任意键,可开启或关闭相关功能,注意这些命令是区分大小写的

空格 报告当前扫描状态
v 详细模式的开启/关闭
d 调试模式的开启/关闭
e 开启/关闭错误报告
p 进展情况报告的开启/关闭

四 命令行参数

-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扫描目标主机10.0.0.12的phpwind论坛网站。

Perl nikto.pl –h 10.0.0.12 –o test.txt


五 配置文件

1.配置文件所在位置

加压后文件根目录下的nikto.conf

2.格式

类似于unix标准配置文件格式

3.参数 

CLIOPTS:设置默认的命令后缀,例如

CLIOPTS=-output results.txt -Format text
这样设置过后,以后敲命令时,就不用再写这些参数了

NIKTODTD:指定nikto.dtd文件的相对路径,此文件是什么角色,我猜想应该是测试用例数据库

RFIURL: 远程文件包含漏洞。此值设为你想要远程包含的文件

SKIPPORTS:掠过端口配置

SKIPIDS:掠过的ID,用于测试数据库的





六 输出报告


七 示例报告分析

在谷歌搜索nikto reports 有了这样一份报告,我就拿他来试试我的小牛刀 

http://www.ruben-alves.com/ficheiros/nikto-AT-localhost.html

tip:这是一份html格式的报告,生成命令为 perl nikto.pl -h xxxx -o result.html -F htm

个人认为,html格式的报告比txt格式的报告清晰多了的说,建议使用html报告格式


Nikto Scan Summary
Software Details Nikto 2.00
CLI Options -host localhost -output nikto@localhost -F html
Hosts Tested 1

首先,告诉了我们关于nikto的信息,你使用的是nikto软件,版本号,命令行参数
localhost / 127.0.0.1
Target IP 127.0.0.1
Target hostname localhost
Target Port 80
HTTP Server Apache/2.2.4 (Ubuntu) PHP/5.2.3-1ubuntu6
Start Time 2007-11-14 0:09:00
End Time 2007-11-14 0:09:00
Elapsed 17 Seconds
Site Link (Name) http://localhost:80/
Site Link (IP) http://127.0.0.1:80/
Items Tested 4342
Items Found 8

上面的表格告诉我们的是目标服务器相关的信息,ip,域名,端口号,web服务器等等


Information OSVDB-877: HTTP method ('Allow' Header): 'TRACE' is typically only used for debugging and should be disabled. This message does not mean it is vulnerable to XST.
OSVDB Entries OSVDB-877
Information PHP/5.2.3-1ubuntu6 appears to be outdated (current is at least 5.2.4)
OSVDB Entries  
Information Apache/2.2.4 appears to be outdated (current is at least Apache/2.2.6). Apache 1.3.39 and 2.0.61 are also current.
OSVDB Entries  
Information PHP/5.2.3-1ubuntu6 appears to be outdated (current is at least 5.2.4)
OSVDB Entries  
上述是针对服务器提出的几种建议

下面的表格厉害了,注意看description

URI /phpmyadmin/
( 这是相对于host的路径)
HTTP Method GET
Description phpMyAdmin is for managing MySQL databases, and should be protected or limited to authorized hosts.
(phpmyadmin是负责管理mysql数据库的页面,应该限制访问权限)
Test Links http://localhost:80/phpmyadmin/
http://127.0.0.1:80/phpmyadmin/
OSVDB Entries OSVDB-3092
URI /icons/
HTTP Method GET
Description Directory indexing is enabled: /icons indexing
(目录遍历漏洞)
Test Links http://localhost:80/icons/
http://127.0.0.1:80/icons/
OSVDB Entries OSVDB-3268
URI /
HTTP Method TRACE
Description TRACE option appears to allow XSS or credential theft. See http://www.cgisecurity.com/whitehat-mirror/WhitePaper_screen.pdf for details
Test Links http://localhost:80/
http://127.0.0.1:80/
OSVDB Entries OSVDB-877
URI /index.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
HTTP Method GET
Description PHP reveals potentially sensitive information via certain HTTP requests which contain specific QUERY strings.
(访问上面的url,我们发现其实是phpinfo页面啊,确实包含了很多敏感信息)
Test Links http://localhost:80/index.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
http://127.0.0.1:80/index.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
OSVDB Entries OSVDB-12184
URI /phpinfo.php
HTTP Method GET
Description Contains PHP configuration information
Test Links http://localhost:80/phpinfo.php
http://127.0.0.1:80/phpinfo.php
OSVDB Entries OSVDB-3233
URI /server-status
HTTP Method GET
Description This reveals Apache information. Comment out appropriate line in httpd.conf or restrict access to allowed hosts.
Test Links http://localhost:80/server-status
http://127.0.0.1:80/server-status
OSVDB Entries OSVDB-561
URI /readme
HTTP Method GET
Description This might be interesting...
Test Links http://localhost:80/readme
http://127.0.0.1:80/readme
OSVDB Entries OSVDB-3092
URI /doc/
HTTP Method GET
Description The /doc/ directory is browsable. This may be /usr/doc.
Test Links http://localhost:80/doc/
http://127.0.0.1:80/doc/
OSVDB Entries OSVDB-48


八 后记

同许多渗透测试工具一样,nikto提供给你的信息有局限性,如果nikto确定一个问题,很值得我们深究到底,因为全世界的每个黑客都可以轻易的找到相同的问题,另一方面,如果nikto什么也没找到,也不代表就不存在安全问题

随着你的安全测试变的成熟,你从nikto的扫描中得到的收益将越来越少。

转载请注明,原文转自 http://blog.csdn.net/fly_heart_yuan/article/details/6799043

九 参考资料

http://cirt.net/nikto2-docs/


 

 

你可能感兴趣的:(安全)