Introdução
Neste laboratório, você aprenderá a analisar pacotes de rede usando a ferramenta de linha de comando tshark do Wireshark com saída hexadecimal. Você praticará a leitura de arquivos de captura de pacotes (capture.pcap) usando a flag -r e exibindo dados brutos de pacotes em formato hexadecimal com -x.
Os exercícios irão guiá-lo através da execução de comandos tshark, interpretando resumos de pacotes e examinando dumps hexadecimais. Você analisará um exemplo de handshake TCP para entender como essa técnica auxilia na solução de problemas de rede e investigações de segurança.
Ler Arquivo com -r capture.pcap
Nesta etapa, você aprenderá a ler um arquivo de captura de pacotes usando a ferramenta de linha de comando tshark do Wireshark com a opção -r. Esta é a maneira fundamental de analisar dados de tráfego de rede pré-capturados.
Antes de começarmos, é importante entender que os arquivos PCAP contêm dados brutos de tráfego de rede capturados de uma interface de rede. A flag -r permite que você especifique um arquivo de captura de pacotes para ler, o que é muito parecido com abrir um documento com um editor de texto. Usaremos um arquivo de exemplo chamado capture.pcap localizado no seu diretório ~/project.
- Primeiro, certifique-se de estar no diretório correto. Isso é crucial porque o
tsharkprecisa saber onde encontrar o arquivo de captura:
cd ~/project
- Agora, use
tsharkpara ler o arquivo de captura. O comando básico sem nenhum filtro mostrará todos os pacotes no arquivo:
tshark -r capture.pcap
Este comando exibirá informações básicas sobre cada pacote no arquivo de captura, incluindo:
- Número do pacote (mostrando a ordem da captura)
- Timestamp (quando o pacote foi capturado)
- Endereços IP de origem e destino (quem enviou e recebeu o pacote)
- Protocolo (que tipo de comunicação de rede é esta)
- Comprimento do pacote (quão grande é o pacote)
- Informações básicas do protocolo (detalhes específicos de cada protocolo)
Exemplo de saída (sua saída real pode variar):
1 0.000000 192.168.1.1 → 192.168.1.2 TCP 66 443 → 49234 [SYN] Seq=0 Win=64240 Len=0
2 0.000123 192.168.1.2 → 192.168.1.1 TCP 66 49234 → 443 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0
3 0.000234 192.168.1.1 → 192.168.1.2 TCP 54 443 → 49234 [ACK] Seq=1 Ack=1 Win=64240 Len=0
Esta saída mostra um handshake TCP básico entre dois hosts. O primeiro pacote com [SYN] indica uma solicitação de conexão, o segundo com [SYN, ACK] é a resposta e o terceiro [ACK] completa o handshake. Cada linha representa um pacote de rede com seus detalhes essenciais, fornecendo uma visão cronológica da comunicação de rede.
Habilitar Dump Hexadecimal com -x
Nesta etapa, exploraremos como examinar o conteúdo binário bruto dos pacotes de rede usando a ferramenta de linha de comando tshark do Wireshark. A opção -x é particularmente poderosa, pois revela os dados hexadecimais reais que compõem cada pacote, o que é essencial para uma análise profunda de pacotes.
Ao trabalhar com tráfego de rede, os pacotes são fundamentalmente apenas sequências de bytes. A flag -x diz ao tshark para exibir:
- As informações padrão do cabeçalho do pacote (como endereços de origem/destino)
- A representação hexadecimal completa dos dados brutos do pacote
- Uma interpretação ASCII desses dados (quando aplicável)
Antes de prosseguir, vamos garantir que estamos no diretório de trabalho correto onde nosso arquivo de captura de pacotes está armazenado:
cd ~/project
Agora, analisaremos nosso arquivo de captura de pacotes (capture.pcap) com a saída hexadecimal habilitada:
tshark -r capture.pcap -x
Este comando produz uma saída dividida em três seções principais para cada pacote:
- A linha de resumo mostrando informações básicas do pacote
- O dump hexadecimal mostrando os bytes brutos do pacote
- A representação ASCII desses bytes (exibindo caracteres imprimíveis)
Aqui está como uma seção de saída típica se parece (abreviada para demonstração):
1 0.000000 192.168.1.1 → 192.168.1.2 TCP 66 443 → 49234 [SYN] Seq=0 Win=64240 Len=0
0000 00 1a 4b 12 34 56 00 1b 11 22 33 44 08 00 45 00 ..K.4V..."3D..E.
0010 00 34 12 34 00 00 80 06 78 9a c0 a8 01 01 c0 a8 .4.4....x.......
0020 01 02 01 bb c0 52 00 00 00 00 00 00 00 00 50 02 .....R........P.
0030 fa f0 00 00 00 00 00 00 00 00 ..........
A exibição hexadecimal é organizada da seguinte forma:
- A coluna mais à esquerda (0000, 0010, etc.) mostra o deslocamento de bytes em hexadecimal
- A seção do meio exibe 16 bytes de dados de pacote por linha em formato hexadecimal
- A seção da direita mostra a representação de caracteres ASCII (com caracteres não imprimíveis exibidos como pontos)
Esta visualização é inestimável quando você precisa examinar os cabeçalhos de protocolo no nível de bytes ou verificar o conteúdo exato das transmissões de rede.
Limitar a Frames com --hexdump frames
Nesta etapa, você aprenderá a controlar com precisão quais pacotes aparecem em sua saída hexadecimal usando a opção --hexdump do Wireshark com filtragem de quadros. Essa técnica ajuda você a se concentrar em pacotes de rede específicos ao examinar seus dados hexadecimais brutos - particularmente valioso ao trabalhar com arquivos de captura grandes contendo muitos pacotes.
A opção --hexdump oferece um controle mais preciso do que a flag -x básica. Enquanto -x mostra dumps hexadecimais para todos os pacotes, --hexdump permite que você especifique exatamente quais números de quadro exibir. Isso é como ter uma lupa que só mostra os pacotes que você deseja inspecionar de perto.
- Primeiro, vamos garantir que estamos no diretório de trabalho correto onde nosso arquivo de captura está armazenado. Isso garante que o Tshark possa encontrar o arquivo que queremos analisar:
cd ~/project
- Agora, usaremos o Tshark para exibir dados hexadecimais para quadros específicos. A estrutura do comando é:
-r capture.pcaplê nosso arquivo de captura de pacotes--hexdump frame=1-3diz ao Tshark que queremos apenas os quadros 1 a 3- O sinal de igual (=) conecta o filtro de quadro à opção hexdump
Execute este comando para ver os quadros 1-3 em hexadecimal:
tshark -r capture.pcap --hexdump frame=1-3
Este comando produz uma saída mostrando:
- Apenas os três quadros que solicitamos (1, 2 e 3)
- A representação hexadecimal completa de cada quadro
- Os dados de bytes brutos sem as informações de resumo do pacote usual
Exemplo de saída (abreviado para demonstração):
Frame 1: 66 bytes on wire
0000 00 1a 4b 12 34 56 00 1b 11 22 33 44 08 00 45 00 ..K.4V..."3D..E.
0010 00 34 12 34 00 00 80 06 78 9a c0 a8 01 01 c0 a8 .4.4....x.......
0020 01 02 01 bb c0 52 00 00 00 00 00 00 00 00 50 02 .....R........P.
0030 fa f0 00 00 00 00 00 00 00 00 ..........
Frame 2: 66 bytes on wire
0000 00 1b 11 22 33 44 00 1a 4b 12 34 56 08 00 45 00 ..."3D..K.4V..E.
0010 00 34 ab cd 00 00 80 06 12 34 c0 a8 01 02 c0 a8 .4.......4......
0020 01 01 c0 52 01 bb 00 00 00 00 00 00 00 01 50 12 ...R..........P.
0030 ff ff 00 00 00 00 00 00 00 00 ..........
Observe as principais diferenças em relação às saídas anteriores:
- Apenas os quadros que você especificou aparecem (sem pacotes extras)
- Cada quadro mostra sua representação hexadecimal completa
- A saída ignora as linhas de resumo do pacote usual, fornecendo dados hexadecimais mais limpos para analisar
Revisar a Saída Hexadecimal
Nesta etapa final, você analisará e interpretará a saída hexadecimal da sua captura de pacotes. Compreender os dumps hexadecimais é fundamental para a análise de rede, pois mostra os dados binários brutos exatamente como eles viajam pela rede. Essa habilidade é essencial para entender os protocolos de rede, depurar problemas de comunicação e realizar inspeção de pacotes de baixo nível.
- Primeiro, vamos gerar um dump hexadecimal abrangente dos primeiros 3 quadros. Usaremos este comando no diretório do projeto:
cd ~/project
tshark -r capture.pcap --hexdump frame=1-3
Este comando lê o arquivo capture.pcap e exibe a representação hexadecimal dos quadros 1 a 3. A opção --hexdump diz ao Tshark para mostrar as representações hexadecimais e ASCII lado a lado.
- Examine a estrutura da saída cuidadosamente. O dump hexadecimal é organizado para ajudá-lo a visualizar a estrutura do pacote:
- Cada quadro começa com seu tamanho (por exemplo, "Frame 1: 66 bytes on wire") mostrando o comprimento total do pacote
- A coluna da esquerda mostra o deslocamento de bytes (0000, 0010, etc.), o que ajuda a localizar bytes específicos
- A seção do meio exibe 16 bytes de dados hexadecimais por linha, mostrando o conteúdo real do pacote
- A coluna da direita mostra a representação ASCII de caracteres imprimíveis, útil para identificar protocolos de texto
- Agora, vamos identificar os principais cabeçalhos de protocolo no dump hexadecimal. Os pacotes de rede seguem uma estrutura em camadas, e podemos ver isso na saída hexadecimal:
## Ethernet header (first 14 bytes)
0000 00 1a 4b 12 34 56 00 1b 11 22 33 44 08 00
## IP header (next 20 bytes)
0010 45 00 00 34 12 34 00 00 80 06 78 9a c0 a8 01 01
0020 c0 a8 01 02
## TCP header (next 20 bytes)
0020 01 bb c0 52 00 00 00 00 00 00 00 00 50 02
0030 fa f0 00 00 00 00 00 00 00 00
O cabeçalho Ethernet vem primeiro, seguido pelo cabeçalho IP e, em seguida, pelo cabeçalho TCP. Cada cabeçalho de protocolo contém campos específicos em posições fixas que podemos decodificar.
- Vamos praticar a interpretação de alguns valores comuns que você encontrará em pacotes de rede:
08 00indica IPv4 (EtherType) - isso informa à placa de rede qual protocolo vem a seguir45mostra IPv4 com comprimento do cabeçalho de 5 palavras (o '4' é a versão IP, '5' é o comprimento do cabeçalho em palavras de 32 bits)c0 a8 01 01é 192.168.1.1 em hexadecimal (cada par representa um octeto do endereço IP)01 bbé a porta 443 em decimal (o primeiro byte 01 é 256, mais bb é 187, totalizando 443)
Lembre-se de que os protocolos de rede usam a ordem de bytes big-endian, o que significa que o byte mais significativo vem primeiro ao interpretar campos de vários bytes.
Resumo
Neste laboratório, você aprendeu a utilizar a ferramenta de linha de comando tshark do Wireshark para analisar capturas de pacotes e examinar dados hexadecimais. Os exercícios demonstraram a leitura de arquivos PCAP com a opção -r para visualizar informações básicas de pacotes e o uso da flag -x para dumps hexadecimais detalhados.
Você explorou como essas técnicas permitem uma análise abrangente do tráfego de rede, desde a observação de handshakes TCP até a inspeção de dados de pacotes brutos no nível de bytes. A combinação de resumos de pacotes com representações hexadecimais e ASCII oferece recursos poderosos para a solução de problemas de rede e a análise de protocolos.


