Como altero o endereço de origem de um pacote tcp?

1

É possível alterar o endereço de origem de qualquer pacote TCP? Estou ciente do fato de que não receberei esses pacotes se eu alterar o endereço, só preciso fazer uma solicitação no servidor. Como isso é possível?

    
por Cyclops 29.05.2013 / 09:07

1 resposta

4

Você pode alterar o endereço de origem de qualquer pacote IP. Isso é chamado de "spoofing".

No entanto, para TCP, isso não ajudará: o TCP não é um protocolo orientado por datagrama, mas um protocolo orientado por fluxo. Na prática, isso significa que ele é projetado para simular um canal de comunicação orientado por fluxo usando pacotes discretos de forma transparente. Para fazer isso, ele irá reagrupar os pacotes juntos para formar um fluxo, mas também possui um mecanismo interno para recupe- ração de perda de pacotes e chegada incorreta de pacotes. Também possui mecanismo para lidar com o gerenciamento de status de conexão.

Tudo isso significa que, antes que você possa enviar "um pedido" a um servidor TCP, você primeiro estabelecerá e exigirá que o cliente e o servidor executem um handshake de três vias: uma negociação entre o cliente e o servidor que garante que ambas as extremidades da conexão concordam em abrir a conexão. Durante essa negociação, o cliente e o servidor escolherão um número de seqüência aleatório que deve ser usado pelo outro par.

Esse número é aumentado em um para cada pacote enviado por uma extremidade da conexão e usado para verificar se os pacotes foram descartados ou recebidos na ordem incorreta.

Como você não obterá a resposta para o primeiro pacote SYN (o primeiro pacote em um handshake TCP) e desde que você precise saber o número de sequência contido na resposta antes de poder finalizar a conexão e começar a enviar dados, você não pode simplesmente falsificar o IP de origem em uma conexão TCP.

Agora, se você estiver em algum lugar no caminho entre o servidor e o cliente falsificado, poderá endurecer a resposta (mesmo que isso não seja para você), finalizar a conexão usando o número de sequência adequado e enviar sua solicitação (Você pode até mesmo ler a resposta. Isso, no entanto, exigirá que você esteja conectado a um dos segmentos entre o cliente e o servidor falsificado e seja capaz de ler esses pacotes enquanto eles passam pelo segmento. Essa condição é muito difícil alcançar na prática fora do segmento final e mesmo assim você precisa usar um hardware especial (um switch que pode usar uma porta como uma porta de "monitoramento") ou usar o envenenamento de ARP no switch. Não é realmente trivial e ainda permitirá que você apenas para falsificar uma máquina em seu segmento local.

    
por 29.05.2013 / 09:57