WiFiBroot: Una herramienta para automatizar la captura y el crack de los handhsa

Iniciado por El_Andaluz, 12 Octubre 2018, 05:07 AM

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

El_Andaluz



He leído en unos temas relacionados con el crack de PMKID WPA, aquí y en otros sitios, algunos mensajes que hacían referencia a WiFiBroot.
Se trata de un script en python empezado el 30 de julio.
La meta inicial era crear un script dedicado a la captura y al crack de handhsakes.
 Se puede decir que su autor ha tenido suerte: El 4 de agosto sale a la luz la vulnerabilidad "PMKID" que revoluciona por completo el genero.
 ¡Ya ni hace falta un cliente conectado para poder lanzar un ataque por diccionario!
 Nos basta con mandar una llave cualquiera al PA para obtener la PMKID . Para más información sobre el crack de PMKID: Revolución en el crack WPA: Ataque por diccionario contra PMKID
 El proyecto ha naturalmente evolucionado para integrar al novedoso ataque contra PMKID

Instalación

 Hay que destacar, porque tiene merito, que WiFibroot es una herramienta completa escrita "from the scratch" en python.
¡No depende de ninguna herramienta externa!
 Qué sea para capturar trafico, des-autenticar para capturar handshake, autenticar para obtener la PMKID y crackear a ambos por diccionario.
WiFiBroot lo hace todo sólito, tirando principalmente de scapy    
 Voy a dar los pasos a seguir para poder probar  WiFiBroot en Kali Linux.

- dependencias
:
 * Scapy está instalado por defecto. Si no fuese el caso:

sudo apt install scapy-python

* Las únicas dependencias que faltarán son las librerías para el crack WPA. Se instalan con:

sudo apt install python-pbkdf2

En Ubuntu, linux Mint y otras distribuciones "estables"  basadas en debian tendréis que instalar scapy por pip en lugar de los repositorios. Esto es porque el script trabaja solo con versiones de scapy superiores a 4.2.0  

sudo apt install python-pip

sudo pip install scapy

Notad también que el script no funciona con python 3 y versiones superiores: No sirve de nada instalar python3-scapy o python3-pbfk2

- wifibroot

 * Se descarga desde github

git clone https://github.com/hash3liZer/WiFiBroot.git

* Entrar en el directorio que acabas de descargar

cd WiFiBroot

* Hay que ejecutar el script con derechos de administrador.

sudo python wifibroot.py <opciones>

Pero lo primero que hay que hacer es mirar la ayuda para ver las opciones...

python wifibroot.py -h




Crack PMKID con WiFiBroot

Como podéis ver en la imagen justo arriba hay tres modos disponibles:

modo 1: Captura y crack handshake

Modo 2: Captura y crack PMKID

Modo 3: Crack offline PMKID o handshake

Para ver la ayuda sobre el modo que nos interesa ahora añadimos -m 2 al argumento -h

python wifibroot.py -h -m2

Mode:
  02      Captures and Crack PMKID (PMKID Attack)       1

Options:
  Args               Description                      Required
  -h, --help         Show this help manual              NO
  -i, --interface    Monitor Interface to use           YES
  -v, --verbose      Verbose Mode. Detail help          NO
  -d, --dictionary   Dictionary for Cracking            YES
  -w, --write        Write Captured handshake to
                     a seperate file                    NO

Filters:
  -e, --essid         ESSID of listening network
  -b, --bssid         BSSID of target network.
  -c, --channel       Channel interface should be listening
                      on. Default: ALL


La primera vez no he entendido muy bien como se usaba por ver las opciones -e y -b.
Pensé que el scan se debía hacer con otra herramienta y no es así.  

Tenemos a dos opciones mandatarias:
    -i para la interfaz
    -d para el diccionario
Es un poco raro de tener que entrar el diccionario antes de escanear y esto también da a pensar que el escaneo se debe hacer por otro lado.

Hay un pequeño diccionario incluido, list.txt, lo podemos usar, está a mano en el directorio "dicts" que tenemos al lado del script.

Añado mi contraseña al final del diccionario para hacer la prueba.

Hay que activar el modo monitor con airmon-ng antes de ejecutar el script porque no se encarga de ello.

 Ejecuto entonces el script con la sintaxis mínima

sudo python wifibroot.py -m2 -i wlan0mon -d /dicts/list.txt


Se lanza un escaneo con una salida sencilla que paramos cuando queremos con < Ctrl + C >

 Os aconsejo parar el escaneo  cuando aparece vuestro objetivo porque tiene un bug y fracasa con un error feo:



Si maximizáis la consola aguantará algo  más.

Cuando paréis el escaneo se presenta la lista de routers detectados y entráis el número que corresponde al vuestro:


Se lanza el ataque para obtener el primer way del handshake y pillar la PMKID



El proceso es algo lento comparado a otros pero todo muy correcto. smile
He tardado en media 30 segundos para sacar la PMKID de mi Punto de Acceso y no ha fallado.

Y todo se hace en modo monitor: Conectar al PA y esnifar el trafico.
 Esto es una característica muy interesante   ya que permite mantener todo nuestro "flow" de trabajo sin pasar de un modo a otro según que buscamos un handsahake o una PMKID

 Se lanza enseguida el ataque por diccionario:


¡Victoria!

Hay que decir que no conviene para otra cosa que crackear un pequeño diccionario porque es muy lento, podéis leer cada contraseña distintamente mientras se van crackeando.

 Pero, y está ahí el truco, tenemos la opción de "guardar capturas" (-w ) para crackear con un programa más eficiente y una lista más larga.

 Y el autor ha tenido la buena idea de hacer un log automático con la pmkid lista para usar en jhon o hashcat.


Si a primera vista el script puede parecer un poco cerrado por obligar a indicar un diccionario, vemos que no es un problema y que lo podemos usar para capturar PMKID al canto y crackearlas con otro programa.

Podemos indicar una lista de una sola palabra para ir mas rápido.  

modo 3: Crack offline PMKID o handshake

Las opciones tal cuál:

Mode:
  03    Perform Manaul cracking on available capture
        types. See --list-types                         3

Options:
  Args               Description                      Required
  -h, --help         Show this help manual              NO
      --list-types   List available cracking types      NO
      --type         Type of capture to crack           YES
  -v, --verbose      Verbose Mode. Detail help          NO
  -d, --dictionary   Dictionary for Cracking            YES
  -e, --essid        ESSID of target network.
                     Only for HANDSHAKE Type            YES
  -r, --read         Captured file to crack             YES



Voy a crackear otra vez mi PMKID así que escribiré --type pmkid visto que type es un argumento mandatario.
Y para crack PMKID me queda por indicar el diccionario (opción -d) y usar la opción  -r (fichero de captura)


time  python wifibroot.py -m3  --type pmkid logpmkid -d dicts/list.txt -r captura


El fichero de captura no es nada más ni menos que el hash tal y como se hace para hashcat o jhon.

 La velocidad... Es lo que hay.

Un poco más de diez segundo para pasar un diccionario de 40 contraseñas. Es para pruebas rápidas con diccionario sencillos.
 No he probado el crack por handshake... PMKID or die! big_smile La  velcodiad será la misma: No esperad resultados diferentes.

 Para concluir este primer post lo primero que se debe hacer es destacar que se trata de un programa 100% Do It Yourself.

Es admirable haber programado "from the scratch" un programa que hace todo el proceso: escaneo, asociación, conexión, desautenticación y crack.
Todo enteramente programado desde cero...
   
 No me ha resultado muy intuitivo los cincos primeros segundos pero se entiende enseguida su modo de funcionamiento "todo en uno" y es muy practico.
 La velocidad de crackeo no lo hace apto para diccionarios largos pero no es ningún tipo de problema: Podemos guardar la captura con la opción -w y tendemos un fichero "hash" listo para uso en hashcat o jhon the Ripper.  

 Una herramienta original y muy recomendable.


El Autor de este post es kcdtv



Os vengo a compartir con vosotros esta herramienta a ver que os parece. ;)



Aunque me acabo de fijar en una cosa en la versión del Wifislax en las live de testeo por lo que se ya viene incluida pero bueno aquí viene bien explicado por su autor.

Citar28/09/2018
01 - Actualizado kernel 4.14.71 --> 4.14.72
02 - Incluido wifibroot-1.3



Mister12

Algun sistema para pentesting en la actualidad que traiga incorporado wifibroot ?
From some where at the other side of the universe