Nikto工具使用指南

Nikto是一款用Perl编写的开源网站服务器扫描工具,用于检测潜在的安全威胁。它可以扫描多个端口,如80、443等,支持基本测试、指定端口扫描、多主机和多端口测试。此外,Nikto还可以与nmap结合使用,并能通过代理进行扫描。通过各种命令行选项,用户可以自定义扫描行为,包括选择特定插件、设置超时和代理等。
摘要由CSDN通过智能技术生成

Nikto

Nikto是一款开源网站服务器扫描器,使用Perl开发,可以对服务器进行全面扫描,包括6400多个潜在危险的文件/cgi(通用网关接口(Common Gateway Interface)),废话不多说,直接上命令:

基本测试:

最基本的Nikto扫描仅需要将主机作为目标,默认为80端口,主机可以是ip或主机名,利用

-h(-host)选项指定:

nikto -h 192.168.56.120 #借用之前渗透项目里的ip

指定端口,使用-p(-port) 例如:扫描TCP端口443

nikto -h 192.168.56.120 -p 443

也可以用完整的url:

nikto -h http://192.168.56.120:443/

无需指定端口 443 可以是 SSL,因为 Nikto 将首先测试常规 HTTP,如果失败,则将测试 HTTPS。如果确定它是 SSL 服务器,则指定 -s(-ssl) 将加快测试速度。

nikto -h 192.168.56.120 -p 443 -ssl

多端口测试:

Nikto 可以在同一扫描会话中扫描多个端口。可以在 -p(-port)选项中指定端口列表。端口可以指定为范围(即 80-90),也可以指定为逗号分隔的列表(即 80、139、8080)。这将扫描端口 80、139 和 443 上的主机。

nikto -h 192.168.56.120 -p 80,139,443

多主机测试:

Nikto 支持通过主机名或 IP 的文本文件扫描同一会话中的多台主机。可以给出文件名,而不是 -h(-host)选项的主机名或 IP 。主机文件必须格式化为每行一台主机,端口号位于每行的末尾。端口可以通过冒号或逗号与主机端口和其他端口分开。如果未指定端口,则假定端口为 80。

文件:

192.168.56.4:80

http://192.168.56.5:45/

192.168.56.6

也可和nmap联立:nmap -p80 192.168.56.1/24 -oG-| nikto -h-

使用代理

要在niktl.conf文件中设置PROXY变量,使用 - useproxy 选项执行 Nikto。所有连接将通过配置文件中指定的 HTTP 代理进行中继。

nikto -h ip -p 80 -useproxy

要在命令行上设置代理,用-useproxy选项,并设置代理为参数:

nikto -h ip -useproxy http://ip:3128/

命令所有选项

以下是所有 Nikto 命令行选项和说明。通过使用 - h(-help)选项运行 Nikto,可以获得此文本的简短版本。
-ask
询问是否提交更新:是(询问每个 - 默认值),否(不询问,仅发送),自动(不询问,仅发送)。

-Cgidirs
扫描这些 CGI 目录。特殊词 “none” 或 “ all” 可分别用于扫描所有 CGI 目录或不扫描。可以指定 CGI 目录的文字值,例如 “ /cgi-test/”(必须包含尾部斜杠)。如果未指定此选项,将测试 nikto.conf 中列出的所有 CGI 目录。

-config
指定要使用的代替配置文件,而不是安装目录中的 nikto.conf 文件。

-dbcheck
检查扫描数据库中的语法错误。

-Display
控制 Nikto 显示的输出。有关这些选项的详细信息,请参见第 5 章。使用参考数字或字母指定类型。可以使用多个:

1 - 显示重定向
2 - 显示收到的 Cookie
3 - 显示所有 200 / OK 响应
4 - 显示需要身份验证的 URL
D - 调试输出
E - 显示所有 HTTP 错误
P - 打印进度到 STDOUT
V - 详细输出

-evasion
指定要使用的 LibWhisker 编码 / 规避技术(有关这些的详细信息,请参阅 LibWhisker 文档)。请注意,它们实际上不太可能绕过现代 IDS 系统,但可能用于其他目的。使用参考数字指定类型,可以使用多个:

1 - 随机 URI 编码(非 UTF8)
2 - 目录自参考(/./)
3 - 过早的 URL 结尾
4 - 前端的长随机字符串
5 - 伪参数
6-TAB 作为请求分隔符
7 - 更改网址的大小写
8 - 使用 Windows 目录分隔符(\)
A - 使用回车符(0x0d)作为请求分隔符
B - 使用二进制值 0x0b 作为请求间隔符

-findonly
仅发现 HTTP(S)端口,不执行安全扫描。这将尝试使用 HTTP 或 HTTPS 连接,并报告服务器标头。请注意,从 2.1.4 版开始,-findonly 已被弃用,只需设置’-Plugins“@@ NONE”’,它将覆盖 - Plugins 的任何命令行或配置文件设置。

-Format
以这种格式保存用 - o(-output)选项指定的输出文件。如果未指定,则默认值将从 - output 选项中指定的文件扩展名中获取。有效格式为:

csv - 逗号分隔的列表
htm-HTML 报告
msf - 记录到 Metasploit
txt - 文本报告
xml-XML 报告

-host
目标主机。可以是主机的 IP 地址,主机名或文本文件。单引号(-)可以用于标准输入。也可以解析 nmap -oG 样式输出

-Help
显示扩展的帮助信息。

-id    用于主机基本主机身份验证的 ID 和密码。格式为 “id:password”。

-IgnoreCode    忽略这些 HTTP 代码作为否定响应(始终)。格式为 “302,301”。

-list-plugins    将列出 Nikto 可以针对目标运行的所有插件,然后不执行扫描的情况下退出。可以使用该 -Plugins 选项针对会话进行调整。

输出格式为:

Plugin name
full name - description
Written by author, Copyright (C) copyright

-maxtime
每个主机的最大执行时间,以秒为单位。接受分钟和小时,使所有这些都是一个小时:3600s,60m,1h

-mutate
指定 mutate 技术。mutate 会导致 Nikto 组合测试或尝试猜测值。这些技术可能导致针对目标启动大量测试。使用参考数字指定类型,可以使用多个:
1 - 使用所有根目录测试所有文件
2 - 猜密码文件名
3 - 通过 Apache 枚举用户名(/〜用户类型请求)
4 - 通过 cgiwrap 枚举用户名(/cgi-bin/cgiwrap /〜用户类型请求)
5 - 尝试暴力破解子域名,假设主机名是父域名
6 - 尝试从提供的词典文件中猜测目录名称

-mutate-options    提供有关 mutate 的其他信息,例如字典文件

-nolookup    不要在 IP 地址上执行名称查找。

-nocache        禁用响应缓存

-nointeractive    禁用互动功能

-nossl        不要使用 SSL 连接到服务器。

-no404
禁用 404(找不到文件)检查。这将减少对 Web 服务器的请求总数,在通过慢速链接或嵌入式设备检查服务器时可能更可取。这通常会导致发现更多的误报。

-output
将输出写入指定的文件。使用的格式将从文件扩展名中获取。可以使用 - Format 选项来覆盖它(例如,以不同的扩展名写入文本文件。现有文件将附加新信息。)
可以为输出文件名指定一个点(。),在这种情况下,将根据要测试的目标自动生成文件名。请注意,使用 - Format 选项是必需的。该方案是:

nikto_HOSTNAME_PORT_TIMESTAMP.FORMAT
对于 “-format msf”,输出选项具有特殊含义。它应包含 Metasploit RPC 服务的密码和位置。例如,它可能看起来像:’-o msf:< password >@http://localhost:55553/RPC2'

-Plugins    选择将在指定目标上运行的插件。应提供以分号分隔的列表,其中列出了插件的名称。可以使用 - list-plugins 查找名称。
有两个特殊条目:@@ ALL,它指定所有插件都应运行,而 @@ NONE,它指定所有插件均不应运行。默认值为 @@ DEFAULT

-port    目标 TCP 端口。要在同一主机上测试多个端口,请在 - p(-port)选项中指定端口列表。端口可以指定为范围(即 80-90),也可以指定为逗号分隔的列表(即 80、88、90)。如果未指定,则使用端口 80。

-Pause    每次测试之间延迟的秒数(整数或浮点数)。

-root    将指定的值附加在每个请求的开头。这对于测试所有文件都位于某个目录下的应用程序或 Web 服务器很有用。

-ssl        仅在指定的端口上测试 SSL。使用此选项将大大加快对 HTTPS 端口的请求,否则 HTTP 请求将必须先超时。

-Save        将调查结果的请求 / 响应保存到此目录。文件是纯文本,将包含原始请求 / 响应以及每个文件的 JSON 字符串。用一个 “。” 为每个目标自动生成目录名称。可以使用附带的 replay.pl 脚本来重放这些保存的项目,该脚本可以通过代理路由项目。

-timeout        等待超时之前等待的秒数。默认超时为 10 秒。

-Tuning    调整选项将控制 Nikto 针对目标进行的测试。默认情况下,将执行所有测试。如果指定了任何选项,则将仅执行这些测试。如果使用 “x” 选项,它将颠倒逻辑并仅排除那些测试。使用参考数字或字母指定类型,可以使用多个:
0 - 文件上传
1 - 感性趣的文件 / 在日志中可见
2 - 配置错误 / 默认文件
3 - 信息披露
4 - 注入(XSS / Script / HTML)
5 - 远程文件检索 - 内部 Web 根
6 - 拒绝服务
7 - 远程文件检索 - 服务器范围
8 - 命令执行 / 远程 Shell
9-SQL 注入
a - 身份验证绕过
b - 软件识别
c - 远程数据源包含
x - 反向调整选项(即,包括所有除指定的选项)
给定的字符串将从左到右进行解析,任何 x 字符都将应用于该字符右侧的所有字符。

-Userdbs        加载用户定义的数据库而不是标准数据库。用户定义的数据库遵循与标准文件相同的语法,但是前缀为 “u”,例如 “ udb_tests”

all - 禁用所有标准数据库并仅加载用户数据库
测试 - 禁用 db_tests 并加载 udb_tests。所有其他数据库均已正常加载。

-until        运行直到指定的时间或持续时间,然后暂停。
持续时间以小时,分钟或秒为单位,例如:1h,60m,3600s
像 “mm dd hh:mm:ss” 之类的时间(mm,dd,ss 可选):12 1 22:30:00

-update        直接从 cirt.net 更新插件和数据库。
-useproxy    使用配置文件中定义的 HTTP 代理。代理也可以直接设置为参数。
-Version        显示 Nikto 软件,插件和数据库版本。
-vhost        指定要发送到目标的主机头。

平时基本测试的操作就足以应付很多事情了,对于其他要求可以在命令所有选项中进行查找拼接到命令里即可!

Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说。。。 root@91ri.org:~# cd /pentest/web/nikto/ root@91ri.org:/pentest/web/nikto# ls docs nikto.conf nikto.pl plugins templates root@91ri.org:/pentest/web/nikto# ./nikto.pl -h Option host requires an argument -config+ Use this config file -Cgidirs+ scan these CGI dirs: ‘none’, ‘all’, or values like “/cgi/ /cgi-a/” -dbcheck check database and other key files for syntax errors -Display+ Turn on/off display outputs -evasion+ ids evasion technique -Format+ save file (-o) format -host+ target host -Help Extended help information -id+ Host authentication to use, format is id:pass or id:pass:realm -list-plugins List all available plugins -mutate+ Guess additional file names -mutate-options+ Provide extra information for mutations -output+ Write output to this file -nocache Disables the URI cache -nossl Disables using SSL -no404 Disables 404 checks -port+ Port to use (default 80) -Plugins+ List of plugins to run (default: ALL) -root+ Prepend root value to all requests, format is /directory -ssl Force ssl mode on port -Single Single request mode -timeout+ Timeout (default 2 seconds) -Tuning+ Scan tuning -update Update databases and plugins from CIRT.net -vhost+ Virtual host (for Host header) -Version Print plugin and database versions + requires a value Note: This is the short help output. Use -H for full help. 升级插件 root@91ri.org:/pentest/web/nikto# ./nikto.pl -update -h 指定扫描的目标 –p 端口 root@91ri.org:/pentest/web/nikto# ./nikto.pl -h www.91ri.org -p 80 -C 指定CGI目录 –all表示猜解CGI目录 root@91ri.org:/pentest/web/nikto# ./nikto.pl -h www.91ri.org -C all -T选项包含很多小选项 –T 9表示扫描SQL注入漏洞 root@91ri.org:/pentest/web/nikto# ./nikto.pl -h www.91ri.org -T 9 -D指定输出显示 2显示cookies root@91ri.org:/pentest/web/nikto# ./nikto.pl -h www.91ri.org -D 2 -T选项包含的小选项解释: 0 检查文件上传页面 1 检查web日志 2 检查错误配置或默认文件 3检查信息泄露问题 4 检查XSS/Script/HTML问题 5 从根目录检查是否存在可访问的文件 6 检查拒绝服务问题 7 从任意文件检索是否存在可访问文件 8 检查是否存在系统命令执行漏洞 9 检查SQL注入漏洞 a 检查认证绕过问题 b 识别安装的软件版本 c 检查源代码泄露问题 x 反向链接选项
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值