enviado pacote é diferente do pacote recebido

0

Eu uso soquete bruto para criar pacotes TCP, com foco no número de seqüência e sinalizadores TCP (SYN, ACK)

Eu usei uma máquina S para enviar um pacote ACK tcp (flag ACK está definido como 1) e outra máquina R para recebê-lo estas duas máquinas estão em sub-redes diferentes, todas na minha escola

Enquanto isso, eu usei o tcpdump para capturar os pacotes.

Coisas estranhas acontecem! Na máquina S, o pacote capturado é o esperado, é um pacote ACK no entanto, na máquina receptora R, o pacote se torna um pacote SYN, e o número de sequência é alterado, o seq no é 1 menor o esperado e o ack_seq se torna 0!

o que há de errado com isso? meu palpite é que o roteador / firewall modificou o pacote ACK para um pacote SYN porque ele nunca vê uma troca SYN / ACK SYN à frente do ACK? é possível ou não?

os dois pacotes capturados são:

link link

    
por user138126 17.03.2013 / 23:37

1 resposta

0

Meu palpite é que você tem números de seqüência errados em seu pacote ACK. Assim, o firewall no meio vê o seu pacote ACK com a sequência errada e decide que o SYN-ACK nunca chegou até você, e assim retransmite o pacote SYN original para o servidor para que ele reenvie o SYN-ACK, o qual ele faz.

Se você olhar seu rastreio no Wireshark, ele chegará à mesma conclusão - ele não vê seu ACK como parte da sessão original, mas uma nova sessão usando as mesmas portas.

    
por 18.03.2013 / 23:59