
Eine lokal gehostete GUI für das Aircrack-ng-Wireless-Auditing-Suite.
Eine lokale Weboberfläche für das aircrack-ng Wireless-Toolkit.
Screenshots · Schnellstart · Funktionen · Roadmap · Mitwirken
[!WARNING] Verwenden Sie dies nur in Netzwerken, die Ihnen gehören oder für die Sie eine schriftliche Genehmigung zum Testen haben. Das Scannen, Deauthentifizieren oder Abfangen von Datenverkehr in Netzwerken, die Sie nicht kontrollieren, ist in den meisten Ländern illegal. Siehe Rechtmäßige und verantwortungsvolle Nutzung.
AirmonGUI setzt airmon-ng, airodump-ng, aireplay-ng und aircrack-ng hinter eine einzige Web-App, die auf Ihrer eigenen Maschine läuft. Sie aktivieren den Monitor-Modus, scannen nach Netzwerken, erfassen einen WPA-Handshake und knacken ihn – durch Klicken durch beschriftete Formulare, anstatt sich an Flags erinnern zu müssen.
Es implementiert keines der Tools neu. Das Backend führt die echten Binärdateien aus und parst deren Ausgabe, sodass das, was Sie sehen, auch das ist, was das Toolkit tatsächlich getan hat. Die UI bindet an 127.0.0.1 und die API verlässt nie Ihre Maschine.
Das aircrack-ng-Toolkit ist exzellent, aber der Workflow erstreckt sich über vier separate Befehle und viele Flags, die Sie im Kopf behalten müssen: Die Karte in den Monitor-Modus versetzen, Kanäle wechseln, um ein Ziel zu finden, auf eine BSSID einrasten, Deauth auf dem richtigen Kanal senden, auf den Vier-Wege-Handshake warten, dann die Aufnahme in eine Wortliste einspeisen. Verpassen Sie den Kanal und die Deauth verpufft. Vergessen Sie --bssid und Ihre Aufnahme ist voller Rauschen.
Ich wollte diese gesamte Sequenz als eine Reihe von Bildschirmen, die Sie Schritt für Schritt durchführen, Ihnen zeigen, was in der Luft ist, und den Zustand zwischen den Schritten konsistent halten. Das ist es, was dies ist. Es funktioniert gut, um zu lernen, wie die Angriffe tatsächlich ablaufen, für Laborarbeit und zur Beschleunigung einer autorisierten Bewertung.
Ein Durchlauf bewegt sich von oben nach unten durch die Seitenleiste. Hier ist jeder Bildschirm.
Die Netzwerke, BSSIDs und Clients in den folgenden Screenshots sind synthetische Demo-Daten, keine echte Aufnahme.
Wählen Sie eine Schnittstelle aus, prüfen Sie Treiber, Chipsatz und PHY und schalten Sie den Monitor-Modus ein. Geben Sie nur diese Schnittstelle wieder frei, wenn Sie fertig sind.

Starten Sie einen airodump-ng-Job und beobachten Sie, wie Access Points und Clients auftauchen. Filtern Sie die Tabelle und senden Sie dann jedes Netzwerk direkt an einen Deauth- oder Handshake-Workflow.

Die Signalanalyse bewertet jeden Access Point, sodass die starken, schwach gesicherten mit aktiven Clients nach oben steigen. Sie zeigt auch, wie ausgelastet jeder Kanal ist und welche Sicherheit die umliegenden Netzwerke verwenden. Ihre eigenen Geräte werden markiert, damit Sie nichts versehentlich auf sich selbst richten.

Dieser Bildschirm fixiert airodump-ng auf die BSSID und den Kanal des Ziels, führt die Auto-Deauth-Engine aus, um Clients abzuwerfen, damit sie sich neu verbinden, und wird grün, sobald ein Vier-Wege-Handshake erfasst wurde.

Weisen Sie aircrack-ng an, die Aufnahme und eine Wortliste zu verwenden. Das Protokoll wird während der Ausführung gestreamt, und wenn die Passphrase in Ihrer Liste ist, erscheint sie oben.

Eigenständige Deauth mit Kanal-Sperrung, Ausführungsverlauf und geparsten Ereignisausgaben:

Aufnahmedateiverwaltung:

Sitzungsbefehlsverlauf:

Sie benötigen Linux, Root-Rechte, einen Wireless-Adapter, der den Monitor-Modus unterstützt, und das aircrack-ng-Toolkit in Ihrem $PATH. Siehe Anforderungen für die vollständige Liste.
# 0. Toolkit installieren (Debian, Ubuntu, Kali)
sudo apt update && sudo apt install aircrack-ng wireless-tools
# 1. Klonen
git clone https://github.com/ELHart05/AirmonGUI.git
cd AirmonGUI
# 2. Backend (Terminal 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. Frontend (Terminal 2)
cd frontend
npm install
npm run dev
Öffnen Sie http://localhost:5173. Die UI kommuniziert nur mit 127.0.0.1:8000.
Bei der ersten Verbindung fragt die UI nach einem API-Token. Das Backend gibt beim Start eines auf der Konsole aus, z. B.:
======================================================================
AirmonGUI API-Token (für diesen Lauf generiert):
Xy3k...langer-zufälliger-String...
Fügen Sie ihn in die AirmonGUI-Web-Oberfläche ein, wenn Sie dazu aufgefordert werden.
======================================================================
Fügen Sie dieses Token in den Entsperrbildschirm ein. Um ein festes Token über Neustarts hinweg zu behalten, setzen Sie AIRMON_GUI_AUTH_TOKEN in backend/.env (das Backend lädt diese Datei beim Start). Jeder API-Endpunkt außer dem Health-Check benötigt dieses Token, was verhindert, dass ein zufälliger lokaler Prozess oder eine Webseite, die Sie gerade besuchen, die Wireless-Tools hinter Ihrem Rücken steuert. Sie müssen das Token explizit setzen, bevor Sie das Backend an etwas anderes als 127.0.0.1 binden – andernfalls weigert es sich zu starten.
Wenn die Eingabeaufforderung auf einem Einzelbenutzer-Rechner nur eine Hürde ist, setzen Sie AIRMON_GUI_AUTH_ENABLED=false, um die Authentifizierung vollständig zu deaktivieren; die UI überspringt dann den Entsperrbildschirm. Bei deaktivierter Authentifizierung weigert sich das Backend, sich an etwas anderes als Loopback zu binden – setzen Sie API_HOST auf etwas anderes als 127.0.0.1, und es startet nicht.
Root wird benötigt, weil airmon-ng, airodump-ng und aireplay-ng Raw-Sockets verwenden. Rufen Sie .venv/bin/uvicorn direkt auf und nicht einfach uvicorn, da sudo den PATH zurücksetzt und sonst die Virtualenv verpassen würde; das Flag -E behält alle von Ihnen gesetzten AIRMON_GUI_*-Variablen. Wenn Sie den Server nicht als Root ausführen möchten, richten Sie passwortloses sudo für diese spezifischen Binärdateien ein und passen Sie backend/app/utils.py an.
cd frontend
npm run build # schreibt statische Dateien nach frontend/dist/
Servieren Sie frontend/dist/ von einem beliebigen statischen Dateiserver und proxyen Sie /api/* und den /ws/* WebSocket an den Uvicorn-Prozess.
| Ebene | Stack |
|---|---|
| Backend | Python 3.11+, FastAPI, Uvicorn, Pydantic v2 |
| Frontend | Vue 3, Vite 5, Tailwind CSS 3, lucide-vue-next, xterm.js |
| Website | React 18, TypeScript, Vite, Tailwind (die optionale Landing-Page in website/) |
AirmonGUI
├── backend/ FastAPI REST API und WebSocket, ein Routenmodul pro Tool
│ app/routes/ (interfaces, airodump, aireplay, aircrack, handshake, captures)
│ app/models.py (validierte Pydantic I/O), app/state.py (In-Prozess-Job-Registry)
│ app/utils.py (Subprozess- und sudo-Logik), app/config.py (Umgebungs-Konfiguration)
│
├── frontend/ Vue 3 Single-Page-App, die Steuerkonsole
│ views/ (Overview, Monitor, Scan, Signal, Deauth, Handshake, Crack, Captures, Reports, Terminal, Logs)
│ composables/ (reaktive Job- und Zustandslogik), api/ (Fetch-Wrapper)
│
└── website/ Eigenständige React-Landing-Site (optional)
Das Backend bietet eine REST-API unter http://127.0.0.1:8000/api und einen Terminal-WebSocket unter /ws/terminal (durch das API-Token geschützt; schalten Sie es mit AIRMON_GUI_TERMINAL_ENABLED=0 aus). In der Entwicklung proxyt der Vite-Dev-Server auf :5173 beides an das Backend.
Interaktive Schemata sind unter http://127.0.0.1:8000/docs (Swagger UI), /redoc und /openapi.json verfügbar, während das Backend läuft.
Solange die Authentifizierung aktiviert ist (Standard), benötigt jeder Endpunkt außer /api/health und /api/auth/status den X-Auth-Token-Header (siehe Schnellstart für die Herkunft des Tokens). In der Swagger UI sendet der Authorize-Button ihn für Sie. Mit AIRMON_GUI_AUTH_ENABLED=false wird das Token fallengelassen (nur Loopback).
Das Backend läuft mit den folgenden Standardwerten, daher benötigen Sie diese nur, um sie zu ändern. Setzen Sie sie in backend/.env (wird beim Start geladen) oder exportieren Sie sie vor dem Start von Uvicorn; eine exportierte Variable überschreibt die Datei. Siehe backend/.env.example für die vollständige Liste.
„Could not lock wlan0 to channel N“ oder ein Scan ohne Netzwerke. Die Schnittstelle ist fast immer noch im Managed-Modus. Der Monitor-Modus ist es, der dem Adapter ermöglicht, zu erfassen und Kanäle zu wechseln. Aktivieren Sie ihn zuerst über den Monitor-Tab (oder airmon-ng start wlan0), und scannen Sie dann auf der Monitor-Schnittstelle – oft wlan0mon, obwohl einige Treiber den ursprünglichen Namen behalten. Der Scan lehnt eine Managed-Schnittstelle mit diesem Hinweis ab, und ein Einkanalscan bricht nicht mehr ab, wenn die Vorsperrung nicht überprüft werden kann, da airodump-ng den Kanal selbst einstellt.
Netzwerke werden beim ersten Durchlauf angezeigt, beim zweiten jedoch nicht. Eine übrig gebliebene Monitor-Schnittstelle oder NetworkManager, der den Adapter zwischen den Durchläufen zurückfordert, kann ihn in einem hängenden Zustand hinterlassen. Führen Sie airmon-ng check kill (den Check-Kill-Button) vor dem Scannen aus und stoppen Sie einen Scan, bevor Sie einen weiteren auf derselben Schnittstelle starten.
Hilfe zu einem dieser Punkte ist willkommen. Siehe Mitwirken.
hashcat-Übergabe für GPU-KnackenHaben Sie eine Idee? Eröffnen Sie ein Issue. Funktionsanfragen und Fragen sind in Ordnung.
Pull-Requests sind willkommen, und je kleiner und fokussierter, desto besser.
uvicorn) und das Frontend (npm run dev) beide sauber starten.Jeder Ordner hat seine eigene README mit Hinweisen: backend, frontend, website.
Wenn das Projekt für Sie nützlich ist, hilft ein Stern anderen, es zu finden, und sagt mir, dass es sich lohnt, weiterzumachen.
AirmonGUI ist für autorisierte Wireless-Tests, Forschung und Lehre in Netzwerken bestimmt, die Ihnen gehören oder für die Sie eine schriftliche Genehmigung zur Bewertung haben.
Das Abfangen von Datenverkehr und das Deauthentifizieren von Netzwerken oder Geräten, die Sie nicht kontrollieren, ist in den meisten Rechtsordnungen illegal. Die Standardeinstellungen halten sowohl die API als auch den Dev-Server aus gutem Grund auf Loopback – setzen Sie sie also nicht in einem gemeinsamen oder öffentlichen Netzwerk ein. Die Autoren übernehmen keine Verantwortung für Missbrauch. Mit der Nutzung dieser Software bestätigen Sie, dass Sie die Erlaubnis für jedes Netzwerk und jedes Gerät haben, das Sie berühren.
Nutzen Sie es, um Netzwerke zu verstehen und zu verteidigen, nicht um andere anzugreifen, die nicht Ihnen gehören.
MIT, siehe LICENSE. Basierend auf dem aircrack-ng-Projekt, das die eigentliche Arbeit leistet.
| Bereich | Was es tut |
|---|
| Monitor-Modus | Monitor-Modus auf einer ausgewählten Schnittstelle mit airmon-ng aktivieren oder deaktivieren. Eine separate Check-Kill-Aktion führt airmon-ng check kill aus, wenn Hintergrunddienste wie NetworkManager den Monitor-Modus blockieren. |
| Netzwerkscanning | Führt airodump-ng-Capture-Jobs aus und zeigt Access Points und Clients in einer Live-Tabelle an, die Sie nach Name, Sicherheit oder Band filtern können. |
| Signalanalyse | Bewertet Access Points nach ihrer Angreifbarkeit (Signalstärke, schwache Sicherheit, aktive Clients) und zeigt Kanalauslastung sowie die Sicherheitsmischung in Reichweite als Diagramme an. |
| Deauthentifizierung | Sendet gezielte oder Broadcast-Deauth über aireplay-ng, wobei die Schnittstelle zuerst auf den Kanal des Access Points gesetzt wird, damit die Frames ankommen. |
| Handshake-Erfassung | Ein Drei-Schritte-Workflow, der airodump-ng auf ein Ziel fixiert, eine Auto-Deauth-Engine ausführt und den WPA-Vier-Wege-Handshake selbstständig erkennt. |
| Knacken | Übergibt eine Aufnahme und eine Wortliste an aircrack-ng, streamt das Live-Protokoll und zeigt den gefundenen Schlüssel sofort an, sobald er erscheint. |
| Aufnahmeverwaltung | Durchsuchen, Filtern, Mehrfachauswahl und Löschen der .cap-, .csv-, .pcap-, .ivs- und .log-Dateien, die das Toolkit schreibt. |
| Integriertes Terminal | Eine echte PTY-Shell (xterm.js) für den Fall, dass Sie die rohe Befehlszeile im selben Fenster haben möchten. |
| Befehlsprotokolle | Jeder im Sitzungsverlauf ausgeführte Befehl mit stdout, stderr, Status und Ein-Klick-Kopieren. |
| Methode | Endpunkt | Beschreibung |
|---|
| GET | /api/health | Server-Health-Check (kein Token) |
| GET | /api/auth/status | Ob Authentifizierung und Terminal aktiviert sind (kein Token) |
| GET | /api/auth/verify | Bestätigen, dass das bereitgestellte Token gültig ist |
| GET | /api/toolcheck | Prüfen, ob die aircrack-ng-Tools installiert sind |
| GET | /api/interfaces | Listet Wireless-Schnittstellen mit MAC und Monitor-Status auf |
| POST | /api/monitor | Monitor-Modus starten oder stoppen |
| POST | /api/checkkill | airmon-ng check kill ausführen, um störende Dienste zu beenden |
| GET | /api/airodump/jobs | Listet laufende und bekannte Capture-Jobs auf |
| POST | /api/airodump/start | Startet einen airodump-ng-Scan-Job |
| POST | /api/airodump/stop | Stoppt einen Scan-Job anhand der ID |
| GET | /api/airodump/results/{job_id} | Geparste Scan-Ergebnisse (Netzwerke und Clients) |
| POST | /api/aireplay/deauth/start | Startet einen Deauth-Job |
| GET | /api/aireplay/deauth/jobs | Listet Deauth-Jobs auf |
| GET | /api/aireplay/deauth/{job_id}/status | Pollt einen Deauth-Job |
| POST | /api/aireplay/deauth/{job_id}/stop | Stoppt einen Deauth-Job |
| POST | /api/handshake/start | Startet eine gezielte Handshake-Erfassung |
| GET | /api/handshake/jobs | Listet Handshake-Capture-Jobs auf |
| GET | /api/handshake/{job_id}/status | Pollt die Handshake-Erkennung |
| POST | /api/handshake/{job_id}/stop | Stoppt eine Handshake-Erfassung |
| GET | /api/aircrack/jobs | Listet Crack-Jobs auf |
| GET | /api/aircrack/validate?path=<datei> | Prüft, ob eine Aufnahme einen Handshake enthält |
| POST | /api/aircrack/crack | Startet einen aircrack-ng-Wortliste-Job |
| GET | /api/aircrack/{job_id}/status | Pollt den Crack-Status und die letzten Protokollausgaben |
| POST | /api/aircrack/{job_id}/stop | Stoppt einen Crack-Job |
| GET | /api/captures | Listet Capture-Dateien auf |
| GET | /api/captures/cap | Listet knackbare .cap-, .pcap- und .ivs-Dateien auf |
| DELETE | /api/captures/{dateiname} | Löscht eine Capture-Datei |
| WS | /ws/terminal | Interaktives PTY-Terminal (standardmäßig aktiv; token-geschützt; deaktivieren mit AIRMON_GUI_TERMINAL_ENABLED=0) |
| Variable | Standard | Beschreibung |
|---|
AIRMON_GUI_CAPTURE_DIR | /var/lib/airmongui/captures | Wo Capture-Dateien geschrieben werden (erstellt 0700; muss ein privates, im Besitz befindliches Verzeichnis sein) |
AIRMON_GUI_AUTH_ENABLED | true | Auf false setzen, um die Token-Anforderung fallen zu lassen (nur Loopback) |
AIRMON_GUI_AUTH_TOKEN | (generiert) | API-Token. Wird beim Start generiert und ausgegeben, falls nicht gesetzt; erforderlich, um sich an etwas anderes als Loopback zu binden |
AIRMON_GUI_TERMINAL_ENABLED | 1 | Token-geschützte /ws/terminal-Shell; auf 0 setzen, um die Route zu entfernen und den Tab auszublenden |
AIRMON_GUI_MAX_ACTIVE_JOBS | 8 | Höchstzahl gleichzeitiger Tool-Jobs |
CORS_ORIGINS | http://localhost:5173 | Komma-getrennte erlaubte Ursprünge |
API_HOST | 127.0.0.1 | Host, an den Uvicorn bindet |
API_PORT | 8000 | Port, den Uvicorn abhört |
AIRMON_GUI_ENV_FILE | backend/.env | Pfad zur zu ladenden Env-Datei; leerer String überspringt das Laden |
export AIRMON_GUI_CAPTURE_DIR=/home/user/captures
sudo -E .venv/bin/uvicorn main:app --host 127.0.0.1 --port 8000
| Anforderung | Hinweise |
|---|
| Linux (Kernel 4.x+) | Getestet auf Kali Linux und Ubuntu 22.04 |
| Wireless-Adapter mit Monitor-Modus | Z. B. ein Atheros AR9271 oder ein anderer gängiger Pentest-Chipsatz |
| aircrack-ng-Toolkit | airmon-ng, airodump-ng, aireplay-ng, aircrack-ng im $PATH |
wireless-tools (iwconfig) | Wird für die Kanalabstimmung verwendet |
| Root-Rechte | Erforderlich für die aircrack-ng-Tools |
| Python 3.11+ und Node.js 18+ | Backend- und Frontend-Toolchains |