Nu har trådlösa nät blivit ännu osäkrare!
En av utmaningarna vid forcering av WPA/WPA2-personal skyddade WiFi nätverk, så har man som angripare varit tvungen att placera sig i närheten av både anslutna klienter och accesspunkter. Syftet är att erhålla en lösenordshash. Genom att tvinga fram en omautentisering av klienten mot accesspunkten kan angriparen snappa upp en lösenordshash. Genom att sedan knäcka lösenordshashen kan angriparen få fram lösenordet till nätverket som sedan kan användas för anslutning. Sammanfattningsvist, för att få tag i lösenordshashen så krävs följande förutsättningar.
- Vara fysiskt i närheten av det WiFi-nät som ska angripas.
- En klient måste vara uppkopplad mot accesspunkten.
- Angriparen måste kunna tvinga klienten att autentisera sig mot accesspunkten.
Hashcat publicerade den 4:e augusti, på sitt forum, ett verktyg för att kunna erhålla den så kallade PMKID hashen för att göra ett motsvarande angrepp. PMKID är till för att lösa roaming mellan olika accesspunkter i samma WiFi-nät. För att räkna ut PMKID behövs endast ”lösenord”, accesspunktens MAC-adress, anslutande klients MAC-adress (läs angriparens MAC-adress) samt namnet på det trådlösa nätverket.
PMK = PBKDF2(Hashalgoritm, ESSID, Password, 4096, 256)
PMKID = HMAC-SHA1-128(PMK, "PMK Name " | MAC_AP | MAC_STA)
För att förstå vad PMKID används till måste man förstå PMK. PMK (Pairwise Master Key) är en i varje enhet internt beräknad hash som utgår från lösenordet och essid (WiFi-nätets namn). PMK kommuniceras aldrig över nätet utan används som beräkningsgrund för temporära nycklar och PMKID. PMKID skickas över det trådlösa nätverket i ett sätt att fastställa om en säkerhetsassociation finns mellan klienten och nätverket. PMKID används som pekare till annan information om autentisering skett och på så sätt snabbar upp överlämning mellan accesspunkter. Syftet är att undvika störningar i t.ex. strömning av information så som telefonsamtal i samband med överlämning mellan access punkter.
Ur ett logistiskt perspektiv är användningen av PMKID en klar förenkling för angriparen. Det enda angriparen behöver göra för att erhålla en lösenordshash, jämfört med ovan, är följande:
- Vara fysiskt i närheten av det WiFi-nät som ska angripas.
- Accesspunkten ska ha 802.11r (roaming) aktiverad. Många AP har denna aktiverad även om den inte fyller någon funktion. Syftet är att det ska vara enkelt för användare att lägga till repeaters och bygga meshade WiFi-strukturer.
- Angriparen måste försöka att ansluta sig mot accesspunkten.
Detta skapar dessutom en ny angreppsvektor för wardriving eller åtminstone warwalking för att samla in ett godtyckligt antal lösenordshashar. En angripare kan åka runt och samla in hundratals SSID med lösenordshashar på bara någon timme, för att sedan använda dessa för strukturerad offline knäckning.
Den tidigare metoden innebar att angriparen var tvungen att rikta in sig på specifika mål för att få tag i en lösenordshash. Detta var både tidskrävande och garanterade inte alltid att man som angripare lyckades erhålla hashen. Att angripa PMKID är att betrakta som mer opportunistisk där en angripare kan samla in många hashar och sedan istället använda en kortare lösenordslista för att knäcka lösenorden eftersom sannolikheten att någon av de insamlade lösenorden är svagt är stor.
Det innebär att trådlösa hemmanätverk som är den största användaren av WPA/WPA2-personal löper en ökad risk. Angriparen kan på så sätt lätt komma in i hemmanätverken för att sedan komma vidare med andra attacker, som t.ex. stjäla information, stjäla bandbredd osv.
Det enda skyddet mot denna typ av attacker är att ha ett så bra WiFi-lösenord som möjligt och att lösenordet är slumpmässigt. IEEE som tagit fram standarden rekommenderar för WPA2 att lösenordet ska vara minst 20 tecken för att betraktas som säker. Det är inte många WiFi-nät som idag når upp till den rekommendationen.
För att skydda sig så kan man också slå av roaming funktionaliteten på sin router. Det är dock inte helt självklart att den inställningsmöjligheten finns på konsumentroutrar.
WPA2-Enterprise nätverk påverkas inte av attacken eftersom PMKID är dynamiskt.
Länken till verktyg som man kan använda för att utföra attacken hittas här: https://hashcat.net/forum/thread-7717.html