Kali Linux渗透测试之扫描工具——Nikto
扫描工具—Nikto
1. Nikto
Nikto 是由Perl语言开发的开源代码、功能强大的WEB扫描评估软件,能对web服务器多种安全项目进行测试的扫描软件。
它支持两种扫描模式,代理截断模式和主动扫描模式。
2. 手动扫描与自动扫描
手动扫描:用户手动去点击页面,发现页面存在的问题,但可能会存在遗漏。
自动扫描:基于字典的扫描,可以提高扫描的速度,但存在误报和触发警告,容易被管理员发现。
3. Nikto主要扫描的内容
1、软件版本
2、搜索存在安全隐患的文件【如:某些web维护人员备份完后,遗留的压缩包,若被下载下来,则获得网站源码】
3、服务器配置漏洞【组件可能存在默认配置】
4、WEB Application层面的安全隐患【XSS,SQL注入等】
5、避免404误判
很多服务器不遵守RFC标准,对于不存在的对象返回200响应码
依据响应文件内容判断,不同扩展名【jsp、cji】的文件404响应内容不同
去除时间信息后的内容取MD5值
4. Nikto命令详解
nikto -update #更新数据库
nikto -list-plugins #查看插件列表
nikto -host http://192.168.1.109/dvwa/ #指定网站目录扫描
nikto -host 192.168.1.1.109 -port 80,443 #可指定多个端口【也可加-output:输出结果】,默认80端口
nikto -host host.txt #扫描指定列表的内容,多条记录
nmap -p80 192.168.1.0/24 -oG - | nikto -host - #结合nmap,对一个网段内开放了80端口的主机进行扫描
nikto -host https://www.baidu.com -useproxy http://localhost:8087 #使用代理,防止IP被封
nikto -vhost 【+域名】 #虚拟IP,区分网站【使用条件:一个ip对应多个网站,拿域名进行区分网站】
5. Nikto交互性参数【用于扫描过程中】
空格:报告当前状态
v:正在扫描的详细信息(路径,结果等) #再按v就停止
d:极其详细的信息,包括传输内容
e:错误信息
p:显示进度
r:重定向
c:cookie
a:身份认证
q:退出
N:下一个主机(用于多个IP)
P:暂停
6. Nikto配置文件
大部分需要登录进网站,才能进行扫描。
-id+ #使用http身份认证【但现在很少,现在基本上都是基于表单的一个身份认证】
我们可以通过修改Nikto配置文件,指定cookie(身份认证信息),实现身份认证。
Nikto配置文件:vim /etv/nikto.conf
#修改useagent【使用默认配置(显示Nikto工具在扫描),容易被管理员发现,所以可以进行修改】
USERAGENT=Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
获取cookie,在配置文件中修改cookie信息【让nikto获得身份认证,进行进一步扫描】
此时,使用Nikto扫描时,都会携带cookie信息进行扫描。
-evasion:使用LibWhisker中对IDS的逃避技术,可使用以下几种类型
1、随机URL编码(非UTF-8方式)
2、自选路径(/./)
3、过早结束的URL
4、优先考虑长随机字符串
5、参数欺骗
6、使用TAB作为命令的分隔符
7、使用变化的URL
8、使用windows路径分隔符”\“