
Reindirizzare (specifico) traffico TCP, UDP e ICMP verso un'altra destinazione.
StreamDivert è uno strumento per intercettare o instradare le connessioni di rete in entrata e in uscita su un sistema. Ha la capacità, ad esempio, di inoltrare tutte le connessioni SMB in entrata sulla porta 445 verso un altro server, o di inoltrare solo specifiche connessioni SMB in entrata da un determinato insieme di IP sorgente verso un altro server. In sintesi, StreamDivert è in grado di:
I binari precompilati per StreamDivert possono essere scaricati qui.
Come si utilizza StreamDivert? Esegui lo strumento con privilegi amministrativi:
streamdivert.exe config_file [-f] [-v]
Il file di configurazione contiene voci per i flussi che si desidera deviare. Ecco un esempio di file di configurazione:
//Divert all inbound TCP connections to port 445 (SMB) coming from 10.0.1.50 to 10.0.1.49 port 445
tcp < 445 10.0.1.50 -> 10.0.1.49 445
//Divert all inbound TCP connections to port 445 (SMB) coming from 10.0.1.51 to a local SOCKS server
tcp < 445 10.0.1.51 -> socks
//Divert all inbound TCP connections to port 445 (SMB) coming from fe80::f477:846a:775d:d37 to fe80::20c:29ff:fe6f:88ff port 445
tcp < 445 fe80::f477:846a:775d:d37 -> fe80::20c:29ff:fe6f:88ff 445
//Divert all inbound TCP connections to port 445 (SMB) to 10.0.1.48 port 445
tcp < 445 0.0.0.0 -> 10.0.1.48 445
//Divert all inbound UDP connections to to port 53 (DNS) to 10.0.1.49 port 53
udp < 53 0.0.0.0 -> 10.0.1.49 53
//Divert all inbound ICMP packets coming from 10.0.1.50 to 10.0.1.49
icmp < 10.0.1.50 -> 10.0.1.49
//Divert all outbound TCP connections to 10.0.1.50, port 80 to 10.0.1.49 port 8080
tcp > 10.0.1.50 80 -> 10.0.1.49 8080
//Send all packets going to 10.0.1.50 port 80 and prefer interface 9 to send them. If the interface does not exist or is not up, the packets are send from the default interface.
tcp > 10.0.1.50 80 -> 10.0.1.50 80 interface 9
//Force all packets going to 10.0.1.50 port 80 over interface 9, or drop the packets if the interface does not exist or is not up.
tcp > 10.0.1.50 80 -> 10.0.1.50 80 force interface 9
//Divert all outbound UDP connection to port 53 (DNS) to 10.0.1.49 port 53
udp > 0.0.0.0 53 -> 10.0.1.49 53
Il flag [-f], se presente, modificherà il firewall di Windows per aggiungere un'eccezione per l'applicazione in modo da reindirizzare correttamente il traffico in entrata verso un'altra porta.
Il flag [-v] controlla la verbosità dei log. Se fornito, StreamDivert registrerà i dettagli sui pacchetti e sui flussi reindirizzati.
Una cosa da tenere a mente quando si configurano connessioni deviate è di non creare flussi deviati in conflitto tra loro. Dato il seguente file di configurazione di esempio:
icmp < 0.0.0.0 -> 10.0.1.50
icmp > 10.0.1.49 -> 10.0.1.48
Questi due flussi deviati entreranno in conflitto tra loro, poiché i pacchetti del primo flusso deviato verranno intercettati anche dal secondo "diverter" di pacchetti. In generale, questo problema si presenta solo con UDP e ICMP e utilizzando caratteri jolly.
Nota anche che non è supportato deviare un indirizzo IPv4 verso un indirizzo IPv6 e viceversa per il traffico UDP e ICMP.
Funzionalità desiderate: