Estoy intentando interceptar el tráfico TCP y alterar los datos en el paquete usando un filtro ettercap.
Soy un hombre de comunicación intermedio y he configurado el siguiente filtro para usar con ettercap:
if (search(DATA.data, "\x32\x30\x00\x00\x00\x04")) {
msg("Message intercepted\n");
replace("\x32\x30\x00\x00\x00\x04", "\x32\x30\x00\x00\x00\x01");
}
Cuando envío el mensaje de prueba, el mitm funciona, aparece el mensaje emergente de "Mensaje Interceptado", lo que significa que ha encontrado una cadena muy específica en los datos, pero no puede reemplazar el \ x04 con \ x01 al final.
Soy relativamente nuevo en los filtros ettercap, ¡por lo que cualquier ayuda sería muy apreciada!
EDITAR: Alguna información adicional: el MITM que estoy intentando implica enviar un mensaje a mi host ejecutando ettercap, y estoy usando socat para reenviarlo al host original. Me pregunto si socat está enviando el mensaje original sin editar aunque ettercap lo está editando correctamente. Sin embargo, Ettercap es capaz de eliminar paquetes por completo, ¿así que pensé que ettercap estaba interceptando el paquete antes de que llegara a ser socat? No estoy seguro de cómo podría realizar el reenvío de paquetes sin usar socat, ya que ettercap no se ejecuta en la misma subred que el objetivo y, por lo tanto, no encuentra hosts.
INFORMACIÓN ADICIONAL: Estoy intentando reenviar el paquete dentro del filtro. Maté a socat y ahora estoy usando:
if (ip.src == '<IP>') {
msg("HIT");
ip.dst = '<IP>';
}
Recibo el mensaje HIT que significa que está detectando el paquete desde el destino, sin embargo, no está cambiando exitosamente el destino.