Whatweb简单使用

目录

简介

安装

debian/ubtuntu

redhat/centos

特性

使用

常用参数如下:

[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

特性

  1. 拥有超过1700+个插件
  2. 若网站返回302,会跳转到重定向的网站
  3. 可以根据服务器返回的响应头确定网站使用的服务器类型,web中间件类型,cookie信息
  4. 可以从网站的源代码中确定网站使用了哪些JavaScript库
  5. 可以通过页面hash,path等确定网站使用的cms版本
  6. 查询网站ip及所属国家
  7. 多种日志格式:XML,JSON,MagicTree,RubyObject,MongoDB
  8. 可定制化HTTP头
  9. 可进行基础的认证设置
  10. 支持批量扫描网站

使用

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不可用,需要注意一下。

  1. stealthy 每个目标发送一次http请求,并且会跟随重定向
  2. unused 不可用
  3. aggressive 每个目标发送少量的http请求,这些请求时根据参数为1时结果确定的
  4. 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没有扫描出来