ハッカーはwafw00fでWAFが設置されているかどうかを確認する(Kali Linuxツール説明)
Webアプリケーションファイアウォールが設置されているかを理解するためにまとめてみました。
このwafw00fの動作確認は自分のドメインでテストを行っています。
【追加】 Youtubeに最新動画を掲載しました。
目次
wafw00fとは
Webアプリケーションの脆弱性を突いた「サイト改ざん」や「情報流出」の攻撃を行うためにWAF(Webアプリケーションファイアウォール)が導入されているかどうか、そしてWAFがどのタイプなのかを確認するツールです。
WAFとは
機能
- 通常のHTTPリクエストを送信し、そのレスポンスを分析します。そして、いくつかのWAFソリューションを特定します。
- それが成功しない場合は、いくつかの(潜在的に悪意のある)HTTPリクエストを送信します。リクエストを送信し、それがどのWAFであるかを単純なロジックで推測します。
- これも成功しなかった場合、以前に返されたレスポンスを分析して返したレスポンスを分析し、別のシンプルなアルゴリズムを使って、WAFやセキュリティソリューションが攻撃に積極的に反応しているかどうかを推測します。WAFやセキュリティソリューションが我々の攻撃に積極的に反応しているかどうかを推測します。
ツールの場所
[Applications]→[01-Information Gathering]→[DNS/IPS Identification]→[wafw00f]
ツールと使用方法
wafw00f url1 [url2 [url3 … ]]
例 wafw00f https://www.yahoo.co.jp
【実行イメージ】少し端折って整形しています。
┌──(kali__kali)-[~]
└─$ wafw00f http://****.com
/ \
( W00f! )
\ ____/
,, __ 404 Hack Not Found
|`-.__ / /
/" _/ /_/ \ \ / /
*===* / \ \_/ / 405 Not Allowed
/ )__// \ /
/| / /---` 403 Forbidden
\\/` \ | / _ \
`\ /_\\_ 502 Bad Gateway / / \ \ 500 Internal Error
`_____``-` /_/ \_\
~ WAFW00F : v2.1.0 ~
The Web Application Firewall Fingerprinting Toolkit
[*] Checking http://****.com
[+] Generic Detection results:
[*] The site http://****.com seems to be behind a WAF or some sort of security solution
[~] Reason: The server returns a different response code when an attack string is used.
Normal response code is "200", while the response code to cross-site scripting attack is "403"
[~] Number of requests: 5
オプション(GENERAL OPTIONS)
-h, –help
show this help message and exit.
このヘルプメッセージを表示して終了します。
-v, –verbose
Enable verbosity,multiple -v options increase verbosity.
冗長性を有効にし、複数の-vオプションは冗長性を高めます。
-a, –findall
Find all WAFs which match the signatures, do not stop testing on the first one.
シグネチャーに一致するWAFをすべて見つけ出し、最初のWAFでテストを終了しないでください。
-r, –noredirect
Do not follow redirections given by 3xx responses.
3xxレスポンスによるリダイレクトには従わないでください。
-t TEST, –test=TEST
Test for one specific WAF.
ある特定のWAFを対象としたテストです。
-o OUTPUT, –output=OUTPUT
Write output to csv, json or text file depending on file extension. For stdout, specify – as filename.
ファイルの拡張子に応じて、csv、json、またはテキストファイルに出力します。標準出力の場合は、ファイル名に-を指定します。
-i INPUT, –input-file=INPUT
Read targets from a file. Input format can be csv,json or text. For csv and json, a `url` column name or element is required.
ファイルからターゲットを読み込みます。入力フォーマットはcsv,json,textのいずれかです。csvとjsonの場合は、`url`のカラム名または要素が必要です。
-l, –list
List all WAFs that WAFW00F is able to detect.
WAFW00Fが検知できるWAFをすべてリストアップします。
-p PROXY, –proxy=PROXY
Use an HTTP proxy to perform requests, examples:
http://hostname:8080, socks5://hostname:1080,
http://user:pass@hostname:8080
HTTPプロキシを使用してリクエストを実行します。(例)
-V, –version
Print out the current version of WafW00f and exit.
WafW00fの現在のバージョンをプリントアウトして終了します。
-H HEADERS, –headers=HEADERS
Pass custom headers via a text file to overwrite the default header set.
カスタムヘッダーをテキストファイルで渡し、デフォルトのヘッダーセットを上書きします。
YouTubeに最新動画を掲載しました。
「チャンネル登録」と「評価」よろしくお願いします。
wafw00fツールのまとめ
WAF(Webアプリケーションファイアウォール)とは外部に公開されているWebサーバーへのアクセスを監視、不審な通信を遮断してサーバを防御するセキュリティツールです。ブラックハットハッカーはこのファイアウォールが設置されているか事前に確認して計画を立てるのですね。