Autor Tema: script william.sh - para evitar falsos negativos en Hashcat/aircrack  (Leído 1980 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Lucio-Argario

  • Visitante
Hola, me llamo Lucio, y aunque llevo algún tiempo aprendiendo sobre seguridad inalámbrica, usando la maravillosa wifislax y gracias a este foro y a los maestros que hay en él, a los que siempre estaré enormemente agradecido, me acabo de registrar para compartir un asunto que me ha tenido entretenido todo el día de hoy: los handshakes malformados y los falsos negativos que arrojan en Hashcat/aircrack-ng (y que alguna vez me ha pasado con los scripts incluidos en wifislax, por eso lo pongo en esta sección del foro)

(todo lo que voy a contar ahora se ha llevado a cabo en mi laboratorio usando mis propios dispositivos, como routers, APs, móviles, portátiles, etc... y mis propias redes wifis con contraseñas establecidas por mi, y no es sólo por cumplir las normas del foro, es que en realidad ha sido así)

Objetivo: averiguar por fuerza bruta la contraseña de una red wifi que NO tenemos a nuestro alcance, usando un cliente que SÍ tenemos a nuestro alcance y que sabemos que se ha conectado a ella. Necesitaremos capturar un half-handshake (los mensajes 1/4 y 2/4 de un handshake completo) y con ésto ya podremos pasar un diccionario para intentar averiguar la contraseña.

Escenario: Punto de acceso falso con airbase imitando la wifi objetivo, y cliente que se conecta automáticamente a nuestro AP falso creyendo que es el real.

Problema: las capturas que hacemos de dicha conexión nos arrojan muchos mensajes 1/4 y 2/4 repetidos y desordenados (lo podemos ver en wireshark con el filtro eapol, para los novatos como yo que lean ésto), sin poder establecer a priori qué 1/4 corresponde con cada 2/4 de entre los capturados (algo a lo que llamaremos captura de handshakes "ruidosa"). El algoritmo de wpaclean, programa usado para limpiar esa captura ruidosa, coge el primer 2/4 y 1/4 inmediatamente anterior a él que encuentra en la captura y supone que son del mismo intento de conexión, pero en este escenario concreto y bastante común, es muy probable que esos dos mensajes no pertenezcan al mismo intento de conexión, debido a que hay muchos duplicados y paquetes fuera de tiempo, por lo que, al no tener relación entre ellos, ese half-handshake no es válido y arrojará un falso negativo después del crackeo (pueden ser horas o días de tarjetas gráficas al 100 % pasando diccionarios que quizás SI que contienen la contraseña válida, con el consecuente gasto enorme de tiempo y energía, y quedando nosotros pensando que la pass no estaba en el diccionario)

Solución: después de buscar varias horas por la red sobre el asunto encontré un script llamado william.sh usado para extraer un handshake válido de capturas ruidosas, y que por defecto se comporta igual que wpaclean, pero usando los argumentos tiene la posibilidad de extraer el half-handshake usando el 1/4 y 2/4 que nosotros elijamos de entre todos los que hay en la captura, o elegir el primero y el último, o viceversa, o la que más me gusta a mí, extraer todos los posibles half-handshake que hay en esa captura combinando cada 2/4 con todos los 1/4 anteriores. De esa forma, si hay por ejemplo 12 mensajes 1/4 antes del 2/4 que nosotros elegimos, nos construirá los 12 posibles half-handshakes que existen entre el 2/4 que hemos elegido y cada uno de esos 1/4 que hay antes, eliminando duplicados. Y de entre esos 12 (o menos si eliminamos los duplicados) SEGURO que se encuentra al menos uno válido. Es más, haciendo pruebas estoy comprobando que el half-handshake generado entre el primer 1/4 y el primer 2/4 que captura airbase suele ser el válido, y además el generado por el último 1/4 y el último 2/4 de la captura, también lo suele ser, por lo que las opciones se reducen a probar sólo con un handshake.

Resultado: antes ningún half-handshake obtenido con airbase (opción -F o con airodump, da igual) y limpiado con wpaclean me valía para fuerza bruta porque todos dan falsos negativos. Desde que extraigo correctamente el handshake con william.sh, ya tengo positivos en todas las capturas hechas con AP falso (sabiendo que la pass está en el diccionario)

Página web de william.sh -> http://www.exploresecurity.com/william-wpawpa2-4-way-handshake-extraction-script/

Y ahora viene la pregunta a los expertos: sabíais que existía este script? tenéis algún otro modo aparte de wpaclean de limpiar las capturas con AP falso y que dé handshakes válidos siempre? hay alguna forma de capturar con AP falso que no dé capturas tan ruidosas?

Espero que mi granito de arena le sea útil a alguien.

Edit: Lo he modificado para que funcione con versiones actuales de Tshark. Probado en kali rolling en una raspy 2. Aquí se puede descargar:
https://mega.nz/#!kNhSlbLQ!JoDK0WrnKb2nKsqxmOovf1KenKTxtgjQxgQFWaVZrn4


« Última modificación: 24-03-2016, 20:32 (Jueves) por Lucio-Argario »

v1s1t0r

  • Visitante
Re: script william.sh - para evitar falsos negativos en Hashcat/aircrack
« Respuesta #1 en: 22-03-2016, 01:04 (Martes) »
No conocía el script. Solo el wpaclean.

Muy interesante. Gracias por compartir. Saludos.

Lucio-Argario

  • Visitante
Re: script william.sh - para evitar falsos negativos en Hashcat/aircrack
« Respuesta #2 en: 24-03-2016, 20:28 (Jueves) »
El script william.sh no me funcionaba en mi raspy, por lo que le he hecho modificaciones para actualizarlo y que funcione. Se ha quedado funcionando con kali rolling release y tshark 2.0. Lo subo y edito el principal.