Sto cercando di intercettare il traffico TCP e di alterare i dati nel pacchetto usando un filtro ettercap.
Sono una comunicazione man-in-the-middling e ho impostato il seguente filtro per l'uso 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");
}
Quando invio il messaggio di test, il mitm funziona, visualizzo il messaggio di debug "Message Intercettato" - significa che ha trovato la stringa molto specifica nei dati, ma non riesce a sostituire \ x04 con \ x01 alla fine.
Sono relativamente nuovo ai filtri ettercap quindi qualsiasi aiuto sarebbe molto apprezzato!
EDIT: Alcune informazioni aggiuntive: il MITM che sto tentando implica l'invio di un messaggio al mio host che esegue ettercap e sto utilizzando socat per inoltrarlo all'host originale. Mi chiedo se socat stia trasmettendo il messaggio originale non modificato anche se ettercap lo sta modificando correttamente? Ettercap è in grado di abbandonare completamente i pacchetti, quindi avevo pensato che il pacchetto venisse intercettato da ettercap prima che colpisse socat? Non sono sicuro di come potrei eseguire l'inoltro dei pacchetti senza usare socat dato che ettercap non è in esecuzione sulla stessa subnet della destinazione e quindi non riesce a trovare gli host.
INFORMAZIONI AGGIUNTIVE: Sto cercando di inoltrare il pacchetto all'interno del filtro: ho ucciso socat e ora sto usando:
if (ip.src == '<IP>') {
msg("HIT");
ip.dst = '<IP>';
}
Ottengo il messaggio HIT che indica che sta rilevando il pacchetto dalla destinazione, tuttavia, non è riuscito a cambiare la destinazione.