Buenas tardes! Después de unos días, he querido hacer esta explicación, sobre el método PMKID, explicando paso a paso como se debe realizar, a parte, de saber para que sirve cada parámetro que estamos utilizando. Creo este tema por separado, para no liar con el otro tema principal.
En primer lugar, una breve explicación de para que sirve cada herramienta.
Hcxdumptool: Sirve para capturar el trafico de la red.
Hcxtools: Sirve para convertir los paquetes capturados.
Hashcat: Se utiliza para recuperar contraseñas, con una gran cantidad de algoritmos soportados.
Cada herramienta tiene sus propios parámetros, a continuación se van a explicar cada parámetro utilizado.
-
Primer paso: Instalar las herramientas comentadas arriba, para ello he utilizado el script de nuestro compañero del foro @alexupps (podéis encontrarlo aquí)
-
Instrucciones sobre el script aquí
-
Si queréis instalar manualmente las herramientas:
https://www.wifi-libre.com/img/members/676/Screenshot-from-2018-08-12-16-54-45.jpeg
- Segundo paso: Verificar que se han creado las carpetas, en mi caso lancé los comandos desde la raíz, así que deben estar allí.
https://www.wifi-libre.com/img/members/676/Screenshot-from-2018-08-12-16-58-09.jpeg
Importante: Si por alguna cuestión, a la hora de lanzar algún comando no os funciona, podéis ir a cada carpeta de cada herramienta, abrís una terminal, escribis primero make
después make install
y comprobáis que os funciona ahora.
-
Tercer paso: Crear el filtro que utilizaremos más adelante, simplemente escribimos:
echo "nuestra mac">filter.txt
para volcar la información al fichero filter. -
Con el siguiente comando lo que estamos haciendo es crear un filtro para que solo nos capture los paquetes de ese punto de acceso en concreto (escribir la mac sin los puntos).
-
Cuarto paso: Capturar el PMKID utilizando el siguiente comando:
hcxdumptool -o hash -i wlan0 --filterlist=filter.txt --filtermode=2
-
Importante: Conectarse a la red para obtener el PMKID, excepto en modo monitor.
-
Parámetros:** -o** crea un archivo con formato pcapng (llamado hash),** -i** indica la interfaz de red a utilizar, –filterlist se utiliza para indicar que vamos a utilizar un filtro, –filtermode es para indicar que use el modo 2 (utilizado para atacar por dirección mac).
https://www.wifi-libre.com/img/members/676/Screenshot-from-2018-08-12-17-32-17.jpeg
-
Quinto paso: Extraer el hash con el siguiente comando:
hcxpcaptool -z hashtocrack hash
- Se crea un archivo de texto llamado hashtocrack con el hash (aclaración)
https://www.wifi-libre.com/img/members/676/Screenshot-from-2018-08-12-17-32-55.jpeg
-
Sexto paso: Visualizar el hash, para ello escribimos:
cat nombredelarchivo
https://www.wifi-libre.com/img/members/676/Screenshot-from-2018-08-12-17-34-31.jpeg
-
El contenido del hash se divide en 5 partes, aunque antes de finalizar el proceso vamos a ver 4.
-
La primera parte contiene el PMKID, la segunda parte contiene la dirección mac de nuestro router, la tercera parte contiene la mac station, la cuarta contiene el essid.
-
Una vez crackeado, veremos una quinta parte, esta será la contraseña.
-
Séptima parte: Proceder a recuperar la contraseña por fuerza bruta utilizando el siguiente comando:
hashcat -m 16800 -a 3 hashtocrack diccionario.txt --force
-
El parámetro m es para indica el tipo de hash que utilizamos, 16800 es el modo hash PMKID.
-
El parámetro a indica que vamos a realizar un ataque por fuerza bruta.
-
El parámetro** w** indica el perfil de trabajo a utilizar, en este caso el 3 es un perfil de rendimiento sintonizado.
-
Existen 3 perfiles, pero no vamos a entrar en detalles, podéis buscar información respecto a los diferentes modos.
https://www.wifi-libre.com/img/members/676/Screenshot-from-2018-08-12-18-42-50.jpeg
- Por último, para visualizar la contraseña, escribimos el mismo comando pero añadiendo el parámetro
--show
https://www.wifi-libre.com/img/members/676/Screenshot-from-2018-08-12-18-43-43.jpeg
Importante: En el caso de no obtener el PMKID de ningún modo, lo más probable es que no sea vulnerable tu modelo de router.
Espero que os sirva de ayuda y lo más importante, entender que función tiene cada parámetro que escribimos. Cualquier duda o corrección, comentarlo