
aircrack-ng ワイヤレス監査スイートのローカルホスト型 GUI。
[!WARNING] 自分が所有しているか、テストする書面での許可を得ているネットワークでのみ使用してください。許可なくネットワークをスキャン、認証解除、またはトラフィックをキャプチャすることは、ほとんどの国で違法です。詳細は法的責任と責任ある使用を参照してください。
AirmonGUI は airmon-ng、airodump-ng、aireplay-ng、aircrack-ng を、自分のマシン上で動作する1つのWebアプリにまとめたものです。モニターモードの有効化、ネットワークのスキャン、WPAハンドシェイクのキャプチャ、そしてクラックまでを、フラグを覚える代わりにラベル付きのフォームをクリックして進められます。
各ツールを再実装しているわけではありません。バックエンドは実際のバイナリをシェル経由で呼び出し、その出力を解析するため、表示される内容はスイートが実際に行った処理そのものです。UI は 127.0.0.1 にバインドされ、API は決してマシンの外に出ません。
aircrack-ng スイートは優れていますが、ワークフローは4つの別々のコマンドと多くのフラグを頭に入れておく必要があります。カードをモニターモードにする、チャネルをホッピングしてターゲットを見つける、BSSID にロックする、正しいチャネルで deauth を送出する、4ウェイハンドシェイクを待つ、そしてキャプチャをワードリストに渡す。チャネルを間違えると deauth は無効になります。--bssid を忘れるとキャプチャにノイズが混ざります。
この一連の流れを、手順を案内する画面のセットとして、電波状況を表示し、各ステップ間の状態を正しく保持するものにしたかったのです。それがこれです。攻撃の実際の動作を学ぶため、ラボ作業、そして許可された評価の迅速化に役立ちます。
| 領域 | 説明 |
|---|---|
| モニターモード | airmon-ng を使用して、選択したインターフェースのモニターモードを有効化/無効化。バックグラウンドの NetworkManager などのサービスがモニターモードを妨害している場合、別のチェックキルアクションで airmon-ng check kill を実行します。 |
| ネットワークスキャン | airodump-ng キャプチャジョブを実行し、アクセスポイントとクライアントをライブテーブルに表示。名前、セキュリティ、バンドでフィルタリング可能。 |
| シグナル分析 | アクセスポイントを攻撃しやすさ(シグナル強度、弱いセキュリティ、アクティブなクライアント数)でランク付けし、チャネルの混雑状況と周辺のセキュリティ構成をグラフ表示。 |
| 認証解除 (Deauthentication) | aireplay-ng を使用して、ターゲットまたはブロードキャストの deauth を送信。事前にインターフェースをアクセスポイントのチャネルに設定し、フレームが確実に届くようにします。 |
| ハンドシェイクキャプチャ | 3ステップのワークフローで、airodump-ng をターゲットにロックし、自動deauthエンジンを実行し、WPA4ウェイハンドシェイクを自動検出。 |
| クラック | キャプチャとワードリストを aircrack-ng に渡し、ライブログをストリーム表示。パスフレーズがリストにあれば、見つかり次第表示。 |
| キャプチャ管理 | スイートが書き出す .cap、.csv、.pcap、.ivs、.log ファイルを参照、フィルタリング、一括選択、削除。 |
| 統合ターミナル | 同じウィンドウ内で生のコマンドラインを扱いたい場合のための、実際の PTY シェル(xterm.js)。 |
| コマンドログ | セッション中に実行されたすべてのコマンドと、stdout、stderr、ステータス、ワンクリックコピー。 |
サイドバーを上から下へと進めます。以下が各画面です。
以下のスクリーンショットのネットワーク、BSSID、クライアントは実際のキャプチャではなく、合成されたデモデータです。
インターフェースを選択し、ドライバー、チップセット、PHY を確認して、モニターモードをオンにします。終わったらそのインターフェースだけ解除します。

airodump-ng ジョブを開始し、アクセスポイントとクライアントが見つかるたびに表示。テーブルをフィルタリングし、任意のネットワークを deauth またはハンドシェイクワークフローに直接送信できます。

シグナル分析はすべてのアクセスポイントをスコアリングし、シグナルが強く、セキュリティが弱く、アクティブなクライアントがいるものを上位に表示します。各チャネルの混雑状況と周辺ネットワークのセキュリティも表示されます。自分のデバイスはフラグが付くため、誤って自分自身をターゲットにすることはありません。

この画面では、airodump-ng をターゲットの BSSID とチャネルにロックし、自動deauthエンジンを実行してクライアントを切断して再接続させ、4ウェイハンドシェイクがキャプチャされると即座に緑色に変わります。

aircrack-ng にキャプチャとワードリストを指定します。実行中にログがストリーム表示され、パスフレーズがリストにあれば上部に表示されます。

チャネルロック付きのスタンドアロンdeauth、実行履歴、解析済みイベント出力:

キャプチャファイル管理:

セッションコマンド履歴:

Linux、root権限、モニターモード対応ワイヤレスアダプター、および $PATH に aircrack-ng スイートが必要です。詳細は要件を参照してください。
# 0. スイートをインストール(Debian、Ubuntu、Kali)
sudo apt update && sudo apt install aircrack-ng wireless-tools
# 1. クローン
git clone https://github.com/ELHart05/AirmonGUI.git
cd AirmonGUI
# 2. バックエンド(ターミナル1)
cd backend
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
sudo -E .venv/bin/uvicorn main:app --host 127.0.0.1 --port 8000
# 3. フロントエンド(ターミナル2)
cd frontend
npm install
npm run dev
http://localhost:5173 を開きます。UI は 127.0.0.1:8000 とのみ通信します。
初回接続時、UI は API トークンを要求します。バックエンドは起動時にコンソールに次のように出力します:
======================================================================
AirmonGUI API token (generated for this run):
Xy3k...long-random-string...
Paste it into the AirmonGUI web UI when prompted.
======================================================================
そのトークンをロック解除画面に貼り付けます。再起動後も同じトークンを使い続けたい場合は、backend/.env に AIRMON_GUI_AUTH_TOKEN を設定します(バックエンドは起動時にこのファイルを読み込みます)。ヘルスチェックを除くすべてのAPIルートにはこのトークンが必要です。これにより、操作しているローカルプロセスや偶々開いているウェブページが、背後でワイヤレスツールを操作することを防ぎます。バックエンドを 127.0.0.1 以外にバインドする場合は、トークンを明示的に設定する必要があります。設定しないと起動しません。
シングルユーザーマシンでプロンプトが煩わしい場合は、AIRMON_GUI_AUTH_ENABLED=false と設定して認証を完全にオフにできます。UI はロック解除画面をスキップします。認証をオフにした場合、バックエンドはループバック以外にはバインドしません。API_HOST を 127.0.0.1 以外に指定すると起動しません。
root が必要なのは、airmon-ng、airodump-ng、aireplay-ng が raw ソケットを使用するためです。.venv/bin/uvicorn を直接呼び出してください(単に uvicorn としない)。sudo は PATH をリセットするため、virtualenv を見失います。-E フラグは設定した AIRMON_GUI_* 変数を保持します。サーバーを root として実行したくない場合は、それらのバイナリに対してパスワードなしの sudo を設定し、backend/app/utils.py を調整してください。
cd frontend
npm run build # 静的ファイルを frontend/dist/ に出力
frontend/dist/ を任意の静的ファイルサーバーで配信し、/api/* と WebSocket /ws/* を Uvicorn プロセスにプロキシします。
| 層 | スタック |
|---|---|
| バックエンド | Python 3.11+, FastAPI, Uvicorn, Pydantic v2 |
| フロントエンド | Vue 3, Vite 5, Tailwind CSS 3, lucide-vue-next, xterm.js |
| ウェブサイト | React 18, TypeScript, Vite, Tailwind(オプションのランディングページ website/) |