
AirStrike est un framework avancé d'évaluation de la sécurité sans fil conçu pour simplifier et améliorer les tests de pénétration Wi-Fi grâce à une interface web intégrée.
/ \ (_) _ __ / ___| | |_ _ __ (_)| | __ ___
/ _ \ | || '__|\___ \ | __|| '__|| || |/ / / _ \
/ ___ \ | || | ___) || |_ | | | || < | __/
/_/ \_\|_||_| |____/ \__||_| |_||_|\_\ \___|
AirStrike est une interface web Flask + Socket.IO pour orchestrer des outils d'évaluation Wi-Fi depuis un navigateur.
Cette version se concentre volontairement sur les trois attaques les plus stables de la suite : Deauthentication, Cracking (handshake capture + aircrack-ng) et Evil Twin.
aircrack-ng et une wordlist configurable.hostapd/dnsmasq, met en place un spoofing DHCP/DNS et peut éventuellement faire office de portail captif.Tous les autres stubs d'attaques expérimentales ont été retirés afin de garder l'interface, l'API et les chemins de code épurés.
pippython -m venv .venv
source .venv/bin/activate
pip install -e . # installs deps + the `airstrike` console script
# or: pip install -r requirements.txt
$PATH :
aircrack-ng (airmon-ng, airodump-ng, aircrack-ng)iw, ip, ifconfig/net-toolshostapd, dnsmasq, , sudo python run.py
Le lanceur impose sudo, exporte les variables d'environnement requises et s'assure que /etc/hosts contient 127.0.0.1 airstrike.local.
Par défaut, le serveur écoute sur 127.0.0.1:5000 (loopback uniquement) ; rendez-vous sur http://airstrike.local:5000 ou http://127.0.0.1:5000. (sudo airstrike exécute la même chose via le script console.)
Sur la liaison loopback par défaut, il n'y a pas d'authentification — pour une machine à opérateur unique, la liaison loopback est le contrôle d'accès, vous allez donc directement au tableau de bord. (Un portail d'authentification s'active automatiquement si vous exposez le panneau avec AIRSTRIKE_BIND_ALL=1 ; définissez alors AIRSTRIKE_PASSWORD, ou forcez l'activation/désactivation de l'authentification avec AIRSTRIKE_REQUIRE_AUTH=1 / AIRSTRIKE_DISABLE_AUTH=1.) Utilisez l'onglet Scan pour découvrir les réseaux, sélectionnez-en un, puis basculez vers Attack. Vous confirmez toujours l'autorisation avant qu'une attaque ne démarre, et chaque lancement/arrêt est consigné dans airstrike-audit.log. Les journaux en direct et les résumés de captures se trouvent sous Results.
Pour y accéder depuis une autre machine, préférez un tunnel SSH (ssh -L 5000:127.0.0.1:5000 <host>). L'exposer sur toutes les interfaces (AIRSTRIKE_BIND_ALL=1) sert le panneau en HTTP en clair et est déconseillé — voir THREAT_MODEL.md.
app/config.py, sous le dictionnaire config ; l'onglet Settings permet de les modifier en direct.AIRSTRIKE_PASSWORD (connexion), AIRSTRIKE_SECRET_KEY (sessions persistantes), AIRSTRIKE_BIND_ALL=1 (expose le panneau sur toutes les interfaces — déconseillé), AIRSTRIKE_ORIGINS (liste d'autorisation CORS Socket.IO hors loopback), AIRSTRIKE_AUDIT_LOG (chemin du fichier d'audit).captures/.run.py est un petit intermédiaire vers app.cli:main (également installé comme script console airstrike) ; il impose root, mappe airstrike.local et démarre Socket.IO.Le backend est un paquet app/ unique et installable (restructuré depuis l'organisation plate d'origine — voir la PR #8) :
app/engine/ – workers d'attaque indépendants du framework (deauth, capture/cracking de handshake, evil twin) ; importables sans Flask.app/core/ – infrastructure partagée : utilitaires réseau/mode moniteur, sudo, journalisation, plus les modules validation, auth et audit.app/services/ – orchestration (attack/scan/settings) entre les blueprints et le moteur.app/blueprints/ – routes Flask ; app/__init__.py est la fabrique create_app().app/static/ · app/templates/ – le front-end (la configuration par attaque se trouve dans app/static/js/modules/attacks/).run.py · pyproject.toml – shim de point d'entrée + packaging.tests/ – suite pytest (contrat fabrique/routes, parseurs et tests de régression sécurité/auth).utils/network_utils.set_managed_mode.airodump-ng, hostapd) apparaîtront dans le volet des journaux d'attaque. Installez-les via votre gestionnaire de paquets et redémarrez AirStrike.AirStrike s'exécute en root, sa propre sécurité compte donc. Le durcissement comprend : aucune exécution de shell (argv uniquement), validation des entrées sur toutes les valeurs liées au système, un portail d'authentification + CSRF + application de la même origine, une liaison loopback par défaut, l'échappement XSS, un canal Socket.IO authentifié, et un portail d'autorisation + journal d'audit. Le modèle de confiance complet, les risques résiduels (notamment : pas de TLS — utilisez un tunnel SSH) et une liste de contrôle pour une utilisation sûre figurent dans THREAT_MODEL.md. Exécutez la suite de tests avec pytest.
AirStrike exécute des attaques actives et offensives (déauthentification, capture de handshake, point d'accès rogue). Les lancer contre des réseaux dont vous n'êtes pas propriétaire — ou pour lesquels vous n'avez pas d'autorisation écrite d'audit — est illégal dans la plupart des juridictions (par ex. CFAA américaine, FCC §333 pour la déauthentification, CMA du Royaume-Uni, StGB §202c allemand). C'est un outil de laboratoire / de recherche / de portfolio : utilisez-le uniquement sur votre propre équipement ou dans le cadre d'un engagement autorisé. Le portail d'autorisation intégré enregistre votre confirmation ; il n'accorde pas la permission. Vous êtes responsable de l'usage que vous en faites.
iptablesdnsspoof