目录
[whatweb -v](#whatweb -v)
[whatweb --version](#whatweb --version)
[whatweb -i 1.txt](#whatweb -i 1.txt)
[whatweb -v www.baidu.com](#whatweb -v www.baidu.com)
[whatweb -a 4 www.baidu.com](#whatweb -a 4 www.baidu.com)
[whatweb --no-errors -t 255 192.168.71.0/24](#whatweb --no-errors -t 255 192.168.71.0/24)
[whatweb -v -p php http://www.xiaodi8.com/](#whatweb -v -p php http://www.xiaodi8.com/)
简介
whatweb 一款网站指纹识别工具,使用Ruby语言开发。
whatweb能够识别各种关于网站的详细信息包括:CMS类型、博客平台、中间件、web框架模块、网站服务器、脚本类型、JavaScript库、IP、cookie等等。WhatWeb还标识版本号,电子邮件地址,账户ID,Web框架模块,SQL错误等。
WhatWeb可以隐秘、快速、彻底或缓慢扫描。(代表他有四个扫描等级)
WhatWeb支持攻击级别来控制速度和可靠性之间的权衡。当在浏览器中访问网站时,该交易包含许多关于Web技术为该网站提供支持的提示。有时,单个网页访问包含足够的信息来识别网站,但如果没有,WhatWeb可以进一步询问网站。默认的攻击级别称为"被动",速度最快,只需要一个网站的HTTP请求。这适用于扫描公共网站。在渗透测试中开发了更积极的模式。
安装
debian/ubtuntu
apt-get install whatweb
kali中自带whatweb,如果没有的话也可以使用上述命令安装,因为kali是基于 Debian 的一个特定用途的 Linux 发行版。
redhat/centos
yum update
yum install ruby ruby-devel rubygems
wget http://www.morningstarsecurity.com/downloads/whatweb-0.4.7.tar.gz
tar xzvf whatweb-0.4.7.tar.gz
cd whatweb-0.4.7
./whatweb url
特性
- 拥有超过1700+个插件
- 若网站返回302,会跳转到重定向的网站
- 可以根据服务器返回的响应头确定网站使用的服务器类型,web中间件类型,cookie信息
- 可以从网站的源代码中确定网站使用了哪些JavaScript库
- 可以通过页面hash,path等确定网站使用的cms版本
- 查询网站ip及所属国家
- 多种日志格式:XML,JSON,MagicTree,RubyObject,MongoDB
- 可定制化HTTP头
- 可进行基础的认证设置
- 支持批量扫描网站
使用
whatweb [options] <URLs>
常用参数如下:
-h 查看帮助信息
--version 查看版本信息
-i 指定要扫描的文件
-v 详细显示扫描的结果
-a 指定运行级别
whatweb -v
查看工具帮助信息
whatweb --version
查看工具版本信息
whatweb -i 1.txt
将需要扫描的域名放到1.txt,批量扫描域名
whatweb -v www.baidu.com
显示扫描结果的详细信息
扫描等级
whatweb共有四个扫描等级,分别是1-4级,对应不同的扫描机制(当不指定扫描等级的时候,默认使用1级),同样的当等级越高,所需要的时间也越长。等级2不可用,需要注意一下。
- stealthy 每个目标发送一次http请求,并且会跟随重定向
- unused 不可用
- aggressive 每个目标发送少量的http请求,这些请求时根据参数为1时结果确定的
- heavy 每个目标会发送大量的http请求,会去尝试每一个插件
whatweb -a 4 www.baidu.com
当使用等级2时会报错提示未选择等级,这里是因为等级2已经不可用了。
扫描网段
whatweb --no-errors -t 255 192.168.71.0/24
**--no-errors:**该选项用于在输出中隐藏错误信息,使得输出更为简洁。
-t:该参数用于设置线程数,这里是255线程。
192.168.71.0/24:这里表示扫描的网段,同时也可以扫描单个IP
这里还可以跟-i、-v、-a参数配合使用,但是你会发现这样使用,扫描的结果都在终端中不好翻阅。接下来说明whatweb将结果导出。
导出
whatweb支持多种方式导出的格式
--log-brief=FILE 简单的记录,每个网站只记录一条返回信息
--log-verbose=FILE 详细输出
--log-xml=FILE 返回xml格式的日志
--log-json=FILE 以json格式记录日志
--log-json-verbose=FILE 记录详细的json日志
--log-magictree=FILE xml的树形结构
--log-object=FILE ruby对象格式
--log-mongo-database mongo数据库格式
json格式需要安装json依赖sudo gem install json
Mongo格式需要安装mongo依赖sudo gem install mongo
具体选取哪种导出格式根据自己需求选择
插件
whatweb拥有1700多个插件,所以它的拓展性还是比较强的,可以根据自己的需求使用特定的插件。
这里我是直接把whatweb的仓库git下来了
可以将插件更新一下
这里使用php这个插件,这个插件可以看目标是否有使用PHP,并且还可以将PHP的版本扫描出来。如果有需要的插件,可以先去查找一下有没有这个插件后再去使用。
whatweb -v -p php http://www.xiaodi8.com/
这里使用-v参数可以详细列出扫描结果
也可以不使用-v参数直接一行出结果,如果目标使用PHP的话扫描结果就会有PHP的显示,没有的话就不显示
而如果目标没有使用PHP的话,那就没有PHP的显示,但也可能是whatweb没有扫描出来