tcpdump: Exibir apenas a seção de dados

2

Estou tentando processar alguns arquivos pcap. Meus pcaps possuem um handshake tcp padrão para conexão e fechamento, e um ou mais pacotes interessantes enviados enquanto a conexão está aberta.

Eu preciso extrair apenas a parte de dados dos pacotes para que eu possa usar o hex como entrada para outro programa. Eu uso tcpreplay para jogar meu pcap no loopback

tcpreplay --intf1=lo some.pcap

Usar tcpdump parece não funcionar

tcpdump -x -i lo

exibe os dados em hexadecimal, algo como

0x0000:  4500 003a 0300 0000 4006 79bc 7f00 0001
0x0010:  7f00 0001 a7be 4e20 0000 0002 0000 0002
0x0020:  5018 8000 b9b7 0000 ffff ffff ffff ffff

Eu realmente gostaria de cortar todo o cabeçalho IP / TCP e deixar apenas

ffff ffff ffff ffff

(Neste exemplo, imagine os 8 bytes são para um protocolo F tal que os primeiros 3 bytes são o cabeçalho para F e os últimos 5 bytes são os dados para F. Eu quero processar F eu mesmo em outro programa, então Vou me referir a todos de F como "os dados". Isso cria um problema quando eu uso tshark .

Eu não quero usar nada como strings ou cut , que confia no meu próprio conhecimento de quanto tempo o cabeçalho tcp será porque 1) os dados são hexadecimais, então não tem uma boa forma de usar strings ou uma ferramenta semelhante em e 2) alguns dos cabeçalhos tcp têm opções e, portanto, o comprimento é variável e o comprimento dos dados é variável, portanto cut ou uma ferramenta semelhante não é boa.

Eu também tentei tshark com

tshark -r some.pcap -Tfields -e data

que não exibe nada e

tshark -r some.pcap -x

que exibe

Frame (72 bytes):
0000  06 05 04 03 02 01 01 02 03 04 05 06 08 00 45 00   ..............E.
0010  00 3a 03 00 00 00 40 06 79 bc 7f 00 00 01 7f 00   .:[email protected].......
0020  00 01 a7 be 4e 20 00 00 00 02 00 00 00 02 50 18   ....N ........P.
0030  80 00 b9 b7 00 00 ff ff ff                        .........
Application Layer message (5 bytes):
0000  ff ff ff ff ff

Então, o wireshark reconhece o protocolo mais interno e está "ajudando" a dividir o cabeçalho e os dados para mim ... Exceto que quero que o cabeçalho e os dados juntos sejam processados por conta própria.

Estou completamente perdido em como posso despir cabeçalhos Ether / IP / TCP e deixar apenas os dados desejados.

    
por xenakaaii 17.11.2016 / 08:56

0 respostas