Nikto工具使用指南
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工具使用指南
NiktoNikto是一款开源网站服务器扫描器,使用Perl开发,可以对服务器进行全面扫描,包括6400多个潜在危险的文件/cgi(通用网关接口(Common Gateway Interface)),废话不多说,直接上命令:基本测试&am…...

Git(4)之基本工具
Git基础之基本工具 Author:onceday date:2023年3月5日 满满长路有人对你微笑过嘛… windows安装可参考文章:git简易配置_onceday_CSDN博客 參考文档: 《progit2.pdf》,Progit2 Github。《git-book.pdf》 文章目录…...

好书推荐。
个人喜欢看传记,散文,历史等 二战名人传记,苏联列宁,朱可夫,斯大林等 英国首相丘吉尔,美国富兰克林,中国毛泽东等 创业:比尔盖,扎克伯格,苹果公司创始人乔…...

[Pytorch]DataSet和DataLoader逐句详解
将自己的数据集引入Pytorch是搭建属于自己的神经网络的重要一步,这里我设计了一个简单的实验,结合这个实验代码,我将逐句教会大家如何将数据引入DataLoader。 这里以目标检测为例,一个batch中包含图片文件、先验框的框体坐标、目标…...

【Kettle-佛系总结】
Kettle-佛系总结Kettle-佛系总结1.kettle介绍2.kettle安装3.kettle目录介绍4.kettle核心概念1.转换2.步骤3.跳(Hop)4.元数据5.数据类型6.并行7.作业5.kettle转换1.输入控件1.csv文件输入2.文本文件输入3.Excel输入4.XML输入5.JSON输入6.表输入2.输出控件…...

JavaSE网络编程
JavaSE网络编程一、基本概念二、常用类三、使用方法1、创建服务器端Socket2、创建客户端Socket3、创建URL对象JavaSE中的网络编程模块提供了一套完整的网络编程接口,可以方便地实现各种基于网络的应用程序。本文将介绍JavaSE中网络编程模块的基本知识、常用类以及使…...

9万字“联、管、用”三位一体雪亮工程整体建设方案
本资料来源公开网络,仅供个人学习,请勿商用。部分资料内容: 1、 总体设计方案 围绕《公共安全视频监控建设联网应用”十三五”规划方案》中的总体架构和一总两分结构要求的基础上,项目将以“加强社会公共安全管理,提高…...

springboot自动装配原理
引言 springboot的自动装配是其重要特性之一,在使用中我们只需在maven中引入需要的starter,然后相应的Bean便会自动注册到容器中。例如: <dependency><groupId>org.springframework.boot</groupId><artifactId>spr…...

Docker学习(二十)什么是分层存储?
目录1.简介2.什么是 Union Mount?3.分层介绍1)lowerdir 层(镜像层)2)upperdir 层(容器层)3)merged 层4.工作原理1)读:2)写:3ÿ…...

Vue组件进阶(动态组件,组件缓存,组件插槽,具名插槽,作用域插槽)与自定义指令
Vue组件进阶与自定义指令一、Vue组件进阶1.1 动态组件1.2 组件缓存1.3 组件激活和非激活1.4 组件插槽1.5 具名插槽1.6 作用域插槽1.7 作用域插槽使用场景二、自定义指令2.1 自定义指令--注册2.2 自定义指令-传参一、Vue组件进阶 1.1 动态组件 多个组件使用同一个挂载点&#x…...

僵尸进程与孤儿进程
概念 在 Unix/Linux 系统中,正常情况下,子进程是通过父进程创建的,且两者的运行是相互独立的,父进程永远无法预测子进程到底什么时候结束。当一个进程调用 exit 命令结束自己的生命时,其实它并没有真正的被销毁&#…...

基于注解@Transactional事务基本用法
关于概念性的放在最下面,熟读几遍 在使用时候也没多关注,总是加个Transactional 初识下 一般查询 Transactional(propagation Propagation.SUPPORTS) 增删改 Transactional(propagation Propagation.REQUIRED) 当然不能这么马虎 Spring中关于事务的传播 一个个测试,事…...

Go项目(商品微服务-2)
文章目录简介handler商品分类轮播图品牌和品牌与分类oss前端直传库存服务数据不一致redis 分布式锁小结简介 开发商品微服务 API 层类似的,将 user-web 目拷贝一份,全局替换掉 user-web修改 config 去掉不用的配置更新本地和远程 nacos 配置文件 把 pro…...

无头盔PICO-unity开发日记1(抓取、传送)
目录 可传送的地面 锚点传送 修改射线颜色(可交互/不可交互) 球、抓手组件 ||刚体(重力)组件 可传送的地面 1.地面添加组件 2.XR交互管理器添加传送提供者 3.地面设置传送提供者 4.XR交互管理器添加locomotion system 5.拖拽 完…...

Material3设计指南笔记
Material3设计指南笔记Table of Contents1. 颜色color1.1. 颜色分类1.2. 强调色accent color1.3. 中性色neutral color1.4. 辅助色additional color1.5. 调色盘tonal palettes1.6. 颜色规范2. z轴高度 elevation3. 图标 icon4. 动画 motion5. 形状 shape6. 字体1. 颜色color1.1…...

JavaWeb--会话技术
会话技术1 会话跟踪技术的概述2 Cookie2.1 Cookie的基本使用2.2 Cookie的原理分析2.3 Cookie的使用细节2.3.1 Cookie的存活时间2.3.2 Cookie存储中文3 Session3.1 Session的基本使用3.2 Session的原理分析3.3 Session的使用细节3.3.1 Session钝化与活化3.3.2 Session销毁目标 理…...

Git图解-为啥是Git?怎么装?
目录 零、学习目标 一、版本控制 1.1 团队开发问题 1.2 版本控制思想 1.2.1 版本工具 二、Git简介 2.1 简介 2.2 Git环境的搭建 三、转视频版 零、学习目标 掌握git的工作流程 熟悉git安装使用 掌握git的基本使用 掌握分支管理 掌握IDEA操作git 掌握使用git远程仓…...

HTML 框架
HTML 框架 <iframe>标签规定一个内联框架。 一个内联框架被用来在当前 HTML 文档中嵌入另一个文档。 通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面。 iframe 语法: <iframe src"URL"></iframe> 该URL指向不同的…...

Rust特征(Trait)
特征(Trait) 特征(trait)是rust中的概念,类似于其他语言中的接口(interface)。在之前的代码中,我们也多次见过特征的使用,例如 #[derive(Debug)],它在我们定义的类型(struct)上自动…...

详解七大排序算法
对于排序算法,是我们在数据结构阶段,必须要牢牢掌握的一门知识体系,但是,对于排序算法,里面涉及到的思路,代码……各种时间复杂度等,都需要我们,记在脑袋瓜里面!…...

Vue+ECharts实现可视化大屏
由于项目需要一个数据大屏页面,所以今天学习了vue结合echarts的图标绘制 首先需要安装ECharts npm install echarts --save因为只是在数据大屏页面绘制图表,所以我们无需把它设置为全局变量。 可以直接在该页面引入echarts,就可以在数据大…...

百度Apollo规划算法——轨迹拼接
百度Apollo规划算法——轨迹拼接引言轨迹拼接1、什么是轨迹拼接?2、为什么要进行轨迹拼接?3、结合Apollo代码为例理解轨迹拼接的细节。参考引言 在apollo的规划算法中,在每一帧规划开始时会调用一个轨迹拼接函数,返回一段拼接轨迹…...

6. unity之脚本
1. 说明 当整个游戏运行起来之后,我们无法再借助鼠标来控制物体,此时可以使用脚本来更改物体的各种姿态,驱动游戏的整体运动逻辑。 2. 脚本添加 首先在Assets目录中,新创建一个Scripts文件夹,在该文件内右键鼠标选择…...

flink-note笔记:flink-state模块中broadcast state(广播状态)解析
github开源项目flink-note的笔记。本博客的实现代码都写在项目的flink-state/src/main/java/state/operator/BroadcastStateDemo.java文件中。 项目github地址: github 1. 广播状态是什么 网上关于flink广播变量、广播状态的讲解很杂。我翻了flink官网发现,实际上在1.15里面…...

vue——预览PDF
下载插件 npm install --save vue-pdf创建组件 <template><div class"ins-submit-docs-content ins-submit-docs-pdf"><div v-if"loading" style"position: absolute; top: 40%; width: 100%;text-align: center;"><el-l…...

数据库复习
什么是数据库系统 数据库系统是指在计算机系统中引入数据库后构成的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成 数据库系统的特点是什么? 数据结构化数据的共享性高,冗余度低且易扩充数据独立性高数…...

vscode插件推荐
文章目录前言一、vscode插件推荐?1、 Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code2、Auto Close Tag3、Auto Import3、Error Lens4、vscode-icons5、ES7 React/Redux/React-Native snippets6、GitLens — Git supercharged7、JavaScript…...

THUPC2023初赛总结
今天参加了THUPC2023初赛,感觉还行。 比赛本来是11:00-16:00,但出了点问题,比赛延迟了十分钟。 刚开始,我从第一题往后看,寻找简单的题。 过了一会儿,一看排行榜,怎么最后一题全是绿的&#…...

unity知识点小结02
虚拟轴 虚拟轴就是一个数值在-11内的轴,这个数轴上重要的数值就是-1,0和1。当使用按键模拟一个完整的虚拟轴时需要用到两个按键,即将按键1设置为负轴按键,按键2设置为正轴按键。在没有按下任何按键的时候,虚拟轴的数值为0…...

总线(四)Modbus总线 协议
文章目录Modbus技术背景Modbus OSI分布Moudbus分类通讯过程Moudbus协议通信过程以及报文解析RTU 与 ASCII 收发数据区别Modbus技术背景 Modbus是一种串行通信协议。 1971年,Modicon公司首次退出Modbus协议,ModbusRTU和Modbus ASCII诞生于此。 后来施耐德…...