ペネトレーションテスト&バグバウンティ
ハッカーが一番最初にすることは、IPアドレスを調べることでした。
次にすることは、対象のwebサイトを丸裸にすることです。
丸裸にするには、Kali Linuxの「whatweb」コマンドを利用します。
コマンドの名の通り、「対象のサイトはどんなサイトなんだろう」と思いますよね。
その問いに答えてくれるのがwhatwebなんです。
WhatWebとは
WhatWebは、ハッカーがハッキングや、ペネトレーションテスト、バグハンティングを行う際に、ウェブサイトやWebアプリケーションの検出と解析を行うためのウェブスキャンツールです。
コンテンツ管理システム(CMS)、ブログプラットフォーム、統計/分析パッケージ、JavaScriptライブラリ、ウェブサーバ、組み込みデバイスなどのウェブ技術を認識します。WhatWebには1800以上のプラグインがあり、それぞれが異なる何かを認識します。WhatWebはバージョン番号、メールアドレス、アカウントID、ウェブフレームワークモジュール、SQLエラーなども識別します。
Kali Linuxでは、セキュリティテストやネットワークスキャンのためのツールとしてインストールされています。
WhatWebの基本的な使い方
以下は、WhatWebを使用する基本的な手順です。
1.Kali LinuxでWhatWebを起動する
Kali Linuxのターミナルを開きます。WhatWebはKali Linuxにデフォルトでインストールされているため、特別な操作は必要ありません。
2.対象となるウェブサイトを指定する
WhatWebを実行するには、対象となるウェブサイトのURLやIPアドレスを指定する必要があります。たとえば、次のようにコマンドを入力します。
whatweb example.com
3.解析の待機
WhatWebは対象のウェブサイトにアクセスし、HTTPレスポンスを解析して情報を収集します。解析が完了するまで待機します。
4.解析結果の確認
WhatWebは、ウェブサイトに関する様々な情報を収集し、それをターミナル上に表示します。これには、使用されている技術やフレームワーク、セキュリティの脆弱性などが含まれます。
ここで利用する「やられサーバー」(脆弱サーバ)
ここでは、私のテスト環境である「やられサーバOWASP BWA」を利用します。
もし、インストールされるならこちらが参考になると思います。
実践的なハッキングシナリオ
通常のコマンドの「whatweb example.com」に以下の2つのオプションを付加します。
1.アグレッション・レベルオプション
アグレッション・レベルは、スピード/ステルス性と信頼性のトレードオフをコントロールする攻撃レベルを設定します。(デフォルトは1です。)
・使い方
whatweb –aggression=4 example.com
・アグレッション・レベルと説明
“1": Stealthy ターゲットごとに1つのHTTPリクエストを行い、リダイレクトにも従います。
“3": Aggressive レベル1のプラグインにマッチした場合、追加のリクエストを行 います。
“4": Heavy ターゲットごとに大量のHTTPリクエストを行います。すべてのプラグインからのURLが試行される。
※レベルが大きくなるほど、対象のサーバーから情報をたくさんリクエストするため、対象のサーバーに負荷がかかります。
2.プラグインの説明を含む詳細出力
whatweb -v example.com
3.上記の2つのオプションを付加して実行します。
whatweb –aggression 4 -v 10.0.2.6
※対象のサーバーが自分のテストサーバーの為、アグレッション・レベルを4(Heavy)にしています。
4.実行結果
以下続きます。
それでは、順番に見ていきましょう。
a.先頭の情報
総括している情報です。詳しい情報は下記をごらんください。
b.[ Apache ]Detected Plugin
WhatWebはウェブサイトの解析を通じてApacheのバージョン情報や使用されているモジュール、送信されるHTTPヘッダー情報などを収集します。これにより、ウェブサーバーがApacheであるかどうかや、そのバージョンが古い場合にはセキュリティ上のリスクがあるかどうかを判断できます。
c.[ Email ]Detected Plugin
ウェブサイト内のリンクやHTMLソースコードを解析してメールアドレスを収集し、そのドメインから電子メールサーバーの情報を取得します。これにより、サイトの連絡先情報やメールサーバーの構成を特定し、セキュリティや連絡手段の分析に役立ちます。
d.[ HTML5 ]Detected Plugin
ウェブサイトがHTML5で作成されていることを示す可能性があります。
e.[ HTTPServer ]Detected Plugin
ウェブサイトがどの種類のHTTPサーバーソフトウェアを利用しているかを示します。HTTPServerの情報は、WhatWebがウェブサイトのHTTPレスポンスを解析して収集します。この情報には、使用されているHTTPサーバーソフトウェアの名前やバージョンが含まれます。
f.[ JQuery ]Detected Plugin
ウェブサイトがjQueryというJavaScriptライブラリを使用していることを示します。
g.[ Matomo ]Detected Plugin
ウェブサイトがMatomo(以前はPiwikとして知られていた)というウェブ解析ツールを使用していることを示します。
h.[ OpenSSL ]Detected Plugin
ウェブサイトがOpenSSLという暗号ライブラリを使用していることを示します。WhatWebはウェブサイトのHTTPレスポンスやSSL証明書を解析し、OpenSSLが使用されているかどうかを検出します。
i.[ PHP ]Detected Plugin
ウェブサイトがPHPというサーバーサイドスクリプト言語を使用していることを示します。WhatWebがPHPを検出することで、ウェブサイトが動的なコンテンツを生成していることや、サーバーサイドの処理にPHPを利用していることが分かります。
j.[ Passenger ]Detected Plugin
ウェブサイトがPhusion Passenger(または単にPassengerとも呼ばれる)というアプリケーションサーバーを使用していることを示します。Passengerは、RubyやNode.js、Pythonなどのアプリケーションをホスティングするためのアプリケーションサーバーであり、ApacheやNginxなどのウェブサーバーと連携して動作します。
k.[ Perl ]Detected Plugin
ウェブサイトがPerlというプログラミング言語を使用していることを示します。WhatWebがPerlを検出することで、ウェブサイトがPerlスクリプトを使用して動的なコンテンツを生成していることや、バックエンド処理にPerlを利用していることが分かります。
l.[ Python ]Detected Plugin
ウェブサイトがPythonというプログラミング言語を使用していることを示します。WhatWebがPythonを検出することで、ウェブサイトがPythonスクリプトを使用して動的なコンテンツを生成していることや、バックエンド処理にPythonを利用していることが分かります。
m.[ Script ]Detected Plugin
ウェブサイトがスクリプト言語(JavaScriptなど)を使用していることを示す場合があります。スクリプトはウェブページの動的な機能やインタラクティブな要素を提供するために使用されます。
n.HTTP Headers
ウェブサーバーがクライアントに送信するHTTPヘッダーに関する情報を示します。
WhatWebの結果の利用について
簡単に言うと、解析結果をGoogleで検索します。
WhatWebの結果をGoogleで活用する際には、次のような方法があります。
1.脆弱性の検索
WhatWebの結果には、ウェブサイトやアプリケーションの使用技術やバージョン情報が含まれます。この情報を元に、特定のソフトウェアやフレームワークに既知の脆弱性が存在するかどうかをGoogleで検索します。
例えば、
「[対象のソフトウェア名] [vulnerabilities]又は[脆弱性]」
といったキーワードで検索します。(※vulnerabilitiesは脆弱性の意味です。)
脆弱性が見つかりました。
※英語記述だったので日本語に翻訳しています。
2.セキュリティアップデートの確認
WhatWebの結果に含まれるソフトウェアやフレームワークのバージョン情報を元に、それらの公式ウェブサイトやリリースノートをGoogleで検索し、セキュリティアップデートの有無を確認します。セキュリティアップデートがリリースされている場合は、対策を実施する必要があります。また、アップデートがされていない場合は、脆弱性があるということです。
ハッカーはIPアドレスを取得後、WhatWebコマンドを活用したウェブサイト解析でサイトを丸裸にするのまとめ
WhatWebコマンドは、ウェブサイトやWebアプリケーションの解析を行う際に強力なツールとなります。このツールを使うことで、ハッカーは対象となるウェブサイトの技術スタックやセキュリティ脆弱性などの情報を収集することが可能になります。