
次世代ウェブスキャナー
開発者: Andrew Horton urbanadventurer & Brendan Coles bcoles
最新リリース: v0.6.4. 2026年4月3日
ライセンス: GPLv2
本製品は、ライセンス契約に記載された条件に従うものとします。WhatWebの詳細については、https://github.com/urbanadventurer/ をご覧ください。
Wiki: https://github.com/urbanadventurer/WhatWeb/wiki/
ご質問、ご意見、ご懸念がございましたら、開発者に連絡する前にドキュメントをご確認ください。フィードバックはいつでも歓迎します。
WhatWebはウェブサイトを識別します。その目的は、「あのウェブサイトは何か?」という問いに答えることです。WhatWebは、コンテンツ管理システム(CMS)、ブログプラットフォーム、統計/分析パッケージ、JavaScriptライブラリ、ウェブサーバー、組み込みデバイスなど、ウェブ技術を認識します。WhatWebには1800以上のプラグインがあり、それぞれが異なるものを認識します。また、バージョン番号、メールアドレス、アカウントID、ウェブフレームワークモジュール、SQLエラーなども識別します。
WhatWebはステルス性と高速性、または徹底性と低速性の両方を選択できます。WhatWebは、速度と信頼性のトレードオフを制御するための攻撃性レベルをサポートしています。ブラウザでウェブサイトにアクセスすると、そのトランザクションには、そのウェブサイトを動かしているウェブ技術のヒントが多数含まれています。場合によっては、1回のウェブページ訪問でウェブサイトを識別するのに十分な情報が得られますが、不十分な場合は、WhatWebがさらにウェブサイトを調査できます。デフォルトの攻撃性レベルは「ステルス」と呼ばれ、最も高速で、ウェブサイトに対して1回のHTTPリクエストのみが必要です。これは公開ウェブサイトのスキャンに適しています。より攻撃的なモードは、ペネトレーションテスト用に開発されました。
ほとんどのWhatWebプラグインは徹底しており、微妙なものから明白なものまで、さまざまな手がかりを認識します。例えば、ほとんどのWordPressウェブサイトは、meta 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.6.4.
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.6.3.
--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.
--no-cookies Disable automatic cookie handling (improves performance
with high thread counts).
### Cookie Handling
WhatWeb automatically handles cookies across redirects by default. This improves fingerprinting accuracy on sites requiring session management.
- `--cookie, -c=COOKIES` - Set initial cookies manually
- `--cookie-jar=FILE` - Load cookies from file
- `--no-cookies` - Disable automatic cookie handling
**Performance Note:** With high thread counts (>100), cookie handling may impact performance. Use `--no-cookies` for maximum speed on large scans.
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=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.6.4).
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
プラグイン名 - 説明
--------------------------------------------------------------------------------
1024-CMS - 1024は、CMSの実装を先導する数少ないCMSの一つです...
360-Web-Manager - 360-Web-Manager
3COM-NBX - 3COM NBX電話システム。NBX NetSetユーティリティはWebインターフェースで...
3dcart - 3dcart - 3dcartショッピングカートソフトウェアは、完全なeコマース...
4D - 4D Webアプリケーション展開サーバー
4images - 4imagesは強力なWebベースの画像ギャラリー管理システムです。特...
... (省略)
プラグインの詳細を表示したり、キーワードでプラグインを検索する:
$ ./whatweb -I phpBB
WhatWeb詳細プラグイン一覧
phpBBを検索中
================================================================================
プラグイン: phpBB
--------------------------------------------------------------------------------
説明: phpBBは無料のフォーラムです
ウェブサイト: http://phpbb.org/
作者: Andrew Horton
バージョン: 0.3
機能: [あり] パターンマッチング (7)
[あり] パターンマッチングによるバージョン検出
[あり] 受動的マッチ用関数
[あり] 能動的マッチ用関数
[あり] Google Dorks (1)
Google Dorks:
[1] "Powered by phpBB"
================================================================================
全てのプラグインがデフォルトでロードされます。
プラグインは、ディレクトリ、ファイル、プラグイン名をカンマ区切りリストで指定し、-p または --plugin コマンドラインオプションで選択できます。
各リスト項目には修飾子を付けることができます: + はフルセットに追加、- はフルセットから削除、修飾子なしはデフォルトを上書きします。
--dorks <プラグイン名> コマンドラインオプションは、選択したプラグインのGoogle dorkを返します。例えば、--dorks wordpress は "is proudly powered by WordPress" を返します。
--grep, -g コマンドラインオプションは、ターゲットページ内で指定された文字列を検索し、見つかった場合に Grep というプラグインでマッチを返します。
WhatWebには複数の攻撃レベルがあります。デフォルトの攻撃レベルは1(ステルス)で、単一のHTTP GETリクエストを送信し、リダイレクトにも従います。
--aggression, -a
1. ステルス ターゲットごとに1回のHTTPリクエストを行います。リダイレクトにも従います。
2. 未使用
3. 攻撃的 ターゲットごとに数回のHTTPリクエストを行う可能性があります。これにより、レベル1のリクエストで最初に識別されたターゲットに対してのみ、攻撃的なプラグインがトリガーされます。
4. ヘビー ターゲットごとに多数のHTTPリクエストを行います。すべてのプラグインからの攻撃的テストがすべてのURLに使用されます。
レベル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回避に役立ちます。
WhatWebはスレッド数に基づいて、画面出力とログファイルの両方の出力パフォーマンスを自動的に最適化します:
低スレッド数 (1-5):
中スレッド数 (6-50):
高スレッド数 (51+):
これらのデフォルトは画面出力とログファイルの両方で上書きできます:```bash
./whatweb --output-sync -t 100 --log-brief=results.txt targets.txt
./whatweb --output-buffer-size=50 -t 100 --log-verbose=detailed.log targets.txt
./whatweb --output-buffer-size=0 -t 10 --log-json=results.json targets.txt
これらの最適化は、brief、verbose、XML、JSON、およびその他のログ形式を含むすべての出力形式に適用されます。
#### 技術詳細
**出力同期動作:**
- **有効**: 各行の出力は即座にディスク/画面にフラッシュされます(低速だがリアルタイム)
- **無効**: 出力は書き込み前にメモリにバッファリングされます(高速だが遅延あり)
**バッファサイズの影響:**
- **サイズ1**: 最小限のバッファリング、ほぼ即時出力
- **サイズ10**: 小さなバッファが書き込み前に約10件の結果を保持
- **サイズ25+**: 大きなバッファによりI/Oシステムコールが減少し、パフォーマンス向上
- **サイズ0**: 完全にバッファリングなし(同期有効と同等)
### プロファイリングサポート
パフォーマンスプロファイリングを有効にしてボトルネックを特定します:```bash
# Basic profiling to stderr
WHATWEB_PROFILE=1 ./whatweb -t 25 targets.txt
# Save profile to file
WHATWEB_PROFILE=1 WHATWEB_PROFILE_FILE=profile.txt ./whatweb -t 25 targets.txt
注釈: プロファイリングには ruby-prof gem が必要です: gem install ruby-prof
-U または --user-agent コマンドラインオプションを使用してユーザーエージェントを変更すると、WhatWeb に対する Snort IDS ルールを回避できます。
IP アドレス範囲をスキャンする場合、WhatWeb でスキャンする前に massscan のようなポートスキャナを使用してポート 80 が開いているものを発見する方がはるかに効率的です。
Charset プラグインによる文字セット検出は、より多くの CPU を必要とするため、パフォーマンスが大幅に低下します。これは JSON および MongoDB ログに必要です。
WhatWeb は MongoDB ログと文字セット検出のためのオプションの依存関係をサポートしています。
オプションの依存関係があるため、Gemfile はグループに分割されており、WhatWeb には Gemfile.lock が付属していません。Gemfile.lock が必要な場合は、bundle install を実行すると作成されます。
Bundler グループを使用してインストールできます。
MongoDB ログを有効にするには:```bash
bundle install --with mongo
GEMFILE_GROUPS="default mongo" bundle install
### 文字セット検出
文字セット検出を有効にするには(JSONおよびMongoDBのロギングに必要):```bash
# Install dependencies
bundle install --with rchardet
# If you're using an older version of Bundler
GEMFILE_GROUPS="default rchardet" bundle install
# Copy the charset plugin
cp plugins-disabled/charset.rb my-plugins/
すべてのオプション依存関係を一度にインストールするには:```bash
bundle install --with mongo rchardet
GEMFILE_GROUPS="default mongo rchardet" bundle install
注意: 文字セット検出はより多くのCPUを必要とするため、パフォーマンスが劇的に低下します。必要な場合のみ有効にしてください。
## プラグインの作成
プラグインは簡単に作成できます。まず、*my-plugins/* フォルダ内のプラグインチュートリアルを参照してください。
* [プラグインチュートリアル](https://github.com/urbanadventurer/WhatWeb/tree/master/my-plugins)
プラグインチュートリアルの概要はこちらです。[plugin-tutorials.txt](https://github.com/urbanadventurer/WhatWeb/tree/master/plugin-development/plugin-tutorials.txt)
チュートリアルを進めた後は、[wiki](https://github.com/urbanadventurer/WhatWeb/wiki/) の開発セクションをお読みください。
* [プラグイン作成のための情報源](https://github.com/urbanadventurer/WhatWeb/wiki/Sources-for-Plugin-Writing)
* [WhatWebプラグインの開発方法(最新ではない)](https://github.com/urbanadventurer/WhatWeb/wiki/How-to-develop-WhatWeb-plugins)
## 更新情報と追加情報
WhatWebの開発ビルドは定期的に更新されています。
* 未リリースの更新については開発ブランチを確認してください。
詳細なドキュメントや高度な使用法については、Wikiをご覧ください。
* Wiki: https://github.com/urbanadventurer/WhatWeb/wiki/
## リリース履歴
- Version 0.6.4 Released April 3, 2026
- Version 0.6.3 Released October 18, 2025
- Version 0.6.2 Released August 25, 2025
- Version 0.6.1 Released July 30th, 2025
- Version 0.5.4 Released December 14th, 2020
- Version 0.5.3 Released October 1st, 2020
- Version 0.5.2 Released June 9th, 2020
- Version 0.5.1 Released February 25th, 2020
- Version 0.5.0 Released June 9th, 2019
- Version 0.4.9 Released November 23rd, 2017
- Version 0.4.8-dev (Continuous release from 2012 to 2017)
- Version 0.4.7 Released April 5th, 2011
- Version 0.4.6 Released March 25th, 2011
- Version 0.4.5 Released August 17th, 2010
- Version 0.4.4 Released June 29th, 2010
- Version 0.4.3 Released May 24th, 2010
- Version 0.4.2 Released April 30th, 2010
- Version 0.4.1 Released April 28th, 2010
- Version 0.4 Released March 14th, 2010
- Version 0.3 Released at Kiwicon III (kiwicon.org), November 2nd, 2009
## クレジット
### 開発者
+ Andrew Horton (@urbanadventurer)
+ Brendan Coles (@bcoles)
### 貢献者
WhatWebに貢献してくださった以下の方々に感謝します。
+ Emilio Casbas
+ Louis Nyffenegger
+ Patrik Wallström (@pawal)
+ Caleb Anderson (@dirtyfilthy)
+ Tonmoy Saikia
+ Aung Khant (@yehgdotnet)
+ Erik Inge Bolsø
+ [email protected]
+ Steve Milner (@ashcrow)
+ Michal Ambroz
+ Gremwell
+ Sagar Prakash Junnarkar (@sagarjunnarkar)
+ GertBerger
+ Quintin Poirier
+ Eric Sesterhenn
+ dengjw (@jawa)
+ Pedro Worcel (@droop)
+ Matthieu Keller (@maggick)
+ Peter (2pvdl)
+ Napz (@RootCon)
+ @nilx042
+ Fabian Affolter (@fabaff)
+ Andrew Silvernail (@buff3r)
+ Andre Ricardo (@andrericardo)
+ nikosk
+ Patrick Thomas (@coffeetocode)
+ Guillaume Delcaour (@guikcd)
+ Sean (@wiifm69)
+ Matthieu Keller (@maggick)
+ Raul (@raurodse)
+ Andrew Petro (@apetro)
+ Artem Taranyuk (@610)
+ Matti Paksula (@matti)
+ Tim Smith (@tas50)
+ Sarthak Munshi (@saru95)
+ @rdubourguais
+ @SlivTaMere
+ @Code0x58
+ @iGeek098
+ @andreas-becker
+ @csalazar
+ Igor Rzegocki (@ajgon)
+ @juananpe
+ @lins05
+ @anozoozian
+ Bhavin Senjaliya (@bhavin1223)
+ Chad Brigance (@ChadBrigance)
+ Daniel Maldonado
+ Elias Dorneles (@eliasdorneles)
+ Eugene Amirov
+ Gregory Boddin (@gboddin)
+ Guillaume Delacour
+ Janosch Maier (@phylu)
+ Max Davitt (@themaxdavitt)
+ Naglis Jonaitis (@naglis)
+ Shuai Lin
+ Sigit Dewanto (@sigit)
+ @wh1tenoise
+ @golewski
+ @Allactaga
+ @elcodigok
+ @SlivTaMere
+ @rmaksimov
+ Melvil Guillaume (@mguillau42)
+ @LrsK
+ @abenson
+ @blshkv
+ Weidsom Nascimento (@weidsom)
+ Marcelo Gimenes (@cgimenes)
+ @xambroz
+ Baptiste Fontaine (@bfontaine)
+ @definity
+ @huntertl
+ Michael Ippolito (@spookycave)
+ @mkauschi
+ @frapava98
+ John de Kroon (@johndekroon)
+ @mtisec
+ Claude from Anthropic
WhatWebに貢献されたすべての方々を把握することは困難です。もしあなたの名前が記載されていない場合は、お知らせください。