whatwebはrubyで記述された、webサイトの探査ツールです。
ターゲットのWebサイトが使用している技術(CMS、Webサーバー、Javaスクリプトライブラリなど)を特定します。
このツールはOSINTやペネトレーションテスト、脆弱性調査の事前調査に使用されます。
例によって、ラズパイ5からラズパイ4Bに立てたサイトを攻撃検査します。

自分の管理下のサーバーをターゲットにしましょう。(特に攻撃性の高いオプション ” -a 3 ” や ” -a 4 ” の他者への使用は迷惑行為となります)
ヘルプの表示
kali ー 01-Reconnaissance ー Web VulnerabilityScanning ー whatweb
で表示されます。


バージョンは0.5.5
ターミナル上で ” whatweb -h ” でも同様に表示されます。
基本的使用法
最も基本的な使用法は下記の通りです。
whatweb ターゲットURL

結果の解釈
このサイトは中身の無いサイトですので、実際の稼働中のサイトでは他にも色々な項目が出力されると思います。
出力表示 | 意味 |
---|---|
http://192.198.11.21 [200 OK] | ドメイン名 [response status code メッセージ] |
Apache [2.4.64] | Webサーバー [バージョン] |
Country [RESERVED][ZZ] | 国名 [本来ならばIPアドレスから推定されるサーバー存在国名が表示されますが、今回はLAN用に予約されたIPなのでこのように表示されています] |
HYML5 | HTMLのバージョン |
HTTPServer[Debian Linux][Apache/2.4.64 (Debian) ] | HTTPServer [Devian系Linuxであるkali上のApacheを使用] |
IP [192.168.11.21] | IPアドレス |
MetaGenerator [WordPress 6.8.2] | CMS (WordPress)とバージョン |
Script[importmap, module, speculationrules] | 検出された(何らかの)スクリプト |
Title [Test-Site] | webサイトのタイトルタグ |
UncommonHeaders[Link] | 一般的でないHTTPヘッダーとして[Link]を検出 |
WordPress [6.8.2] | ワードプレスのバージョン |
アグレッシブな検査実行
オプション ” -a 数字 ” で検査スピードを調整します。
1, 3, 4の3種類で、デフォルトは1
数字が上がるほど実行スピードが上がりますが、ステルス性は失われます。
数字が上がるほどターゲットサーバーに負荷がかかります = 迷惑行為になります。
ちなみにスレッド数(同時並列処理数)は ” -t ” オプションで調整が出来、デフォルトは25となっています。

検査結果の詳細な出力
” -v ” オプションで詳細な出力表示となります。


” -vv ” でさらに詳細に表示されます。が、各項目が丁寧に表示されるだけで、項目が増えたりはしないようです。
出力の保存
whatweb ターゲットURL –log-verbose=出力ファイル名
下の例では、 ” WHATWEB.log ” という名のファイルに書き出していますが、このファイルが現在のディレクトリに生成されます。

その他の出力形式
オプション | 出力形式 |
---|---|
–log-brief=FILE.txt | 簡潔な形式でファイル出力 |
–log-xml=FILE.xml | XML形式 |
–log-json=FILE.json | JSON形式 |
whatwebのプラグインについて
WhatWebのプラグインは、ターゲットサイトのWebアプリケーションが使っている技術やCMSなどを識別するための「探知ロジック」の集合体です。つまり、WhatWebの分析力の“頭脳”とも言える部分です。
以下のコマンドで表示されます。
whatweb -l


全部で1824個とあります。
プラグインを通じた調査の成果は、出力欄に表示されます。
プラグインの存在場所は ” /usr/lib/whatweb/plugins/ ” です。
まとめ
whatwebはwebサイトに使用されている技術を探索するツールです。
このツールは、別のWebサイトを探索するツールに引き続き使用されることが多いようです。
” ffuf ” や ” dirb ” , ” dirbuster ” , ” gobuster ” などが探し出した隠しURLを、精査分析するために使うツールが ” whatweb ” です。
下にその例を示します。
ffufとの連携について
以下は ” ffuf ” ツールとの連携手順の1例です。
- ” ffuf ” ツールでターゲットのwebサイトを偵察し、結果を ” OUTPUT1.csv ” に保存。
- これを ” cut ” コマンドで整形し、結果を ” OUTPUT2.txt ” に保存。
- これを ” whatweb ” ツールで精査、結果を ” OUTPUT3.txt ” に保存。
1. ffufでターゲットサイトの関連URLを列挙
まず、 ” ffuf ” でターゲットサイトの関連URLを書き出します。(書き出し先:” OUTPUT1 .csv ” )
ffuf -u ターゲットURL/FUZZ -w ワードリスト.txt -of csv -o OUTPUT1.csv

2. URLの抽出とリスト整形
出力ファイル ” OUTPUT1.csv ” を確認すると2列目と3列目にURLがあります。

この中から、2列目又は3列目を ” cut ” コマンドで抽出し、その中の ” http ” の含まれる文字列を ” cut ” コマンドで抽出し、 ” OUTPUT2.txt ” として整形して書き出します。
cut -d’,’ -f2,3 OUTPUT1.csv | grep ‘^http’ > OUTPUT2.txt
grepの後に出てくる ” ^ ” は、「行の先頭」を意味する正規表現です。

” OUTPUT2.txt ” を確認すると多くのURLが整形されて切り出されています。

cutコマンドについては次回取り上げます。
3. whatweb で順に分析
このURLを ” whatweb ” ツールで順に分析していきます。分析結果は ” OUTPUT3.txt ” に記録します。
whatweb -i OUTPUT2.txt –log-verbose=OUTPUT3.txt
” -i ” オプションはwebサイトのリストファイルを指定する(そしてそのwebサイトを探索する)オプションです。

” OUTPUT3.txt ” の内容を確認。

コメント