官方工具的使用

之前学习的时候没有做好笔记导致现在忘完了,下面就叫我学习给记录下来

Nikto 是一款开源 (GPL) 网络服务器扫描器,可针对多个项目对网络服务器执行全面测试,包括 6700 多个具有潜在危险的文件/程序、检查 1250 多个服务器的过时版本以及 270 多个服务器上的版本特定问题。它还会检查服务器配置项目,例如是否存在多个索引文件、HTTP 服务器选项,并将尝试识别已安装的 Web 服务器和软件。扫描项目和插件经常更新,可以自动更新

nikto工具安装

kali默认是安装了的

image-20210807103712146

其他linux的安装方法很简单

克隆github

1
git clone https://github.com/sullo/nikto

image-20210807084226366

proxychains4是我添加了代理

进入目录cd nikto/program

image-20210807084433328

运行./nikto.pl

image-20210807084525664

nikto工具的使用

全部参数

选项 描述
-ask 是否询问提交更新: yes - 询问每个(默认) *no - 不询问,不发送 *auto - 不询问,只发送
-Cgidirs 扫描这些 CGI 目录: * none * all * 或类似 “/cgi/ /cgi-a/“ 的值
-config 使用这个配置文件
-Display 打开/关闭显示输出:
1 显示重定向
2 显示收到的 cookie
3 显示所有 200/OK 响应
4 显示需要身份验证的 URL * D 调试输出 * E 显示所有 HTTP 错误 * P 打印进度到 STDOUT * S Scrub IP 和主机名的 输出 * V 详细输出
-dbcheck 检查数据库和其他关键文件的语法错误
-evasion 编码技术:用来逃避
1 随机 URI 编码(非 UTF8)
2 目录自引用(/./)
3 过早的 URL 结尾
4 前置长随机字符串
5 假参数
6 TAB 作为请求间隔
7 更改URL的大小写
8 使用Windows目录分隔符()
A 使用回车 (0x0d) 作为请求间隔
B 使用二进制值 0x0b 作为请求间隔
-Format/-o 保存文件 (-o) 格式:
csv 逗号分隔值
json JSON 格式
htm HTML 格式
nbe Nessus NBE 格式
sql 通用 SQL(有关架构,请参阅文档)
txt 纯文本
xml XML 格式
(如果未指定,格式将从传递给 -output 的文件扩展名中获取)
-Help 此帮助信息
-host 目标主机/URL
-404code 忽略这些 HTTP 代码作为否定响应(始终)。格式为“302,301”。
-404string 在响应正文内容中忽略此字符串作为否定响应(始终)。可以是正则表达式。
-id 要使用的主机身份验证,格式为 id:pass 或 id:pass:realm
-key 客户端证书密钥文件
-list-plugins 列出所有可用的插件
-maxtime 每台主机的最长测试时间(例如,1h、60m、3600s)
-mutate 猜测其他文件名:
1 使用所有根目录测试所有文件
2 猜测密码文件名
3 通过 Apache 枚举用户名(/~user 类型请求)
4 通过 cgiwrap 枚举用户名(/cgi-bin/cgiwrap/~user 类型请求)
5 尝试暴力破解子域名,假设主机名是父域
6 尝试从提供的字典文件中猜测目录名
-mutate-options 提供变异信息
-nointeractive 禁用交互功能
-nolookup 禁用 DNS 查找
-nossl 禁用 SSL
-no404 禁用 nikto 尝试猜测 404 页面
-Option 覆盖 nikto.conf 中的一个选项,可以多次发出
-output 将输出写入此文件(“.”代表自动名称)
-Pause 在测试之间暂停(秒、整数或浮点数)
-Plugins 要运行的插件列表(默认值:ALL)
-port 要使用的端口(默认 80)
-RSAcert 客户端证书文件
-root 为所有请求添加根值,格式为 /directory
-Save 保存对该目录的肯定响应(’.’ 表示自动命名)
-ssl 在端口上强制 ssl 模式
-Tuning/-T 扫描调谐:
1 个有趣的文件 / 在日志中看到
2 错误配置/默认文件
3 信息披露
4 注入(XSS/脚本/HTML)
5 远程文件检索 - 内部 Web Root
6 拒绝服务
7 远程文件检索 - 服务器范围
8 命令执行/远程Shell
9 SQL注入
0 文件上传
a身份验证绕过
b 软件标识
c 远程源包含
d 网络服务
e管理控制台
x 反向调整选项(即,包括除指定之外的所有选项)
-timeout 请求超时(默认 10 秒)
-Userdbs 仅加载用户数据库,而不加载标准数据库
all 禁用标准数据库并仅加载用户数据库
测试仅禁用 db_tests 并加载 udb_tests
-useragent 覆盖默认的用户代理
-until 运行到指定的时间或持续时间
-update 从 CIRT.net 更新数据库和插件
-url 目标主机/URL(-host 的别名)
-useproxy 使用 nikto.conf 中定义的代理,例如http://127.0.0.1:8080
-Version 打印插件和数据库版本
-vhost 一个IP拥有多个网站时使用

常用的参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
-config            使用这个配置文件
-Display 打开/关闭显示输出
-dbcheck 检查数据库和其他关键文件的语法错误
-Format 保存文件(-o)格式
-Help 帮助信息
-host 目标主机/URL
-id 要使用的主机认证,格式为 id:pass 或 id:pass:realm
-list-plugins 列出所有可用的插件
-output 将输出写入此文件
-nossl 禁用 SSL
-no404 禁用 404 检查
-Plugins 要运行的插件列表(默认:ALL)
-port 要使用的端口(默认为 80)
-root 为所有请求添加根值,格式为 /directory
-ssl 在端口上强制 ssl 模式
-Tuning 扫描调谐
-timeout 请求超时(默认 10 秒)
-update 从 CIRT.net 更新数据库和插件t
-Version 打印插件和数据库版本
-vhost 一个IP拥有多个网站时使用
-useproxy 中定义的代理,例如http://127.0.0.1:8080

基本使用

查所有可用的插件

我们进行大量的扫描都是用的插件进行判断的

1
nikto  -list-plugins

image-20210807103952072

基本扫描

-h即是-host

1
2
3
4
nikto -h 192.168.1.1 #单个ip目标指定
nikto -h www.xxx.com #单个目标指定
nikto -h http://www.xxx.com/abc/ #单个目标指定和指定目录
nikto -h a.txt #多个目标扫描

设置代理用-useproxy 参数

格式

1
nikto  xxxxxxx -useproxy http://xxxx:xxxxx 

下面的演示的命令

1
sudo nikto  -h www.baidu.com -useproxy http://127.0.0.1:8889

image-20210807113757684

其他的就不演示了你们看参数吧

扫描中的操作

1
2
3
4
5
6
7
8
9
10
11
空格		是查看当前扫描百分之多少了剩余时间等等等
v 是查看扫描状态正在扫描什么东西在按v暂停
d 是查看详细发的信息在按d暂停
e 显示错误信息在按e暂停
p 显示扫描进度在按p暂停
r 显示重定向信息在按r暂停
c 显示cookie在按c暂停
a 身份认证过程显示出来在按a暂停
q 退出
N 扫描下一个目标就是在指定文件扫描的使用用的
P 暂停扫描