アーバンアドベンチャー家のアンドリュー・ホートン氏とブレンダン・コールズ・ビーコールズ氏によって開発されました。
最新リリース: v0.5.5。 2021年1月16日
ライセンス: GPLv2
この製品には、使用許諾契約に詳述されている条件が適用されます。 WhatWeb の詳細については、次のサイトをご覧ください。
ホームページ: https://Morningstarsecurity.com/research/whatweb
Wiki: https://github.com/urbanadventurer/WhatWeb/wiki/
WhatWeb に関して質問、コメント、懸念がある場合は、開発者に連絡する前にドキュメントを参照してください。フィードバックはいつでも大歓迎です。
WhatWeb は Web サイトを識別します。その目標は、「その Web サイトは何ですか?」という質問に答えることです。 WhatWeb は、コンテンツ管理システム (CMS)、ブログ プラットフォーム、統計/分析パッケージ、JavaScript ライブラリ、Web サーバー、組み込みデバイスなどの Web テクノロジーを認識します。 WhatWeb には 1800 を超えるプラグインがあり、それぞれが異なるものを認識します。 WhatWeb は、バージョン番号、電子メール アドレス、アカウント ID、Web フレームワーク モジュール、SQL エラーなども識別します。
WhatWeb は、ステルスで高速な場合もあれば、徹底しているが遅い場合もあります。 WhatWeb は、速度と信頼性の間のトレードオフを制御するための攻撃性レベルをサポートしています。ブラウザーで Web サイトにアクセスすると、トランザクションには、その Web サイトにどのような Web テクノロジーが搭載されているかを示す多くのヒントが含まれます。場合によっては、1 回の Web ページの訪問に Web サイトを特定するのに十分な情報が含まれる場合がありますが、そうでない場合、WhatWeb は Web サイトをさらに調査することができます。 「ステルス」と呼ばれるデフォルトの攻撃レベルは最も高速で、Web サイトの HTTP リクエストを 1 つだけ必要とします。これは、公開 Web サイトのスキャンに適しています。侵入テストで使用するために、より積極的なモードが開発されました。
ほとんどの WhatWeb プラグインは徹底的であり、微妙な手がかりから明白な手がかりまで、さまざまな手がかりを認識します。たとえば、ほとんどの WordPress Web サイトはメタ HTML タグ (例: '') で識別できますが、少数の WordPress Web サイトはこの識別タグを削除していますが、これは 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 プラグインで追加のテストをトリガーし、Web サイトが 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 でスキャンする前に、マススキャンなどのポート スキャナーを使用して、ポート 80 が開いているポートを検出する方がはるかに効率的です。
Charset プラグインを使用した文字セット検出では、より多くの CPU が必要となり、パフォーマンスが大幅に低下します。これは、JSON および MongoDB のログ記録に必要です。
MongoDB のログ記録を有効にするには、mongo gem をインストールします。 gem インストール mongo
文字セット検出と MongoDB ログを有効にするには、rchardet gem をインストールします。 gem install rchardet cp plugins-disabled/charset.rb my-plugins/
プラグインは簡単に作成できます。まず、 my-plugins/フォルダーにあるプラグインのチュートリアルを確認してください。
プラグインチュートリアルの概要はここにあります。プラグインチュートリアル.txt
チュートリアルを進めた後、Wiki の開発セクションを読んでください。
WhatWeb 開発ビルドには定期的なアップデートが含まれています。
詳しいドキュメントや高度な使用テクニックについては、Wiki を参照してください。
WhatWeb に貢献してくださった以下の方々に感謝します。
WhatWeb に貢献したすべての人々を追跡することは困難です。お名前が記載されていない場合は、お知らせください。