WiFiPumpkin3 とは — 偽 AP (Rogue AP) 攻撃フレームワーク のサムネイル

WiFiPumpkin3 とは — 偽 AP (Rogue AP) 攻撃フレームワーク

⏱ 約 8 分 view 36 like 0 LOG_DATE:2026-06-08
目次 / TOC

WiFiPumpkin3P0cL4bs チーム (mh4x0f / Marcos Bomfim) が開発する Python 3 製の Rogue Access Point (偽 AP) 攻撃フレームワーク。旧 WiFi-Pumpkin / 3vilTwinAttacker の後継にあたり、レッドチームやネットワーク診断で 「偽の Wi-Fi を立てて被害端末を引き込み、その通信を中間者 (MITM) で覗く・改ざんする」 ための機能を 1 つに束ねている。やることは単純で、本物そっくりの AP を電波として出し、つながってきた端末を キャプティブポータル詐取・認証情報スニッフ・DNS スプーフ・HTTP 注入といったモジュールに通す。特徴は 対話型コンソール + プラグイン/拡張システムで、hostapd + dnsmasq + 詐取ページを手組みする代わりに、コンソールから setstart だけで一連の Evil Twin 攻撃を組み立てられる。

01

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 proxyplugins で選んだモジュール次第になる。

▸ Evil Twin との関係 — WiFiPumpkin3 はその一実装

「正規 AP とそっくりの偽 AP を立てて端末を奪う」攻撃を総称して Evil Twin (悪魔の双子) と呼ぶ。WiFiPumpkin3 はその 代表的な実装の 1 つで、airgeddonFluxioneaphammer と同じ系譜に属する。違いは、それらがシェルスクリプト中心なのに対し、WiFiPumpkin3 は Python フレームワーク + 対話コンソール + プラグインとして組まれている点だ。

02

法的・倫理的な注意 #

WiFiPumpkin3 がやることは、無関係な人の端末を自分の偽 AP に引き込み、その通信を覗く・改ざんすること。これは技術的な遊びでは済まない。許可なく他人を相手に偽 AP / MITM / 詐取ポータルを動かすことは、日本の電波法・不正アクセス禁止法に明確に抵触し得る違法行為になる。

▸ WiFiPumpkin3 を動かしてよい対象
  • 自分の機材・自分の端末だけ — 自前の Wi-Fi アダプタと、自分が所有するスマホ/PC を被害端末役にした閉じた検証
  • 書面で明示的に許可された業務 — レッドチーム / ペネトレーションテスト契約で、対象 (SSID・場所・端末・期間) がスコープとして文書化されているもの
  • 隔離した学習用ラボ — 他人の電波・他人の端末が混ざらないよう物理的/論理的に隔離した実験環境

偽 AP は「電波を出した瞬間」に周囲の他人の端末を巻き込み得る。カフェ・空港・社内などの公共空間で安易に start すれば、無関係な第三者の通信を傍受したことになり、電波法・通信の秘密の侵害・不正アクセスが同時に成立しかねない。「自分の機材か」「許可があるか」「他人を巻き込まないか」を必ず先に確認すること。

03

仕組みと構成 — 偽 AP + モジュール #

WiFiPumpkin3 の攻撃は、「偽 AP で端末を引き込む」→「通った通信をモジュールで加工する」という 2 段で考えると分かりやすい。後段に何を挿すかで攻撃の性格が決まる。

1. 偽 AP を放送する
set ssid で名付けた SSID を、AP モード対応のアダプタから電波として出す。deauth モジュールで正規 AP から端末を切り離し、偽 AP に乗り換えさせることもある。
2. 端末を接続させる
端末が偽 AP につなぐと、攻撃者は通信の中間者になる。上流の本物のインターネットへ転送するなら、2 枚目のインターフェースが要る。
3. 通信を加工する (proxy)
set proxy captiveflask なら最初に偽ログイン画面を出し、pumpkinproxy なら HTTP を覗き/書き換える。
4. 情報を抜く (plugins)
sniffkin3 で認証情報を拾い、dnsspoof で特定ドメインを偽サイトへ誘導する。

つまり 「偽 AP という土台」 + 「proxy で何をするか」 + 「plugins で何を抜くか」の組み合わせがそのまま攻撃シナリオになる。次節以降の set はこの構成を組み立てる操作だ。

▸ 必要なもの

動かすには AP / master モード対応の Wi-Fi アダプタが必須 (チップによっては不可)。被害端末の通信を本物のインターネットに転送して自然に見せたいなら、上流接続用の 2 枚目のインターフェースもほしい。実行は Linux + root 前提。

04

基本の使い方 — 対話コンソール #

WiFiPumpkin3 は基本的に 対話型コンソールとして使う。root で起動すると wp3 > 形式のプロンプトが出て、そこから set で設定し start で発火する。長いフラグを並べるのではなく、コンソール内のコマンドで状態を組み立てるのがこのツールの流儀だ。

コンソールを起動して偽 AP を組み立てる
$ 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 で渡すと、起動時に上から順に自動実行できる。検証手順の再現やラボの自動化に向く。

--pulp でコンソール操作を自動化する
$ sudo wifipumpkin3 --pulp myscript.pulp # .pulp は set interface / set ssid / start … を並べたコマンド集 # 起動時に順番に実行され、同じ攻撃構成を毎回再現できる
05

主なモジュール #

WiFiPumpkin3 の本体は薄い土台で、実際の攻撃力はモジュールが担う。フラグで細かく指定するというより、set proxyplugins「どのモジュールを有効化するか」を選ぶイメージだ。代表的なものを押さえておく。

モジュール種別役割
captiveflaskproxyキャプティブポータル詐取。接続時に偽ログイン画面を出し、選んだテンプレートで Wi-Fi / メール等の認証情報を抜く
pumpkinproxyproxyHTTP を覗く / 注入する。通信内容の検査やコンテンツ書き換えに使う
sslstrip2proxyHTTPS への誘導を剥がし HTTP に引き下げる (sslstrip 系)。平文化を狙う
sniffkin3plugin通信から認証情報をスニッフする (FTP / HTTP など)
deauthplugin正規 AP に対し deauth を送り、端末を切断して偽 AP に乗り換えさせる
DNS / dnsspoofplugin偽 AP の DNS 応答を差し替え、特定ドメインを攻撃者のサイトへ誘導する

たとえば 偽ログインで認証情報を抜くなら set proxy captiveflask を選び、captiveflask 配下の ログインテンプレートで Wi-Fi パスワードやメール資格情報を入力させる。HTTP を覗いて加工するなら set proxy pumpkinproxy認証情報をパッシブに拾うなら plugins から sniffkin3 を有効化する、という組み立てになる。

▸ フラグより「モジュールの選択」で考える

WiFiPumpkin3 は ffuf や wfuzz のように長いフラグ列で挙動を決めるツールではない。どの proxy を set し、どの plugin を有効化するかが攻撃の中身を決める。だから「コマンドを覚える」より、proxys / plugins で出てくるモジュールの役割を理解することが上達の近道になる。

06

防御と位置づけ #

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 や電波を検知・通報する
ツール実装特徴
WiFiPumpkin3Python フレームワーク対話コンソール + プラグインで偽 AP を組み立てる。captiveflask 等のモジュールが豊富
airgeddonBash スクリプトメニュー駆動。Evil Twin から WPA ハンドシェイク取得まで幅広く網羅
FluxionBash スクリプトEvil Twin + キャプティブポータルで Wi-Fi パスワードを詐取することに特化
eaphammerPython企業 (WPA-Enterprise / 802.1X) を狙った evil-twin に強い
▸ 結論 — 「偽 AP は土台、攻撃はモジュール」

WiFiPumpkin3 は、hostapd + dnsmasq + 詐取ページを手組みする代わりに、偽 AP とキャプティブポータル詐取・スニッフ・DNS スプーフを 1 つのコンソールから組み立てられるのが価値。airgeddon / Fluxion がメニュー駆動なのに対し、こちらは Python フレームワーク + プラグインで拡張しやすい。学ぶ意義は「攻撃の手順」を知ることで 防御 (WPA3・VPN・Web にパスワードを入れない・WIPS) を腹落ちさせることにある。必ず自分の機材・許可されたスコープ・隔離ラボの中だけで動かすこと。

𝕏 ポスト B! はてブ