Wifiphisherは、Wi-Fiネットワークに対するセキュリティテストやレッドチーム演習を実施するために設計された、強力なローグアクセスポイント(偽のWi-Fiスポット)作成フレームワークです。このツールを使用することで、ペネトレーションテスターは特定のWi-Fi関連付け攻撃を通じて、無線クライアントに対して容易に中間者(Man-in-the-Middle, MITM)攻撃の位置を確立できます。
中間者攻撃が成功すると、WifiphisherはさらにカスタマイズされたWebフィッシング攻撃を展開し、接続されたクライアントから認証情報(例:ソーシャルメディアのログイン情報、WPA/WPA2の事前共有キーなど)を窃取したり、マルウェアに感染させたりすることが可能です。
このツールは非常に強力ですが、その使用は倫理的かつ法的な範囲内で行われなければなりません。許可なく他者のネットワークに対して使用することは違法であり、重大な結果を招く可能性があります。この記事は、あくまで教育目的および自身の管理下にあるネットワークでのセキュリティテストを目的としています。
Wifiphisherの仕組み 🤔
WifiphisherによるWi-Fiフィッシング攻撃は、主に以下のステップで構成されます。
-
中間者(MITM)攻撃の位置確立:
まず、標的となるWi-Fiクライアントと正規のアクセスポイントとの間に割り込み、通信を中継できる位置を確保します。Wifiphisherはこの目的のために、以下のような複数の技術を駆使します。
- Evil Twin(悪魔の双子)攻撃: 正規のアクセスポイントと酷似した偽のアクセスポイント(ローグAP)を作成します。
- KARMA攻撃: 周辺のWi-Fiクライアントが過去に接続したことのある(探している)ネットワークになりすまします。
- Known Beacons攻撃: 周辺の無線デバイスが過去に接続した可能性のある一般的なネットワーク名(ESSID)のリストをブロードキャストし、自動接続を誘います。
同時に、Wifiphisherは「Deauthenticate(認証解除)」や「Disassociate(関連付け解除)」パケットを偽造して送信し続け、既存のWi-Fi接続を強制的に切断させ、上記のテクニックで偽のアクセスポイントへ誘導します。
-
フィッシングページの提供:
クライアントが偽のアクセスポイントに接続すると、Wifiphisherはそのクライアントからのインターネットへのアクセス要求(HTTP/HTTPSリクエスト)を傍受し、攻撃者が用意したフィッシングページにリダイレクトします。このページは、本物そっくりに作られており、ユーザーに認証情報(WPA/WPA2パスワード、SNSログイン情報など)の入力を促したり、マルウェアをダウンロードさせたりします。
このプロセス全体が自動化されており、攻撃者は比較的容易にWi-Fiネットワークに対するフィッシング攻撃を実行できます。
インストール方法 💻
要件
Wifiphisherを最大限に活用するための要件は以下の通りです。
- OS: Kali Linuxが公式にサポートされているディストリビューションです。他のLinuxディストリビューションでも動作する可能性はありますが、主にKali Linuxでテストされています。
- 無線ネットワークアダプター:
- APモード対応アダプター: 1つ必要です。偽のアクセスポイントを作成するために使用します。ドライバはnetlinkをサポートしている必要があります。
- モニターモード対応アダプター(インジェクション可能): 1つ必要です。認証解除攻撃(Jamming)に使用します。ドライバはnetlinkをサポートしている必要があります。
- もし2つ目のアダプターがない場合は、
--nojamming
オプションを付けて実行することで、認証解除攻撃をスキップできます。この場合、アダプターは1つで済みます。
- 依存関係: WifiphisherはPython 3で書かれており、動作にはいくつかのライブラリやツールが必要です。主な依存関係には、
hostapd
,dnsmasq
,iptables
,python3-pyric
,python3-roguehostapd
などが含まれます。
インストール手順
Wifiphisherのインストール方法はいくつかあります。
パッケージマネージャーからのインストール (Kali Linux推奨)
Kali Linuxなどのセキュリティディストリビューションでは、パッケージマネージャーを通じて簡単にインストールできます。ただし、最新版ではない場合があります。
sudo apt-get update
sudo apt-get install wifiphisher
ソースコードからのインストール (最新版)
常に最新の機能を利用したい場合は、GitHubリポジトリからソースコードをクローンしてインストールするのが良いでしょう。
1. 必要な開発ライブラリとgitをインストールします。
sudo apt-get update
sudo apt-get install git python3-pip python3-setuptools python3-wheel python3-dev libnl-3-dev libnl-genl-3-dev libssl-dev
2. Wifiphisherのリポジトリをクローンします。
git clone https://github.com/wifiphisher/wifiphisher.git
cd wifiphisher
3. Pythonの依存関係をインストールします。
sudo python3 setup.py install
注意: Black Hills Information Securityの記事 (2024年1月時点) では、仮想環境 (virtualenv) を使用し、roguehostapdを手動でビルド・インストールする手順が紹介されています。環境によってはこの手順が必要になる場合があります。
# 仮想環境を作成・有効化する場合 (オプション)
# apt-get install -y python3-virtualenv
# virtualenv -p python3 env
# source env/bin/activate
# roguehostapd の手動インストール (必要な場合)
# git clone https://github.com/wifiphisher/roguehostapd.git
# cd roguehostapd
# sudo python3 setup.py install
# cd .. # wifiphisher ディレクトリに戻る
# Wifiphisher のインストール
# sudo python3 setup.py install
# 仮想環境を使用した場合の終了
# deactivate
基本的な使い方 ▶️
インストールが完了したら、ターミナルからWifiphisherを実行できます。
sudo wifiphisher
または、ソースコードディレクトリ内から実行する場合:
sudo python3 bin/wifiphisher
オプションを指定せずに実行すると、Wifiphisherは利用可能なネットワークインターフェースを自動的に検出し、対話形式で設定を進めます。
- インターフェースの選択: APモード用とモニターモード用(Jamming用)のインターフェースを選択します(自動検出されることが多いです)。
- ターゲットネットワークの選択: 周囲で検出されたWi-Fiネットワーク(ESSID)のリストが表示されるので、攻撃対象のネットワークを選択します。
- フィッシングシナリオの選択: 実行するフィッシング攻撃のシナリオを選択します。
選択が完了すると、Wifiphisherは認証解除攻撃を開始し、偽のアクセスポイントを起動して、選択したフィッシングシナリオを展開します。
主なコマンドラインオプション
Wifiphisherは多数のコマンドラインオプションをサポートしており、攻撃を細かく制御できます。以下にいくつかの例を示します。
オプション | 説明 | 例 |
---|---|---|
-h, --help |
ヘルプメッセージを表示して終了します。 | sudo wifiphisher -h |
-aI <interface>, --apinterface <interface> |
APモードに使用するインターフェースを手動で指定します。 | sudo wifiphisher -aI wlan0 |
-jI <interface>, --jamminginterface <interface> |
モニターモード(Jamming)に使用するインターフェースを手動で指定します。 | sudo wifiphisher -jI wlan1 |
-e <ESSID>, --essid <ESSID> |
偽のアクセスポイントのESSIDを指定します。ネットワーク選択フェーズをスキップします。 | sudo wifiphisher -e "Free Public WiFi" |
-p <scenario>, --phishingscenario <scenario> |
実行するフィッシングシナリオを指定します。シナリオ選択フェーズをスキップします。 | sudo wifiphisher -p firmware_upgrade |
-pK <key>, --presharedkey <key> |
偽のアクセスポイントをWPA/WPA2で保護します。 | sudo wifiphisher -pK mysecretpassword |
-nJ, --nojamming |
認証解除(Jamming)フェーズをスキップします。アダプターが1つしかなくても実行できます。 | sudo wifiphisher -nJ |
-kB, --known-beacons |
Known Beacons攻撃を実行します。公共エリアなどで有効です。 | sudo wifiphisher -kB -e "Coffee Shop WiFi" -p oauth_login |
--logging |
ログをファイル (wifiphisher.log) に保存します。 | sudo wifiphisher --logging |
--payload-path <path> |
ペイロード(マルウェアなど)を提供するシナリオで使用するファイルのパスを指定します。 | sudo wifiphisher -p browser_plugin_update --payload-path /path/to/malware.exe |
より詳細なオプションについては、wifiphisher --help
を参照するか、公式ドキュメントを確認してください。
主なフィッシングシナリオ 🎣
Wifiphisherには、様々な状況に対応するためのフィッシングシナリオが組み込まれています。コミュニティによって作成されたテンプレートも利用可能です。以下は代表的なシナリオです。
シナリオ名 (ID) | 説明 |
---|---|
firmware_upgrade |
ルーターのファームウェアアップデートを装い、WPA/WPA2パスワードの入力を要求する設定ページを表示します。ブランドロゴなどは表示されません。 |
network_manager_connect |
OSのネットワークマネージャー(WindowsやmacOS)を模倣した画面を表示し、Wi-Fiパスワードの再入力を要求します。Chromeの「接続できませんでした」ページと組み合わせて表示されることがあります。 |
oauth_login |
無料Wi-Fiサービスを装い、認証のためにFacebookなどのSNSアカウントでのログイン(OAuth)を要求します。 |
browser_plugin_update |
ブラウザのプラグイン更新が必要であるかのように見せかけ、悪意のある実行ファイル(マルウェアなど)をダウンロードさせようとします。--payload-path オプションと組み合わせて使用します。 |
wifi_connect |
OSのネットワークマネージャーをWebベースで模倣し、パスワード保護されたWi-FiネットワークのPSK(事前共有キー)を要求します。比較的新しいシナリオです。 |
これらのシナリオはテンプレートエンジンに基づいており、ユーザーは独自のシナリオを作成したり、既存のものをカスタマイズしたりすることも可能です。シナリオの作成方法については、公式ドキュメントに詳細が記載されています。
検知と対策 🛡️
Wifiphisherのような攻撃から身を守るためには、以下の対策が有効です。
- ✅ 不審なWi-Fiネットワークに接続しない: 公共の場で提供されているWi-Fi名と酷似したネットワークや、パスワードなしで接続できるオープンなネットワークには注意が必要です。特に、通常パスワードが必要なはずのネットワークがオープンになっている場合は警戒しましょう。
- ✅ HTTPS接続を確認する: 重要な情報を入力する際は、ブラウザのアドレスバーに鍵マークが表示され、URLが
https://
で始まっていることを確認します。ただし、WifiphisherはHTTPSリクエストもフィッシングページにリダイレクトできるため、これだけでは万全ではありません。 - ✅ OSやブラウザの警告に注意する: ネットワーク設定の変更や、信頼できない証明書に関する警告が表示された場合は、接続を中止し、理由を確認してください。
- ✅ 安易に認証情報を入力しない: Wi-Fi接続直後に、ルーターのファームウェア更新やSNSログイン、プラグイン更新などを理由にパスワードや個人情報の入力を求められた場合は、フィッシング攻撃の可能性が高いです。一度立ち止まって疑いましょう。
- ✅ VPNを使用する: 公共のWi-Fiを利用する際は、VPN(Virtual Private Network)を使用することで、通信が暗号化され、盗聴や中間者攻撃のリスクを低減できます。
- ✅ ソフトウェアを最新に保つ: OS、ブラウザ、セキュリティソフトなどを常に最新の状態に保ち、脆弱性を修正してください。
- ✅ 不要なWi-Fi自動接続を無効にする: スマートフォンやPCの設定で、過去に接続したネットワークへの自動接続や、未知のネットワークへの接続提案機能を無効にすることを検討します。
- ✅ 強力なパスワードと多要素認証を使用する: Wi-Fiパスワードは推測されにくい複雑なものにし、可能なサービスでは多要素認証(MFA)を有効にします。
法的・倫理的考慮事項 ⚖️
Wifiphisherは強力なセキュリティテストツールですが、その能力を悪用すれば深刻な法的問題や倫理的問題を引き起こします。
警告:
- 許可なき使用の禁止: 自分自身が所有または管理していない、あるいは明示的な書面による許可を得ていないWi-Fiネットワークに対してWifiphisherを使用することは、多くの国や地域で違法行為とみなされます。これには不正アクセス禁止法やプライバシー関連法、電気通信事業法などが関わってきます。
- フィッシング行為の違法性: Wifiphisherを使用して他者の認証情報(パスワード、アカウント情報など)を不正に取得する行為は、詐欺や不正アクセスなどの犯罪にあたります。
- マルウェア配布の違法性: マルウェアを配布する目的でWifiphisherを使用することも、コンピュータウイルスに関する罪などに問われる可能性があります。
- 倫理的責任: たとえ法的に問題がない状況(例:自身のネットワークでのテスト)であっても、ツールの使用が他者に与える影響を考慮し、責任ある行動を心がける必要があります。
Wifiphisherは、あくまでセキュリティ専門家やネットワーク管理者が、管理下のネットワークの脆弱性を評価し、防御策をテスト・改善するために設計されたツールです。教育目的や研究目的で使用する場合も、隔離された安全な実験環境(ラボ環境など)で行うことが強く推奨されます。
このツールを使用する前に、必ず関連する法律や規制、利用規約(例えばISPの規約など)を確認し、遵守してください。不明な点があれば、法律の専門家に相談することをお勧めします。
まとめ ✨
Wifiphisherは、Wi-Fiネットワークに対するフィッシング攻撃を自動化し、セキュリティテストを効率化するための強力なフレームワークです。Evil Twin、KARMA、Known Beaconsといった攻撃手法を駆使して中間者攻撃の位置を確立し、様々なフィッシングシナリオを展開することで、ネットワークの脆弱性を明らかにします。
インストールは比較的簡単で、特にKali Linux環境では容易に行えます。基本的な使い方から、多様なコマンドラインオプションを用いた高度な設定まで、幅広いユーザーに対応しています。
しかし、その強力さゆえに、悪用された場合の被害は甚大です。Wifiphisherの使用は、必ず法的および倫理的な規範を遵守し、許可されたネットワークに対してのみ行う必要があります。個人ユーザーとしては、不審なWi-Fiへの接続を避け、HTTPS接続を確認し、安易に認証情報を入力しないなどの自衛策を講じることが重要です。
Wifiphisherのようなツールについて学ぶことは、Wi-Fiセキュリティのリスクを理解し、より安全なネットワーク利用を促進するために役立ちます。常に責任ある使用を心がけましょう。🛡️
コメント