nikto2 官网:https://cirt.net/nikto2
Nikto - The Manual:https://cirt.net/nikto2-docs/
kali下使用nikto扫描网站: http://cstriker1407.info/blog/kali-to-use-nikto-scans-web-sites/
Nikto 是一个比较全面的网页扫描器。
选项:
-ask+ Whether to ask about submitting updates
yes Ask about each (default)
no Don't ask, don't send
auto Don't ask, just send
-Cgidirs+ 扫描这些CGI目录: "none", "all", or values like "/cgi/ /cgi-a/"
-config+ 使用指定的config文件来替代安装在本地的config.txt文件
-Display+ Turn on/off display outputs:
1 显示重定向
2 显示接受 cookie
3 显示所有200/OK响应
4 显示要求验证的 URL
D 调试输出
E 显示所有HTTP错误
P 打印处理进度到STDOUT
S 格式输出IP地址和主机名
V 详细输出
-dbcheck Check database and other key files for syntax errors
-evasion+ 编码技术: 该选项能够对扫描包进行一些变形,绕过IDC检测。可使用以下几种类型:
1 随机URI编码 (non-UTF8)
2 使用相对路径作为参考 (/./)
3 Premature URL ending 虚假的请求结束
4 Prepend long random string 长的URL请求
5 隐藏参数
6 使用 TAB 作为命令的分隔符
7 大小写敏感
8 使用Windows路径分隔符\替换/
A Use a carriage return (0x0d) as a request spacer
B Use binary value 0x0b as a request spacer
-Format+ Save file (-o) format:
csv 逗号分隔值
htm HTML格式
nbe Nessus的NBE格式
sql Generic SQL (see docs for schema)
txt 文本(默认情况下,如果没有指定)
xml XML格式
(if not specified the format will be taken from the file extension passed to -output)
-Help 帮助
-host+ 目标主机
-404code Ignore these HTTP codes as negative responses (always). Format is "302,301".
-404string Ignore this string in response body content as negative response (always). Can be a regular expression.
-id+ 主机使用的身份验证,格式是 ID:密码 或 ID:密码:领域
-key+ Client certificate key file
-list-plugins 列出所有可用的插件,不执行测试
-maxtime+ 每个主机的最大测试时间 (e.g., 1h, 60m, 3600s)
-mutate+ 猜额外的文件名。变化猜测技术:
1 测试所有的文件,所有的根目录
2 猜测密码文件名
3 通过Apache枚举用户名(/~user type requests)
4 通过cgiwrap枚举用户名(/cgi-bin/cgiwrap/~user type requests)
5 试暴力破解子域名,假设主机名称是父域名
6 尝试使用从提供的字典文件的目录名称
-mutate-options Provide information for mutates
-nointeractive 禁用交互特性
-nolookup 禁止DNS查找
-nossl 禁止使用SSL
-no404 禁用Nikto尝试猜测404页
-Option Over-ride an option in nikto.conf, can be issued multiple times
-output+ Write output to this file ('.' for auto-name)
-Pause+ 测试之间的停顿(秒,整数或浮点数)
-Plugins+ 列出正在运行的插件(默认:ALL)
-port+ 要使用的端口(默认80)
-RSAcert+ Client certificate file
-root+ 前面加上root值到所有请求,格式为/目录
-Save Save positive responses to this directory ('.' for auto-name)
-ssl 强制SSL端口模式
-Tuning+ 扫描选项: 选项控制Nikto使用不同的方式来扫描目标。
1 日志文件
2 默认文件
3 信息泄漏
4 注入 (XSS/Script/HTML)
5 远程文件检索 - Inside Web Root
6 拒绝服务
7 远程文件检索 - Server Wide
8 执行命令 / 远程shell
9 SQL 注入
0 文件上传
a 认证绕过
b 软件关联
c Remote Source Inclusion
d WebService
e Administrative Console
x 反向连接选项 (i.e., include all except specified)
-timeout+ 请求超时时间 (默认 10 秒)
-Userdbs Load only user databases, not the standard databases
all Disable standard dbs and load only user dbs
tests Disable only db_tests and load udb_tests
-useragent Over-rides the default useragent
-until Run until the specified time or duration
-update 从 CIRT.net 更新 数据库 和 插件
-useproxy 使用在 nikto.conf 定义的代理, 或者 使用参数 http://server:port
-Version 打印插件和数据库版本
-vhost+ 虚拟主机(用于主机头)
+ requires a value
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 | 进展情况报告的开启/关闭 |
5. CGI扫描 -C参数只能放在后面,应该可以指定相对目录。
Perl nikto.pl –h 192.168.0.1 -c
Perl nikto.pl –h 192.168.0.1 -c /phpbb
数据库扫描 此参数也需要跟在后面
Perl nikto.pl –h 192.168.0.1 -c -d
猜测apache默认配制密码 前提需要目标服务器允许guess
Perl nikto.pl –h 192.168.0.1 -m
报告输出指定地点
Perl nikto.pl –h 192.168.0.1 -o result.txt
Tuning选项控制Nikto使用不同的方式来扫描目标。 这个最有价值。-T参数后的数字是隐藏的,大家可以灵活搭配使用
Perl nikto.pl –h 192.168.0.1 -T 58
Perl nikto.pl –h 192.168.0.1 -T 58x
Perl nikto.pl –h 192.168.0.1 -T 默认不指定数字,应该是全部扫描吧, 没测试过
更新插件和数据库
Perl nikto.pl -update
完全点的检测一个主机信息
Perl nikto.pl –h 192.168.0.1 -m -T -c -o 结果.txt
在谷歌搜索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 |
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 |
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 的警报会返回 OSVDB 序号。这是由开源缺陷数据库(http://osvdb.org/)所指定。可以在 OSVDB 上找出相关缺陷的深入说明。
后记
同许多渗透测试工具一样,nikto提供给你的信息有局限性,如果nikto确定一个问题,很值得我们深究到底,因为全世界的每个黑客都可以轻易的找到相同的问题,另一方面,如果nikto什么也没找到,也不代表就不存在安全问题
随着你的安全测试变的成熟,你从nikto的扫描中得到的收益将越来越少。