
Redirecionando tráfego TCP, UDP e ICMP (específico) para outro destino.
StreamDivert é uma ferramenta para fazer man-in-the-middle ou retransmitir conexões de rede de entrada e saída em um sistema. Ela tem a capacidade de, por exemplo, retransmitir todas as conexões SMB de entrada na porta 445 para outro servidor, ou apenas retransmitir conexões SMB de entrada específicas de um conjunto específico de IPs de origem para outro servidor. Resumindo, o StreamDivert é capaz de:
Binários pré-compilados para o StreamDivert podem ser baixados aqui.
Como usar o StreamDivert? Execute a ferramenta com privilégios administrativos:
streamdivert.exe config_file [-f] [-v]
O arquivo de configuração contém entradas para fluxos que você deseja desviar. Um exemplo de arquivo de configuração:
//Desvia todas as conexões TCP de entrada para a porta 445 (SMB) vindas de 10.0.1.50 para 10.0.1.49 porta 445
tcp < 445 10.0.1.50 -> 10.0.1.49 445
//Desvia todas as conexões TCP de entrada para a porta 445 (SMB) vindas de 10.0.1.51 para um servidor SOCKS local
tcp < 445 10.0.1.51 -> socks
//Desvia todas as conexões TCP de entrada para a porta 445 (SMB) vindas de fe80::f477:846a:775d:d37 para fe80::20c:29ff:fe6f:88ff porta 445
tcp < 445 fe80::f477:846a:775d:d37 -> fe80::20c:29ff:fe6f:88ff 445
//Desvia todas as conexões TCP de entrada para a porta 445 (SMB) para 10.0.1.48 porta 445
tcp < 445 0.0.0.0 -> 10.0.1.48 445
//Desvia todas as conexões UDP de entrada para a porta 53 (DNS) para 10.0.1.49 porta 53
udp < 53 0.0.0.0 -> 10.0.1.49 53
//Desvia todos os pacotes ICMP de entrada vindos de 10.0.1.50 para 10.0.1.49
icmp < 10.0.1.50 -> 10.0.1.49
//Desvia todas as conexões TCP de saída para 10.0.1.50, porta 80 para 10.0.1.49 porta 8080
tcp > 10.0.1.50 80 -> 10.0.1.49 8080
//Envia todos os pacotes destinados a 10.0.1.50 porta 80 e prefere a interface 9 para enviá-los. Se a interface não existir ou não estiver ativa, os pacotes são enviados pela interface padrão.
tcp > 10.0.1.50 80 -> 10.0.1.50 80 interface 9
//Força todos os pacotes destinados a 10.0.1.50 porta 80 pela interface 9, ou descarta os pacotes se a interface não existir ou não estiver ativa.
tcp > 10.0.1.50 80 -> 10.0.1.50 80 force interface 9
//Desvia todas as conexões UDP de saída para a porta 53 (DNS) para 10.0.1.49 porta 53
udp > 0.0.0.0 53 -> 10.0.1.49 53
A flag [-f], quando presente, modificará o Firewall do Windows para adicionar uma exceção para o aplicativo redirecionar corretamente o tráfego de entrada para outra porta. A flag [-v] controla a verbosidade do registro. Quando fornecida, o StreamDivert registrará detalhes sobre pacotes e fluxos redirecionados.
Uma coisa a ter em mente ao configurar conexões desviadas é que você não tenha fluxos desviados conflitantes. Dado o seguinte arquivo de configuração de exemplo:
icmp < 0.0.0.0 -> 10.0.1.50
icmp > 10.0.1.49 -> 10.0.1.48
Esses dois fluxos desviados entrarão em conflito um com o outro, pois os pacotes do primeiro fluxo desviado também serão capturados pelo segundo 'desviador' de pacotes. Geralmente, você só encontrará esses problemas com UDP e ICMP e usando curingas.
Observe também que desviar um IPv4 para um endereço IPv6 e vice-versa não é suportado para tráfego UDP e ICMP.
Funcionalidades desejadas: