TCP \ IP Packet Signature - como identificar esses pacotes de dados?

1

Eu conheço um programa que pode "esculpir" (procurar) pacotes TCP IP a partir de dados binários brutos. Os resultados apresentados são os endereços MAC de origem e destino, os endereços IP de origem e destino e alguns outros bits e peças (números de porta, etc.).

Estou curioso para saber que bits de dados agem como um sinalizador de assinatura para identificar tais dados em meio a uma massa de outros dados binários? O exemplo abaixo é um dos meus próprios pacotes IP de um teste. Primeiros 6 bytes = Endereço MAC de destino. Próximas 6 bytes, endereço MAC de origem. 0800 é algum tipo de marcador que agora esqueço. 45 AB F7 25 é um endereço IP, C0 A8 6F A0 um dos meus endereços IP internos etc.

Mas não há nada antes ou depois dele para dizer "Ei - isto é dados TCP IP". E existem centenas de outros exemplos semelhantes. Então, como o software o encontrou e os outros quando os dados iniciais são simplesmente um endereço MAC - não é algo que você pode codificar facilmente um programa para procurar (que é o que eu mesmo quero fazer)?

Alguma ideia?

Offset       0  1  2  3  4  5  6  7   8  9 10 11 12 13 14 15

000000000   00 0C 29 31 24 41 00 50  56 ED A5 46 08 00 45 00     )1$A PVí¥F  E 
000000016   00 28 C0 A8 00 00 80 06  0D 0E 45 AB F7 25 C0 A8    (À¨  €   E«÷%À¨
000000032   6F A0 01 BB 06 AF 7C 3E  0B 51 35 87 6B 87 50 10   o  » ¯|> Q5‡k‡P 
000000048   FA F0 16 C2 00 00 00 00  00 00 00 00 00 00 00 00   úð Â            
000000064   FD 0C AC 83 FB 0A B0 41  B3 B3 F8 71 88 1F 4C 8C   ý ¬ƒû °A³³øqˆ LŒ
    
por Gizmo_the_Great 03.04.2013 / 23:50

2 respostas

1

Minha sugestão, baixe e capture alguns dados com o Wireshark. Certifique-se de ter ativado a lista de pacotes, detalhes de pacote e opções de visualização de bytes de pacote e clique em pacotes. na seção de detalhes do pacote, você pode clicar nas seções L2, L3 e L4 do pacote e ele destacará os bytes que se correlacionam com o que você selecionou.

Em seguida, comece fazendo algumas pesquisas on-line para aprender sobre cabeçalhos / encapsulamento de ethernet, cabeçalhos de IP, cabeçalhos TCP e similares. Wikipedia é muitas vezes um bom ponto de partida para tópicos como este, mas existem centenas de recursos online. Eu fiz uma pesquisa rápida procurando por uma imagem que representa como o frame ethernet é construído em última instância e encontrei este que é muito bom: link

Não leu o conteúdo, mas entre recursos como esse e começando a tocar com as partes do quadro em uma ferramenta como o Wireshark, você verá que há uma estrutura definida para os dados binários e torna-se bastante fácil dizer aparte.

    
por 04.04.2013 / 00:43
0

Os bytes 13,14,15 são os marcadores IPv4 ou IPv6. Na captura de tela fornecida, é 00 45 00, então você tem um pacote IPv4.

Para o pacote IPv4, você observa o 23º byte. É 06, então você tem pacote TCP. Se é 11, você tem um pacote UDP.

Para o pacote IPv6, é o 20º byte.

    
por 21.11.2014 / 09:42