【注意】このサイトに記載されていることを他人に試すことは「不正アクセス禁止法」に該当する場合があります。詳しくはこちらから

ハッカーはwafw00fでWAFが設置されているかどうかを確認する(Kali Linuxツール説明)

ホワイトハッカーの知識座学,Kali Linuxツール,wafw00f

Webアプリケーションファイアウォールが設置されているかを理解するためにまとめてみました。
このwafw00fの動作確認は自分のドメインでテストを行っています。

wafw00fとは

Webアプリケーションの脆弱性を突いた「サイト改ざん」や「情報流出」の攻撃を行うためにWAF(Webアプリケーションファイアウォール)が導入されているかどうか、そして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
whitemarkn
whitemarkn
個人のドメインでWebアプリケーションファイアウォールがたぶん設置されていないので「404 Hack Not Found」と表示されているのでしょうか?

オプション(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.
カスタムヘッダーをテキストファイルで渡し、デフォルトのヘッダーセットを上書きします。

wafw00fツールのまとめ

WAF(Webアプリケーションファイアウォール)とは外部に公開されているWebサーバーへのアクセスを監視、不審な通信を遮断してサーバを防御するセキュリティツールです。ブラックハットハッカーはこのファイアウォールが設置されているか事前に確認して計画を立てるのですね。