Hexinject orientada a la inyección y captura de paquetes a nivel de código hexadecimal
Hexinject orientada a la inyección y captura de paquetes a nivel de código hexadecimal
Hexinject es una herramienta de análisis de red para Linux orientada a la inyección y captura de paquetes a nivel de código hexadecimal. Permite capturar el tráfico de red en un formato legible en hexadecimal, modificarlo al vuelo o construir paquetes personalizados desde cero para enviarlos a la red.
Key Capabilities / Características principales
Hexdump de paquetes: Transforma el tráfico capturado en datos hexadecimales manipulables.
Inyección de datos: Permite inyectar paquetes formateados directamente en una interfaz de red.
Diseño modular (Pipes): Funciona mediante el principio de tuberías de Unix (
|), lo que facilita combinarlo con otras herramientas comogrep,sed,awk, o scripts en Python.
Componentes principales de Hexinject
La herramienta se compone principalmente de dos utilidades principales:
hexinject: El motor principal de captura e inyección.hexpcap: Útil para leer y convertir archivos.pcap(creados por Wireshark o tcpdump) a formato hexadecimal y viceversa.
Ejemplos prácticos de uso
1. Capturar tráfico en tiempo real (Hexdump)
Para escuchar en una interfaz de red (por ejemplo, eth0) y mostrar el tráfico raw en hexadecimal:
sudo hexinject -i eth0 -r
2. Filtrar y capturar solo cierto tipo de tráfico
Puedes combinar la salida hexadecimal con grep para buscar patrones específicos (por ejemplo, buscar una firma o datos de un protocolo):
sudo hexinject -i eth0 -r | grep --line-buffered "41 41 41"
3. Inyectar paquetes en la red
Para enviar datos hexadecimales formateados a través de la interfaz de red:
echo "4500 003c 1c46 4000 4006 b6ac c0a8 0101 c0a8 0102" | sudo hexinject -i eth0 -p
(Nota: El string en hexadecimal debe representar un paquete válido con sus cabeceras correctas).
4. Modificar paquetes "al vuelo" (MiTM basico)
Gracias a la integración con sed o scripts externos, se pueden alterar paquetes capturados y reenviarlos:
sudo hexinject -i eth0 -r | sed -u 's/41 41 41/42 42 42/g' | sudo hexinject -i eth0 -p
Parámetros más comunes
| Opción | Descripción |
-i <interface> | Especifica la interfaz de red (ej. eth0, wlan0). |
-r | Modo lectura (raw capture). |
-p | Modo inyección (push/inject). |
-c <count> | Número máximo de paquetes a capturar. |
-f <filter> | Aplica un filtro de captura tipo pcap/BPF (ej. "tcp port 80"). |
Esta guía aborda el uso de Hexinject dentro de un entorno de prueba o laboratorio controlado. En un ataque Man-in-the-Middle (MitM), interceptas el tráfico de dos extremos (por ejemplo, mediante ARP Spoofing) y utilizas hexinject en la máquina atacante/interceptora para capturar, modificar en hexadecimal mediante tuberías (|) e reinyectar los paquetes modificados.
Requisitos del laboratorio
Para realizar este laboratorio de forma segura, necesitas un entorno virtualizado (ej. VirtualBox o VMware) con:
Máquina Interceptora: Kali Linux (con
hexinjectydsniffoarpspoofinstalados).Máquina Víctima / Cliente: Por ejemplo, Ubuntu Desktop o Windows.
Servidor / Target: Un servidor local HTTP/FTP simple (sin cifrado HTTPS/TLS, ya que los datos deben ser legibles en texto plano/hexadecimal).
Consideraciones técnicas y limitaciones
Nota sobre Checksums: Al modificar la carga útil (payload) de un paquete IP/TCP en tiempo real sin actualizar los campos de longitud y suma de comprobación (checksum), es muy probable que los firewalls o la pila TCP/IP del destinatario descarten el paquete inyectado por considerarlo corrupto. Para manipulaciones de protocolos modernos complejos, se suelen utilizar herramientas con reconstrucción automática de capas como Scapy o Bettercap.