Netsed: Edición de Tráfico de Red
Netsed: Edición de Tráfico de Red
Netsed (Network Stream Editor) es básicamente el "sed" pero para el tráfico de red. Es increíblemente útil cuando necesitas alterar paquetes sobre la marcha sin tener que reprogramar toda una aplicación.
Aquí tienes una guía rápida y directa en español para que le saques provecho en Kali Linux.
¿Qué es Netsed?
Es una utilidad que intercepta paquetes de red y permite realizar búsquedas y sustituciones de texto o valores hexadecimales en el flujo de datos. Funciona principalmente con protocolos TCP y UDP.
Escenarios comunes:
Cambiar una IP o un puerto dentro de un paquete.
Modificar una versión de software que se anuncia en un "banner" (fuzzing básico).
Saltarse restricciones simples de cliente-servidor modificando valores booleanos.
Cómo usarlo en Kali
La sintaxis básica es:
netsed [protocolo] [IP_local] [puerto_local] [IP_remota] [puerto_remoto] "[regla_de_cambio]"
1. Ejemplo básico (Redirección con cambio de texto)
Imagina que quieres que todo lo que pase por tu puerto 8080 hacia un servidor web cambie la palabra "Hola" por "Adios":
netsed tcp 8080 192.168.1.50 80 "s/Hola/Adios/g"
tcp: El protocolo.
8080: El puerto donde
netsedescucha en tu máquina.192.168.1.50: La IP del servidor real.
80: El puerto del servidor real.
"s/Hola/Adios/g": La regla (sustituir Hola por Adios de forma global).
2. Trabajando con Hexadecimal
Si necesitas cambiar bytes específicos (muy común en análisis de malware o protocolos binarios), usa el prefijo %:
netsed tcp 8888 10.0.0.5 8888 "s/%01%02/%03%04/g"
Aquí cambiaría los bytes 01 02 por 03 04.
Consideraciones importantes
Intercepción: Netsed actúa como un "proxy". Para que funcione, debes configurar tu cliente (navegador, script, etc.) para que apunte a la IP de tu Kali y al puerto donde Netsed está escuchando, no directamente al servidor final.
Límites: Ten en cuenta que si cambias la longitud de una cadena (por ejemplo, cambiar "luz" por "brillante"), podrías romper el protocolo si este depende de offsets fijos o tamaños de paquete declarados en la cabecera.
Reglas múltiples: Puedes cargar un archivo con muchas reglas usando el parámetro
-f.
¿Cómo ver las reglas activas?
Simplemente ejecuta netsed sin parámetros para ver la ayuda, o usa -v para el modo "verbose" y ver qué está pasando con los paquetes en tiempo real.
Vamos a ensuciarnos las manos con algo más concreto.
Para poder darte la regla exacta, necesito que pienses en qué estás intentando interceptar. Dependiendo del protocolo, la estrategia cambia. Aquí te doy tres ejemplos de reglas del "mundo real" que podrías usar ahora mismo:
1. Engañar a un servidor web (User-Agent)
Si quieres que tu navegador le diga al servidor que eres un iPhone (o cualquier otra cosa) de forma automática:
netsed tcp 8080 1.2.3.4 80 "s/Mozilla/iPhone/g"
Uso: Configuras el proxy de tu navegador a
localhost:8080y Netsed cambiará la firma del navegador antes de que llegue al servidor1.2.3.4.
2. Modificar una respuesta de base de datos (MySQL)
Imagina que quieres interceptar una consulta que devuelve un "0" (falso) y forzarla a un "1" (verdadero) a nivel de red:
netsed tcp 3306 10.0.0.5 3306 "s/%00%00%00%01/%00%00%00%02/g"
Nota: Aquí usamos hexadecimal porque los protocolos de bases de datos son binarios y los cambios de texto simple suelen fallar.
3. "Deface" preventivo en HTTP
Si quieres que cualquier página que pases por tu proxy cambie el título de la pestaña:
netsed tcp 8080 servidor_victima.com 80 "s/<title>/<title>HACKED/g"
Qué necesito que me digas para ayudarte mejor:
Para escribirte la línea de comando exacta, por favor dime:
¿Qué protocolo es? (HTTP, FTP, SSH, un juego, un chat...)
¿Qué quieres cambiar? (Ejemplo: "Quiero cambiar el nombre de usuario 'admin' por 'root'").
¿Conoces las IPs? (Si no, usamos
0.0.0.0para que escuche en todas).