基于ruby开发的网安工具,,用于Web指纹识别。
WhatWeb 识别 网站Web 技术,包括内容管理系统 (CMS)、博客平台、统计/分析包、JavaScript 库、Web 服务器和嵌入式设备。WhatWeb 有超过 1800 个插件,每个插件都可以识别不同的东西。WhatWeb 还可以识别版本号、电子邮件地址、帐户 ID、Web 框架模块、SQL 错误等。
安装
kali自带。
环境
-
参考我的笔记《linux安装ruby.md》,安装2.5版本及以上的ruby,然后
yum install ruby-devel rubygems
,注意安装rubygems后会自动把ruby替换成2.0版,请手动替换回软链接。yum安装的不是最新版本的ruby,后续可能会报错,ruby -v 查看版本,建议安装2.5以上版本。 -
安装ruby所需要的包:
yum install gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison iconv-devel sqlite-devel
-
然后安装bundler。
安装whatweb
在官网的releases的Assets栏里找到最新版Source code(tar.gz) ,例如https://github.com/urbanadventurer/WhatWeb/archive/refs/tags/v0.5.5.tar.gz。
在CentOS服务器上执行wget https://github.com/urbanadventurer/WhatWeb/archive/refs/tags/v0.5.5.tar.gz
,然后tar -xzvf whatweb
,然后cd whatweb
,然后bundler install
安装项目所需依赖库。
./whatweb --version
# 查看版本,看是否安装成功;
./whatweb --help
# 查看相关使用方法
噢,对了,如果你不是CentOS,而是Ubantu的话,那更加简单,一条命令就全搞定: apt-get install whatweb
执行./whatweb www.baidu.com
如果报错如下:
表示需要安装iconv:gem install iconv
使用
./whatweb -h
# 查看帮助
whatweb --version
# 查看版本
扫描网站指纹
-
whatweb IP/域名
扫描指定网站的指纹例如./whatweb ink0.cn
# 目前没看到太多有价值的信息,只是nginx、WordPress、网站标题等小case的: -
whatweb IP/域名 -v
可以返回详细信息相比不带-v,多了很多文字描述,比如http响应报文的详细内容,但不带-v能保证显示了所有关键信息如nginx、JQuery。
扫描强度
-a
参数指定扫描等级。WhatWeb有4中扫描级别,通过数字1~4选择,默认为1:
-
1只会发送1个 HTTP GET 请求并跟踪重定向。 。
-
2不可用,正在开发
-
3会发送少量http请求,会猜测更多 URL,并在未经许可的情况下执行可能不合适的操作。
-
4会发送大量http请求,会尝试每一个插件
1级和3级的区别?
我自己测试时,在输出结果上没看到区别,来看看官方的解释:
1 级隐蔽扫描可识别出 smartor.is-root.com/forum/ 使用了 phpBB 版本 2:
$ ./whatweb smartor.is-root.com/forum/ http://smartor.is-root.com/forum/ [200] PasswordField[password], HTTPServer[Apache/2.2.15], PoweredBy[phpBB], Apache[2.2.15], IP[88.198.177.36], phpBB[2], PHP[5.2.13], X-Powered-By[PHP/5.2.13], Cookies[phpbb2mysql_data,phpbb2mysql_sid], Title[Smartors Mods Forums - Reloaded], Country[GERMANY][DE]3 级主动扫描会触发 phpBB 插件中的其他测试,该测试会识别网站使用的是 phpBB 版本 2.0.20 或更高版本:
$ ./whatweb -p plugins/phpbb.rb -a 3 smartor.is-root.com/forum/ http://smartor.is-root.com/forum/ [200] phpBB[2,>2.0.20]请注意,使用 -p 参数来仅选择 phpBB 插件。建议(但不是强制性的)在尝试以主动模式对软件版本进行指纹识别时选择特定插件。这种方法更加隐蔽,因为它将限制请求的数量。
WhatWeb 没有缓存,因此如果您在重定向 URL 上使用激进的插件,您可能会多次获取相同的文件。
whatweb 192.168.31.0/24
大道至简是这样的,不过我们习惯:whatweb --no-errors -t 255 192.168.31.0/24
# 扫描指定内网网段,就是把目标从域名/ip换成内网网段呗。
--no-errors:Suppress error messages;如果不加的话,你会看到一堆因该IP地址unreachabled而报error的输出:
-t:Number of simultaneous threads. Default: 25。
192.168.31.0/24:从192.168.31.0到192.168.31.255的IP地址范围。
批量扫描多个网站
扫描多个不同网站时,将网站域名/IP保存到文件中,使用-i
参数指定扫描的文件,i取自input-file。可以用 # 注释掉不想扫描的IP/域名。
导出扫描结果
whatweb www.fjrshg.com --log-xml=result.xml
将扫描结果导出文件,默认放在当前路径下。
常用的导出格式如下:
--log-brief 简单的记录,每个网站只记录一条返回信息
--log-verbose 详细输出
--log-xml xml格式的日志
--log-json json格式记录日志(需要安装json依赖sudo gem install json)
--log-json-verbose 详细的json日志
--log-magictree xml的树形结构
--log-object ruby对象格式
--log-mongo-database mongo数据库格式
插件
WhatWeb 有超过 1800 个插件,每个插件都可以识别不同的指纹。
-
whatweb -l
查看插件列表。
-
whatweb --info-plugins="插件名"
查看指定插件的信息。
插件本质上就是.rb的文件,存放在whatweb根目录/plugins/ 目录下,一个文件对应一个插件,这意味着WhatWeb有一千多个插件。
我们可以查看文件来学习别人的插件,或者根据图中的格式编写自己的插件。
上图核心代码看起来像是一串正则匹配表达式。
-
./whatweb -p plugins/html5.rb -a 3 ink0.cn
使用指定的插件文件去扫描。或者
./whatweb -p HTML5 -a 3 ink0.cn
使用指定的插件去扫描,当然
./whatweb -p html5 -a 3 ink0.cn
也可以。不过
./whatweb -p plugins/HTML5.rb -a 3 ink0.cn
就不可以了,因为linux区分文件名大小写。这样好处是有针对性,不用尝试全部插件,减少了发包量,不引起注意。
-
默认情况下,所有插件都会加载。 例如ink0.cn有HTML5指纹,可以被html5.ruby插件检测到:
即使我不指定插件,输出结果也有HTML5指纹:
如果网站没有这个指纹,是不会有相关输出的,例如下图输出就没有提及4D:
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://www.ink0.cn/index.php/2023/12/20/whatweb/
共有 0 条评论