由城市冒险家 Andrew Horton 和 Brendan Coles bcoles 开发
最新版本:v0.5.5。 2021 年 1 月 16 日
许可证:GPLv2
本产品受许可协议中详细条款的约束。有关 WhatWeb 的更多信息,请访问:
主页:https://morningstarsecurity.com/research/whatweb
维基:https://github.com/urbanadventurer/WhatWeb/wiki/
如果您对 WhatWeb 有任何问题、意见或疑虑,请在联系开发人员之一之前查阅文档。随时欢迎您的反馈。
WhatWeb 识别网站。其目标是回答“该网站是什么?”的问题。 WhatWeb 认可 Web 技术,包括内容管理系统 (CMS)、博客平台、统计/分析包、JavaScript 库、Web 服务器和嵌入式设备。 WhatWeb 有超过 1800 个插件,每个插件都能识别不同的东西。 WhatWeb 还可以识别版本号、电子邮件地址、帐户 ID、Web 框架模块、SQL 错误等。
WhatWeb 可以是隐秘且快速的,也可以是彻底但缓慢的。 WhatWeb 支持攻击级别来控制速度和可靠性之间的权衡。当您在浏览器中访问某个网站时,交易中会包含许多有关哪些网络技术为该网站提供支持的提示。有时,单个网页访问包含足够的信息来识别网站,但如果没有,WhatWeb 可以进一步询问该网站。默认的攻击级别称为“隐秘”,是最快的,并且只需要网站的一个 HTTP 请求。这适合扫描公共网站。更积极的模式被开发用于渗透测试。
大多数 WhatWeb 插件都很全面,可以识别一系列从微妙到明显的线索。例如,大多数 WordPress 网站可以通过元 HTML 标签来识别,例如“”,但少数 WordPress 网站删除了此识别标签,但这并不妨碍 WhatWeb。 WordPress WhatWeb 插件有超过 15 项测试,其中包括检查图标、默认安装文件、登录页面以及检查相关链接中的“/wp-content/”。
使用 WhatWeb 扫描 reddit.com。
$ ./whatweb reddit.com
http://reddit.com [301 Moved Permanently] Country[UNITED STATES][US], HTTPServer[snooserv], IP[151.101.65.140], RedirectLocation[https://www.reddit.com/], UncommonHeaders[retry-after,x-served-by,x-cache-hits,x-timer], Via-Proxy[1.1 varnish]
https://www.reddit.com/ [200 OK] Cookies[edgebucket,eu_cookie_v2,loid,rabt,rseor3,session_tracker,token], Country[UNITED STATES][US], Email[[email protected],[email protected]], Frame, HTML5, HTTPServer[snooserv], HttpOnly[token], IP[151.101.37.140], Open-Graph-Protocol[website], Script[text/javascript], Strict-Transport-Security[max-age=15552000; includeSubDomains; preload], Title[reddit: the front page of the internet], UncommonHeaders[fastly-restarts,x-served-by,x-cache-hits,x-timer], Via-Proxy[1.1 varnish], X-Frame-Options[SAMEORIGIN]
.$$$ $. .$$$ $.
$$$$ $$. .$$$ $$$ .$$$$$$. .$$$$$$$$$$. $$$$ $$. .$$$$$$$. .$$$$$$.
$ $$ $$$ $ $$ $$$ $ $$$$$$. $$$$$ $$$$$$ $ $$ $$$ $ $$ $$ $ $$$$$$.
$ `$ $$$ $ `$ $$$ $ `$ $$$ $$' $ `$ `$$ $ `$ $$$ $ `$ $ `$ $$$'
$. $ $$$ $. $$$$$$ $. $$$$$$ `$ $. $ :' $. $ $$$ $. $$$$ $. $$$$$.
$::$ . $$$ $::$ $$$ $::$ $$$ $::$ $::$ . $$$ $::$ $::$ $$$$
$;;$ $$$ $$$ $;;$ $$$ $;;$ $$$ $;;$ $;;$ $$$ $$$ $;;$ $;;$ $$$$
$$$$$$ $$$$$ $$$$ $$$ $$$$ $$$ $$$$ $$$$$$ $$$$$ $$$$$$$$$ $$$$$$$$$'
WhatWeb - Next generation web scanner version 0.5.5.
Developed by Andrew Horton (urbanadventurer) and Brendan Coles (bcoles)
Homepage: https://morningstarsecurity.com/research/whatweb
Usage: whatweb [options] <URLs>
TARGET SELECTION:
<TARGETs> Enter URLs, hostnames, IP addresses, filenames or
IP ranges in CIDR, x.x.x-x, or x.x.x.x-x.x.x.x
format.
--input-file=FILE, -i Read targets from a file. You can pipe
hostnames or URLs directly with -i /dev/stdin.
TARGET MODIFICATION:
--url-prefix Add a prefix to target URLs.
--url-suffix Add a suffix to target URLs.
--url-pattern Insert the targets into a URL. Requires --input-file,
eg. www.example.com/%insert%/robots.txt
AGGRESSION:
The aggression level controls the trade-off between speed/stealth and
reliability.
--aggression, -a=LEVEL Set the aggression level. Default: 1.
Aggression levels are:
1. Stealthy Makes one HTTP request per target. Also follows redirects.
3. Aggressive If a level 1 plugin is matched, additional requests will be
made.
4. Heavy Makes a lot of HTTP requests per target. Aggressive tests from
all plugins are used for all URLs.
HTTP OPTIONS:
--user-agent, -U=AGENT Identify as AGENT instead of WhatWeb/0.5.5.
--header, -H Add an HTTP header. eg "Foo:Bar". Specifying a default
header will replace it. Specifying an empty value, eg.
"User-Agent:" will remove the header.
--follow-redirect=WHEN Control when to follow redirects. WHEN may be `never',
`http-only', `meta-only', `same-site', or `always'.
Default: always.
--max-redirects=NUM Maximum number of contiguous redirects. Default: 10.
AUTHENTICATION:
--user, -u=<user:password> HTTP basic authentication.
--cookie, -c=COOKIES Provide cookies, e.g. 'name=value; name2=value2'.
--cookiejar=FILE Read cookies from a file.
PROXY:
--proxy <hostname[:port]> Set proxy hostname and port.
Default: 8080.
--proxy-user <username:password> Set proxy user and password.
PLUGINS:
--list-plugins, -l List all plugins.
--info-plugins, -I=[SEARCH] List all plugins with detailed information.
Optionally search with keywords in a comma
delimited list.
--search-plugins=STRING Search plugins for a keyword.
--plugins, -p=LIST Select plugins. LIST is a comma delimited set of
selected plugins. Default is all.
Each element can be a directory, file or plugin name and
can optionally have a modifier, eg. + or -
Examples: +/tmp/moo.rb,+/tmp/foo.rb
title,md5,+./plugins-disabled/
./plugins-disabled,-md5
-p + is a shortcut for -p +plugins-disabled.
--grep, -g=STRING|REGEXP Search for STRING or a Regular Expression. Shows
only the results that match.
Examples: --grep "hello"
--grep "/he[l]*o/"
--custom-plugin=DEFINITIONtDefine a custom plugin named Custom-Plugin,
--custom-plugin=DEFINITION Define a custom plugin named Custom-Plugin,
Examples: ":text=>'powered by abc'"
":version=>/powered[ ]?by ab[0-9]/"
":ghdb=>'intitle:abc "powered by abc"'"
":md5=>'8666257030b94d3bdb46e05945f60b42'"
--dorks=PLUGIN List Google dorks for the selected plugin.
OUTPUT:
--verbose, -v Verbose output includes plugin descriptions. Use twice
for debugging.
--colour,--color=WHEN control whether colour is used. WHEN may be `never',
`always', or `auto'.
--quiet, -q Do not display brief logging to STDOUT.
--no-errors Suppress error messages.
LOGGING:
--log-brief=FILE Log brief, one-line output.
--log-verbose=FILE Log verbose output.
--log-errors=FILE Log errors.
--log-xml=FILE Log XML format.
--log-json=FILE Log JSON format.
--log-sql=FILE Log SQL INSERT statements.
--log-sql-create=FILE Create SQL database tables.
--log-json-verbose=FILE Log JSON Verbose format.
--log-magictree=FILE Log MagicTree XML format.
--log-object=FILE Log Ruby object inspection format.
--log-mongo-database Name of the MongoDB database.
--log-mongo-collection Name of the MongoDB collection. Default: whatweb.
--log-mongo-host MongoDB hostname or IP address. Default: 0.0.0.0.
--log-mongo-username MongoDB username. Default: nil.
--log-mongo-password MongoDB password. Default: nil.
--log-elastic-index Name of the index to store results. Default: whatweb
--log-elastic-host Host:port of the elastic http interface. Default: 127.0.0.1:9200
PERFORMANCE & STABILITY:
--max-threads, -t Number of simultaneous threads. Default: 25.
--open-timeout Time in seconds. Default: 15.
--read-timeout Time in seconds. Default: 30.
--wait=SECONDS Wait SECONDS between connections.
This is useful when using a single thread.
HELP & MISCELLANEOUS:
--short-help Short usage help.
--help, -h Complete usage help.
--debug Raise errors in plugins.
--version Display version information. (WhatWeb 0.5.5).
EXAMPLE USAGE:
* Scan example.com.
./whatweb example.com
* Scan reddit.com slashdot.org with verbose plugin descriptions.
./whatweb -v reddit.com slashdot.org
* An aggressive scan of wired.com detects the exact version of WordPress.
./whatweb -a 3 www.wired.com
* Scan the local network quickly and suppress errors.
whatweb --no-errors 192.168.0.0/24
* Scan the local network for https websites.
whatweb --no-errors --url-prefix https:// 192.168.0.0/24
* Scan for crossdomain policies in the Alexa Top 1000.
./whatweb -i plugin-development/alexa-top-100.txt
--url-suffix /crossdomain.xml -p crossdomain_xml
支持以下类型的日志记录:
您可以通过指定多个命令行日志记录选项同时输出到多个日志。想要 SQL 输出的高级用户应该阅读源代码以查看不支持的功能。
匹配是通过以下方式进行的:
列出支持的插件:
$ ./whatweb -l
Plugin Name - Description
--------------------------------------------------------------------------------
1024-CMS - 1024 is one of a few CMS's leading the way with the implementation...
360-Web-Manager - 360-Web-Manager
3COM-NBX - 3COM NBX phone system. The NBX NetSet utility is a web interface i...
3dcart - 3dcart - The 3dcart Shopping Cart Software is a complete ecommerce s...
4D - 4D web application deployment server
4images - 4images is a powerful web-based image gallery management system. Fe...
... (truncated)
要查看有关插件的更多详细信息或搜索关键字的插件:
$ ./whatweb -I phpBB
WhatWeb Detailed Plugin List
Searching for phpBB
================================================================================
Plugin: phpBB
--------------------------------------------------------------------------------
Description: phpBB is a free forum
Website: http://phpbb.org/
Author: Andrew Horton
Version: 0.3
Features: [Yes] Pattern Matching (7)
[Yes] Version detection from pattern matching
[Yes] Function for passive matches
[Yes] Function for aggressive matches
[Yes] Google Dorks (1)
Google Dorks:
[1] "Powered by phpBB"
================================================================================
默认情况下加载所有插件。
可以使用 -p 或 --plugin 命令行选项按目录、文件或插件名称作为逗号分隔列表来选择插件。
每个列表项可能有一个修饰符:+ 添加到完整集合,- 从完整集合中删除,并且没有修饰符覆盖默认值。
--dorks 命令行选项返回所选插件的 google dorks。例如,--dorks wordpress 返回“自豪地由 WordPress 提供支持”
--grep, -g 命令行选项在目标页面中搜索所选字符串,如果找到,则在名为 Grep 的插件中返回匹配项。
WhatWeb 具有多个级别的攻击性。默认情况下,攻击级别设置为 1(隐秘),它发送单个 HTTP GET 请求并遵循重定向。
--aggression, -a
1. Stealthy Makes one HTTP request per target. Also follows redirects.
2. Unused
3. Aggressive Can make a handful of HTTP requests per target. This triggers
aggressive plugins for targets only when those plugins are
identified with a level 1 request first.
4. Heavy Makes a lot of HTTP requests per target. Aggressive tests from
all plugins are used for all URLs.
3 级攻击性插件会猜测更多 URL,并在未经许可的情况下执行可能不合适的操作。 WhatWeb 目前不支持插件中的任何入侵/利用级别测试。
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 具有多种选项来提高性能和稳定性。
--wait 和 --max-threads 命令可用于协助 IDS 规避。
使用 -U 或 --user-agent 命令行选项更改用户代理将避免 WhatWeb 的 Snort IDS 规则。
如果您要扫描 IP 地址范围,那么在使用 WhatWeb 扫描之前,使用 Massscan 等端口扫描仪来发现哪些端口已打开,会更有效。
使用 Charset 插件进行字符集检测会需要更多 CPU,从而显着降低性能。这是 JSON 和 MongoDB 日志记录所必需的。
要启用 MongoDB 日志记录,请安装 mongo gem。宝石安装蒙戈
要启用字符集检测和 MongoDB 日志记录,请安装 rchardet gem。 gem install rchardet cp plugins-disabled/charset.rb my-plugins/
插件很容易编写。首先浏览my-plugins/文件夹中的插件教程。
插件教程的概述在这里。插件教程.txt
完成教程后,请通读 wiki 的开发部分。
WhatWeb 开发版本具有定期更新功能。
浏览 wiki 以获取更多文档和高级使用技术。
感谢以下为 WhatWeb 做出贡献的人员。
追踪所有为 WhatWeb 做出贡献的人是很困难的。如果您的名字丢失,请告诉我。