AutoNetOps

Cover Image for Um Conto de Engenheiro de Redes: Desvendando Pktmon no Windows

Um Conto de Engenheiro de Redes: Desvendando Pktmon no Windows

·

5 min read

Era uma manhã típica, e eu, um engenheiro de redes, me vi encarando o PC de um usuário reclamando que a rede estava lenta e eu precisava descobrir a causa. Minha ferramenta de confiança, o Wireshark, não estava instalada nesse computador. Instalá-lo seria como pular obstáculos: aprovações de gerenciamento de mudanças, verificações de segurança e, provavelmente, uma espera até o departamento responsavel liberar. Foi então que, em uma pesquisa rápida, tropecei em uma joia escondida no Windows—Pktmon.

A Descoberta: Pktmon ao Resgate

Em um ambiente limitado, sem ferramentas de terceiros nao autorizadas, sem sniffers com interface gráfica sofisticada. Mas então, como encontrar uma ferramenta esquecida no fundo de um galpão, descobri o Pktmon, um sniffer de pacotes embutido, introduzido no Windows 10. Não é chamativo—sem uma interface elegante como o Wireshark—mas é suficiente para quebrar o galho, leve e, o melhor de tudo, já está ali, esperando para ser usado.

Abri um Prompt de Comando elevado (porque o Pktmon exige privilégios de administrador, claro) e digitei pktmon help para me orientar. O menu de ajuda era como um mapa do tesouro, revelando comandos para capturar pacotes, configurar filtros e até converter logs para análise posterior.

Passo 1: Preparando o Terreno

Primeiro, eu precisava saber quais interfaces de rede estavam disponíveis. Digitei:

pktmon comp list

Esse comando listou todos os adaptadores de rede do sistema, cada um com um ID. Por exemplo:

Adaptadores de Rede:
Id  Endereço MAC      Nome
--  -----------        ----
9   00-50-56-BD-C1-83  Adaptador Ethernet
12  E8-6A-64-44-7B-00  Adaptador Wi-Fi

Meu alvo era o adaptador Ethernet (ID 9). Saber o ID da interface é crucial se você quer focar a captura em uma NIC específica para evitar se afogar em dados irrelevantes.

Passo 2: Criando Filtros

As capacidades de filtragem do Pktmon são onde ele brilha. Eu precisava focar em um tráfego específico—digamos, tráfego HTTP na porta 80. Para configurar isso, adicionei um filtro:

pktmon filter add -p 80 -t tcp

Isso instruiu o Pktmon a capturar tráfego TCP na porta 80. Quer capturar pings ICMP em vez disso? Fácil:

pktmon filter add -t icmp

Você pode empilhar até 32 filtros para ser bem específico. Por exemplo, para monitorar tráfego para um IP específico (como 192.168.1.100):

pktmon filter add -i 192.168.1.100

Para verificar seus filtros, execute:

pktmon filter list

Se errar, limpe-os com:

pktmon filter remove

Dica de ouro: Sempre configure os filtros antes de capturar. Capturas sem filtro são como procurar uma agulha em um palheiro de tráfego de rede.

Passo 3: Iniciando a Captura

Com os filtros configurados, era hora de começar a capturar. Eu queria salvar os pacotes em um arquivo para análise posterior, então executei:

pktmon start --etw --pkt-size 0 --file-name C:\Temp\traffic.etl --comp 9

Aqui está o que cada parte faz:

  • --etw: Ativa o Event Tracing for Windows, salvando pacotes em um arquivo ETL.

  • --pkt-size 0: Captura pacotes completos (o padrão é apenas os primeiros 128 bytes).

  • --file-name C:\Temp\traffic.etl: Especifica o arquivo de saída.

  • --comp 9: Foca no adaptador Ethernet (ID 9).

A captura começou, registrando pacotes silenciosamente em segundo plano. Para monitoramento em tempo real (disponível no Windows 10 versão 2004 ou posterior), eu poderia ter adicionado -l real-time, mas queria um arquivo para uma análise mais profunda.

Passo 4: Parando e Convertendo

Depois de reproduzir o problema (uma rápida atualização no navegador para um site problemático), parei a captura:

pktmon stop

Isso salvou os dados em C:\Temp\traffic.etl. Mas arquivos ETL não são exatamente amigáveis. Para torná-los compatíveis com o Wireshark, converti o arquivo para o formato PCAPNG:

pktmon etl2pcap C:\Temp\traffic.etl --out C:\Temp\traffic.pcapng

Agora eu tinha um arquivo traffic.pcapng que podia transferir para minha estação de trabalho, onde o Wireshark estava pronto para dissecá-lo com toda sua glória gráfica.

Passo 5: Analisando os Resultados

Na minha própria máquina, abri o traffic.pcapng no Wireshark. O tráfego HTTP que filtrei estava lá, claro como o dia, me ajudando a identificar uma resposta de servidor mal configurada que causava a lentidão. A capacidade do Pktmon de identificar quedas de pacotes (com motivos como “MTU Mismatch” ou “Filtered VLAN”) também me deu pistas sobre possíveis problemas na rede.

Bônus: Monitoramento em Tempo Real

Para verificações rápidas, o modo em tempo real do Pktmon é um salva-vidas. Experimente:

pktmon start --etw -l real-time -p 0

Isso exibe os pacotes na linha de comando enquanto são capturados. Pressione Ctrl+C para parar. Não é tão bonito quanto o Wireshark, mas resolve quando você está em apuros.

Por que o Pktmon é Incrível

  • Sem Instalação Necessária: Está embutido no Windows 10.

  • Leve: Perfeito para servidores onde instalar ferramentas de terceiros é proibido.

  • Filtros Flexíveis: Filtre por IP, porta, protocolo, MAC e mais.

  • Compatibilidade com Wireshark: Converta para PCAPNG para análise detalhada.

Cuidados

  • Sem Interface Gráfica: É só linha de comando, então prepare-se para se familiarizar com CMD ou PowerShell.

  • Análise Básica: Para inspeção profunda de pacotes, você ainda vai querer o Wireshark ou ferramentas similares.

  • Privilégios de Administrador: Você precisa de acesso elevado para rodar o Pktmon.

A Volta da Vitória

Voltando à minha história: com o Pktmon, capturei o tráfego problemático, converti para PCAPNG e analisei depois na minha própria máquina. O problema? Um servidor DNS antigo que demorava uma eternidade para responder. Graças aos filtros do Pktmon, isolei o culpado sem precisar vasculhar gigabytes de dados.

É uma ferramenta excelente para ter no cinto de utilidades. Deixo aqui para referência futura e para quem também quiser aproveitá-la.

;