WiFiPumpkin3 は P0cL4bs チーム (mh4x0f / Marcos Bomfim) が開発する Python 3 製の Rogue Access Point (偽 AP) 攻撃フレームワーク。旧 WiFi-Pumpkin / 3vilTwinAttacker の後継にあたり、レッドチームやネットワーク診断で 「偽の Wi-Fi を立てて被害端末を引き込み、その通信を中間者 (MITM) で覗く・改ざんする」 ための機能を 1 つに束ねている。やることは単純で、本物そっくりの AP を電波として出し、つながってきた端末を キャプティブポータル詐取・認証情報スニッフ・DNS スプーフ・HTTP 注入といったモジュールに通す。特徴は 対話型コンソール + プラグイン/拡張システムで、hostapd + dnsmasq + 詐取ページを手組みする代わりに、コンソールから set と start だけで一連の Evil Twin 攻撃を組み立てられる。
WiFiPumpkin3 とは — Rogue AP フレームワーク #
Rogue AP (偽アクセスポイント) とは、攻撃者が用意した「本物に見える Wi-Fi」のこと。被害端末がそこに接続すると、攻撃者は通信経路のど真ん中に座る 中間者 (Man-in-the-Middle) になり、HTTP の中身を読んだり、偽のログイン画面を出したり、DNS の応答を差し替えたりできる。WiFiPumpkin3 はこの一連を 1 つのフレームワークにまとめたツールだ。
| 構成要素 | 役割 |
|---|---|
| 偽 AP 本体 | set ssid で名付けた SSID を電波として放送し、端末を引き込む |
| プロキシ / モジュール | 通った通信を加工する (キャプティブポータル詐取・HTTP 注入・sslstrip など) |
| プラグイン / 拡張 | スニッフ・DNS・deauth などを plugins で有効化する |
| 対話コンソール | wp3 > プロンプトから set / start で全体を制御する |
WiFiPumpkin3 自身は「攻撃を理解している」わけではなく、偽 AP + 選んだモジュールという部品を組み合わせる土台にすぎない。何を仕掛けるかは set proxy や plugins で選んだモジュール次第になる。
「正規 AP とそっくりの偽 AP を立てて端末を奪う」攻撃を総称して Evil Twin (悪魔の双子) と呼ぶ。WiFiPumpkin3 はその 代表的な実装の 1 つで、airgeddon や Fluxion、eaphammer と同じ系譜に属する。違いは、それらがシェルスクリプト中心なのに対し、WiFiPumpkin3 は Python フレームワーク + 対話コンソール + プラグインとして組まれている点だ。
法的・倫理的な注意 #
WiFiPumpkin3 がやることは、無関係な人の端末を自分の偽 AP に引き込み、その通信を覗く・改ざんすること。これは技術的な遊びでは済まない。許可なく他人を相手に偽 AP / MITM / 詐取ポータルを動かすことは、日本の電波法・不正アクセス禁止法に明確に抵触し得る違法行為になる。
- 自分の機材・自分の端末だけ — 自前の Wi-Fi アダプタと、自分が所有するスマホ/PC を被害端末役にした閉じた検証
- 書面で明示的に許可された業務 — レッドチーム / ペネトレーションテスト契約で、対象 (SSID・場所・端末・期間) がスコープとして文書化されているもの
- 隔離した学習用ラボ — 他人の電波・他人の端末が混ざらないよう物理的/論理的に隔離した実験環境
偽 AP は「電波を出した瞬間」に周囲の他人の端末を巻き込み得る。カフェ・空港・社内などの公共空間で安易に start すれば、無関係な第三者の通信を傍受したことになり、電波法・通信の秘密の侵害・不正アクセスが同時に成立しかねない。「自分の機材か」「許可があるか」「他人を巻き込まないか」を必ず先に確認すること。
仕組みと構成 — 偽 AP + モジュール #
WiFiPumpkin3 の攻撃は、「偽 AP で端末を引き込む」→「通った通信をモジュールで加工する」という 2 段で考えると分かりやすい。後段に何を挿すかで攻撃の性格が決まる。
set ssid で名付けた SSID を、AP モード対応のアダプタから電波として出す。deauth モジュールで正規 AP から端末を切り離し、偽 AP に乗り換えさせることもある。set proxy captiveflask なら最初に偽ログイン画面を出し、pumpkinproxy なら HTTP を覗き/書き換える。sniffkin3 で認証情報を拾い、dnsspoof で特定ドメインを偽サイトへ誘導する。つまり 「偽 AP という土台」 + 「proxy で何をするか」 + 「plugins で何を抜くか」の組み合わせがそのまま攻撃シナリオになる。次節以降の set はこの構成を組み立てる操作だ。
動かすには AP / master モード対応の Wi-Fi アダプタが必須 (チップによっては不可)。被害端末の通信を本物のインターネットに転送して自然に見せたいなら、上流接続用の 2 枚目のインターフェースもほしい。実行は Linux + root 前提。
基本の使い方 — 対話コンソール #
WiFiPumpkin3 は基本的に 対話型コンソールとして使う。root で起動すると wp3 > 形式のプロンプトが出て、そこから set で設定し start で発火する。長いフラグを並べるのではなく、コンソール内のコマンドで状態を組み立てるのがこのツールの流儀だ。
$ sudo wifipumpkin3
# root で起動すると wp3 > プロンプトに入る
wp3 > set interface wlan0
# 偽 AP を出す無線インターフェースを選ぶ (AP モード対応のもの)
wp3 > set ssid FreeWiFi
# 放送する SSID (おとり) の名前を決める
wp3 > set proxy captiveflask
# 通信を通すモジュール: captiveflask = キャプティブポータル詐取
wp3 > start
# 偽 AP と選んだモジュールを起動する
wp3 > stop
# 停止する何が選べるかはコンソールの一覧コマンドで確認する。proxys で proxy モジュール、plugins でプラグイン、help でコマンド全体が出る。
wp3 > proxys
# 使える proxy モジュール一覧 (captiveflask など)
wp3 > plugins
# 使えるプラグイン一覧 (sniffkin3 / dns など)
wp3 > help
# コンソールコマンドの一覧毎回同じ手順を打つのが面倒なときは、コンソールコマンドを並べた .pulp スクリプトを --pulp で渡すと、起動時に上から順に自動実行できる。検証手順の再現やラボの自動化に向く。
$ sudo wifipumpkin3 --pulp myscript.pulp
# .pulp は set interface / set ssid / start … を並べたコマンド集
# 起動時に順番に実行され、同じ攻撃構成を毎回再現できる主なモジュール #
WiFiPumpkin3 の本体は薄い土台で、実際の攻撃力はモジュールが担う。フラグで細かく指定するというより、set proxy や plugins で「どのモジュールを有効化するか」を選ぶイメージだ。代表的なものを押さえておく。
| モジュール | 種別 | 役割 |
|---|---|---|
captiveflask | proxy | キャプティブポータル詐取。接続時に偽ログイン画面を出し、選んだテンプレートで Wi-Fi / メール等の認証情報を抜く |
pumpkinproxy | proxy | HTTP を覗く / 注入する。通信内容の検査やコンテンツ書き換えに使う |
sslstrip2 | proxy | HTTPS への誘導を剥がし HTTP に引き下げる (sslstrip 系)。平文化を狙う |
sniffkin3 | plugin | 通信から認証情報をスニッフする (FTP / HTTP など) |
deauth | plugin | 正規 AP に対し deauth を送り、端末を切断して偽 AP に乗り換えさせる |
DNS / dnsspoof | plugin | 偽 AP の DNS 応答を差し替え、特定ドメインを攻撃者のサイトへ誘導する |
たとえば 偽ログインで認証情報を抜くなら set proxy captiveflask を選び、captiveflask 配下の ログインテンプレートで Wi-Fi パスワードやメール資格情報を入力させる。HTTP を覗いて加工するなら set proxy pumpkinproxy、認証情報をパッシブに拾うなら plugins から sniffkin3 を有効化する、という組み立てになる。
WiFiPumpkin3 は ffuf や wfuzz のように長いフラグ列で挙動を決めるツールではない。どの proxy を set し、どの plugin を有効化するかが攻撃の中身を決める。だから「コマンドを覚える」より、proxys / plugins で出てくるモジュールの役割を理解することが上達の近道になる。
防御と位置づけ #
WiFiPumpkin3 は Evil Twin 攻撃の一実装なので、防御も Evil Twin 全般と同じ家系で考える。攻撃の肝は「偽 AP に気づかず接続してしまう」「気づかず偽ページに入力してしまう」点にあり、対策はそこを潰す。
| 防御策 | 効果 |
|---|---|
| WPA3 / 802.11w (PMF) | 管理フレーム保護で deauth による強制切断を効きにくくする |
| Wi-Fi パスワードを Web に入れない | キャプティブポータル詐取の前提を崩す。正規 AP は Web 画面でパスワードを聞かない |
| 企業認証 (802.1X) でサーバ証明書検証 | 偽 RADIUS / 偽 AP を証明書不一致で弾く |
| 信頼できない網では VPN | 中間者がいても通信が暗号化され、覗き見・改ざんを無力化する |
| WIDS / WIPS の rogue-AP 検知 | 同一 SSID の不審な AP や電波を検知・通報する |
| ツール | 実装 | 特徴 |
|---|---|---|
WiFiPumpkin3 | Python フレームワーク | 対話コンソール + プラグインで偽 AP を組み立てる。captiveflask 等のモジュールが豊富 |
airgeddon | Bash スクリプト | メニュー駆動。Evil Twin から WPA ハンドシェイク取得まで幅広く網羅 |
Fluxion | Bash スクリプト | Evil Twin + キャプティブポータルで Wi-Fi パスワードを詐取することに特化 |
eaphammer | Python | 企業 (WPA-Enterprise / 802.1X) を狙った evil-twin に強い |
WiFiPumpkin3 は、hostapd + dnsmasq + 詐取ページを手組みする代わりに、偽 AP とキャプティブポータル詐取・スニッフ・DNS スプーフを 1 つのコンソールから組み立てられるのが価値。airgeddon / Fluxion がメニュー駆動なのに対し、こちらは Python フレームワーク + プラグインで拡張しやすい。学ぶ意義は「攻撃の手順」を知ることで 防御 (WPA3・VPN・Web にパスワードを入れない・WIPS) を腹落ちさせることにある。必ず自分の機材・許可されたスコープ・隔離ラボの中だけで動かすこと。