
認可されたセキュリティ監査向けの、プロフェッショナルグレードで完全非同期のPythonネットワークスプーフィングスイート。完全なIPv4/IPv6傍受、802.11ワイヤレス攻撃、LLMNR/NBT-NSポイズニング、改ざん検知可能な監査ログを備えたインタラクティブTUIを特徴とする。
プロフェッショナルグレードの非同期Pythonネットワークスプーフィングスイート インタラクティブなメニュー駆動UI · IPv4/IPv6完全対応 · Responderスタイルのポイズニング 認可されたセキュリティテスト専用 — by amibhai
免責事項: 本ツールは教育目的および認可されたセキュリティ監査専用です。作者は一切の責任を負わず、本プログラムによる誤用や損害について責任を負いません。所有していないネットワーク、または明示的な書面による許可を得ていないネットワークでは本ツールを使用しないでください。
| モジュール | 説明 |
|---|---|
attacks/deauth.py | 802.11 認証解除 — クライアントを切断し、WPAハンドシェイクをキャプチャ |
attacks/beacon_flood.py | 802.11 ビーコンフラッド — 偽SSIDストーム |
attacks/llmnr_nbt.py | LLMNR + NBT-NS + mDNS ポイズニング(Responderスタイルのハッシュキャプチャ) |
attacks/icmpv6_ra.py | ICMPv6 ルーターアドバタイズメントスプーフ — IPv6ゲートウェイハイジャック |
attacks/ndp_spoof.py | IPv6 NDP ネイバーアドバタイズメントポイズン — IPv6 ARPスプーフ |
attacks/captive_portal.py | キャプティブポータル(ホテル/企業/カフェ/ISPテンプレート) |
attacks/wpad.py | WPADプロキシ自動設定インジェクション |
core/platform_compat.py | macOS pf + Linux iptables + Windows netsh の抽象化 |
| タイミングジッター | IDS回避のため、パケットバーストごとに±N秒のランダム遅延 |
| GitHub Actions CI | Python 3.10–3.12全体でpytest + mypy + カバレッジゲート(≥80%) |
| Docker | ポータブルなデプロイのためのdocker build + docker-compose up |
| pyproject.toml | モダンなパッケージング、mypy strict設定、ruff lint、カバレッジ設定 |
| 機能 | 詳細 |
|---|---|
| 認可 | ルール・オブ・エンゲージメントのスコープファイル — スコープ外または期間外のターゲットへの実攻撃は拒否されます。スコープなし ⇒ ドライランのみ |
| アーキテクチャ | 100%非同期Python 3.10+ — threading.Threadを一切使用しない |
| UI | アニメーション付き256色バナー + 番号付きメニュー + ブレッドクラム |
| ダッシュボード | PRISMライブ3パネルTUI(攻撃ログ / パケット統計 / 認証情報) |
| ロギング | HMAC-SHA256チェーン化されたstructlog監査証跡(改ざん検知可能) |
| レポート | セッションごとにJSON + Markdown + HTMLを自動生成 |
| 言語 | LANGからの自動検出 + 手動切り替え(en, hi, ar, zh, fr, es) |
| プリフライト | 17項目のシステムチェック(スコープ、root、Python、依存関係、インターフェース、ターミナル) |
| クリーンアップ | finallyでARP/NDPテーブル、iptables/pfルールを常に復元 |
| プラットフォーム | Linux(フル) · macOS(pfバックエンド) · Windows(Npcap、制限付き) |
実際のエンゲージメントは署名済みのスコープによって定義されます。本ツールキットはこれをコードで強制します:明示的に認可されていないターゲット、またはオープンなエンゲージメント期間外のターゲットには、単一のパケットも送信しません。 これがプロフェッショナルなレッドチーム用ツールと無差別なスクリプトとの違いです。
rules/engagement.example.jsonを参照してください。SPOOF_TOOLKIT_SCOPE環境変数を介してツールキットにそのファイルを指定します。Session.guard(...)を呼び出します。認可された範囲外のターゲット、または終了したエンゲージメント期間はAuthorizationErrorを発生させ、攻撃は拒否されます。fingerprintを含む)はHMACチェーン化された監査ログとすべてのセッションレポートに書き込まれるため、レポートは何が認可されたかを正確に証明します。# 1. Copy and edit the template with your engagement details + authorized targets
cp rules/engagement.example.json rules/my-engagement.json
# 2. Point the toolkit at it (enables live fire for in-scope targets only)
export SPOOF_TOOLKIT_SCOPE=rules/my-engagement.json
# 3. Verify it loaded and the window is open
sudo -E python3 spoof_toolkit.py --preflight
| フィールド | 意味 |
|---|---|
engagement_id | 必須 — 一意のエンゲージメント識別子 |
authorized_by | 必須 — テストを承認した当事者名(SOW / チケット) |
client、operator、contact、notes | 監査証跡用のエンゲージメントメタデータ |
start、end | ISO-8601 の時間枠(オフセットがない場合は UTC とみなす)。期限なしの場合はどちらかの境界を省略可能 |
authorized_networks | ターゲットとして指定可能な IPv4/IPv6 CIDR またはホスト単体 |
authorized_macs / authorized_ssids / authorized_bssids | L2 / ワイヤレスのターゲティング用許可リスト |
denied_networks / denied_macs | ノーストライクリスト — 常に許可リストを上書きする |
設計上フェイルクローズドです。空の許可リストは何も許可せず、
denied_networks エントリ内の範囲内ホスト(例:それ以外は許可された /24 内にあるドメインコントローラ)は拒否されます。
セーフモード。
session.safe_mode = Trueを設定すると、有効なスコープが読み込まれていても強制的にドライランになります。送信を行わずにエンゲージメントをエンドツーエンドでリハーサルする際に使用してください。
| モジュール | ファイル | 説明 |
|---|---|---|
| ARP スプーフィング | attacks/arp_spoof.py | キャッシュポイズニング — MitM、DoS、片方向、ゲートウェイ限定 |
| DNS スプーフィング | attacks/dns_spoof.py | レスポンスインジェクション — 選択的、全スプーフ、ルールファイル、NXDOMAIN |
| 統合 MitM | attacks/combined_mitm.py | ARP + DNS + 認証情報キャプチャの完全統合(asyncio.TaskGroup) |
| SSL ストリップ | attacks/ssl_strip.py | 透過的 HTTPS ダウングレードプロキシ(Linux/macOS) |
| ローグ DHCP | attacks/rogue_dhcp.py | 偽 DHCP サーバーによるデフォルトゲートウェイのハイジャック(ステルス) |
| LLMNR/NBT-NS | attacks/llmnr_nbt.py | 新規 — LLMNR + NBT-NS + mDNS ポイズニング、NTLMv2 ハッシュキャプチャ |
| WPAD | attacks/wpad.py | 新規 — ブラウザプロキシ自動設定インジェクション |
| キャプティブポータル | attacks/captive_portal.py | 新規 — 4 つのテンプレートを備えた偽ログインページ |
| モジュール | ファイル | 説明 |
|---|---|---|
| Deauth | attacks/deauth.py | 新規 — 802.11 デアソシエーション(ターゲット指定 + ブロードキャスト)、WPA ハンドシェイクキャプチャ |
| ビーコンフラッド | attacks/beacon_flood.py | 新規 — 数百の偽 SSID で電波をフラッド |
| AP スキャナー | attacks/deauth.py | 新規 — パッシブ 802.11 ビーコンスキャナー |
| クライアントスキャナー | attacks/deauth.py | 新規 — AP に関連付けられたクライアントを検出 |
| モジュール | ファイル | 説明 |
|---|---|---|
| RA スプーフ | attacks/icmpv6_ra.py | 新規 — ICMPv6 ルーターアドバタイズメント(デフォルトゲートウェイのハイジャック) |
| NDP スプーフ | attacks/ndp_spoof.py | 新規 — 近隣アドバタイズメントポイズニング(IPv6 版 ARP) |
| 完全 IPv6 MitM | (コンボ) | 新規 — 完全な IPv6 傍受のための RA + NDP + IPv6 フォワーディング |
# 1. Install
sudo bash install.sh
# 1b. Authorize an engagement (required for live fire — otherwise dry-run only)
cp rules/engagement.example.json rules/my-engagement.json # then edit it
export SPOOF_TOOLKIT_SCOPE=rules/my-engagement.json
# 2. Run (interactive menu)
sudo -E spoof-toolkit
# 3. Or run directly
sudo python3 spoof_toolkit.py
# 4. Preflight check
sudo python3 spoof_toolkit.py --preflight
# 5. Launch PRISM dashboard directly
sudo python3 spoof_toolkit.py --prism
# 6. Docker (no install needed)
docker build -t spoof-toolkit .
docker run --rm -it --network host --cap-add NET_RAW --cap-add NET_ADMIN spoof-toolkit