HomeRedesCapturar tráfego de rede com o Microsoft Network Monitor

Capturar tráfego de rede com o Microsoft Network Monitor

O Microsoft Network Monitor é uma ferramenta legada de análise de pacotes de rede da Microsoft que chegou ao fim de seu ciclo de desenvolvimento. Este artigo fornece um guia técnico detalhado sobre sua arquitetura, métodos de captura e a implementação de sua linguagem de filtros específica para diagnóstico preciso de rede, juntamente com o contexto de seus substitutos modernos.

Microsoft Network Monitor (frequentemente chamado de NetMon) é um aplicativo proprietário de análise de pacotes desenvolvido pela Microsoft para sistemas operacionais Windows. Ele funciona como um analisador de protocolos e sniffer de rede capaz de capturar, decodificar, exibir e analisar quadros de dados que atravessam uma interface de rede. Tecnicamente, opera nas camadas de Enlace de Dados (Camada 2) e Rede (Camada 3) do modelo OSI, permitindo a inspeção de cabeçalhos e payloads de vários protocolos como Ethernet, IPv4/IPv6, TCP, UDP e protocolos de aplicação. No entanto, é crucial notar que a Microsoft anunciou o fim da vida útil desta ferramenta e a removeu da distribuição oficial por volta de 2016. Seu sucessor, o Microsoft Message Analyzer, também foi arquivado.

Arquitetura e Guia de Instalação

O Microsoft Network Monitor 3.4 é construído sobre um Driver do Network Monitor dedicado que deve ser instalado. Este driver permite que o aplicativo em modo de usuário capture pacotes no modo promíscuo, um modo onde o adaptador de rede pode receber todo o tráfego no segmento de rede, independentemente de o pacote se destinar ao endereço MAC desse adaptador. Aqui está o procedimento técnico de instalação:

  1. Download do Binário: Baixe o pacote de instalação (NM34_x64.exe ou NM34_x86.exe) de um arquivo de terceiros confiável, pois o link oficial da Microsoft não está mais ativo. Certifique-se de verificar o hash do arquivo (MD5/SHA1), se fornecido, para confirmar a integridade do binário.
  2. Instalação e Configuração do Driver: Execute o instalador com privilégios de administrador. Este processo instalará o aplicativo em si junto com o Driver do Network Monitor. Você pode ver solicitações do Controle de Conta de Usuário (UAC) do Windows e da Segurança do Windows para instalar um driver não assinado, dependendo da política do sistema.
  3. Execução com Privilégios: Após a instalação, sempre execute o aplicativo “Microsoft Network Monitor 3.4” com a opção “Executar como administrador”. Isto é crucial porque o processo de captura requer acesso no nível do kernel por meio do driver. Sem este privilégio, os recursos de captura e análise de processo não funcionarão.
Executar aplicativo Microsoft Network Monitor 3.4 com opção Executar como administrador
Figura 1: Execute o aplicativo Microsoft Network Monitor 3.4 com a opção “Executar como administrador” para direitos de acesso completos.
  1. Seleção do Adaptador de Rede: No painel superior esquerdo, marque apenas um adaptador de rede para ser a fonte de captura. Selecionar mais de um adaptador pode causar uma sobrecarga significativa da CPU e misturar quadros de diferentes segmentos de rede, dificultando a análise. Escolha o adaptador correspondente à Placa de Interface de Rede (NIC) conectada ao segmento alvo.
Caixa de diálogo de configuração de seleção de adaptador de rede no Microsoft Network Monitor
Figura 2: Configuração de seleção de adaptador. Observe informações como endereço MAC e status do link exibidos.

Metodologia de Captura e Análise de Quadros

O processo central do Microsoft Network Monitor envolve capturar e interpretar quadros de rede. Cada quadro capturado é analisado com base nos analisadores de protocolo integrados. Aqui está o fluxo de trabalho técnico:

  1. Iniciação da Sessão de Captura: Clique no botão “Nova Captura” (o ícone de nova página) e, em seguida, no botão “Iniciar” (o ícone de triângulo verde). Internamente, o aplicativo inicia uma sessão de captura com o driver, alocando um buffer de memória em anel na RAM para armazenar temporariamente os quadros antes de escrevê-los no disco (se configurado).
Barra de ferramentas do Microsoft Network Monitor com botões Nova Captura e Iniciar circulados
Figura 3: Barra de ferramentas de controle de captura. A sequência de operação correta é Nova Captura (limpar buffer) e depois Iniciar.
  1. Interpretação de Dados no Painel Resumo do Quadro: Cada linha no painel “Resumo do Quadro” representa um quadro. As colunas importantes incluem:
    • Número do Quadro: Número sequencial do quadro desde o início da sessão.
    • Deslocamento de Tempo: Delta de tempo desde o primeiro quadro capturado.
    • Endereço MAC de Origem e Destino: Endereços da camada de Enlace de Dados.
    • Protocolo: O protocolo de camada mais alta identificado com sucesso no quadro (por exemplo, TCP, HTTP, DNS).
    • Descrição: Resumo legível por humanos do conteúdo do quadro, gerado pelo analisador.
Visualização do painel Resumo do Quadro no Microsoft Network Monitor mostrando várias colunas de protocolo
Figura 4: O painel Resumo do Quadro exibe metadados do quadro. Clique em uma linha para ver seus detalhes completos no painel inferior.
  1. Inspeção Profunda de Pacotes no Painel Detalhes do Quadro: Clique em uma linha de quadro para ver uma análise profunda no painel inferior. Este painel usa uma visualização em árvore hierárquica que mostra a decomposição do quadro por camada de protocolo (por exemplo, Cabeçalho Ethernet, Cabeçalho IP, Cabeçalho TCP, Payload HTTP). Aqui é onde a solução de problemas técnica é realizada, como analisar flags TCP, valores TTL, erros de checksum ou sequências de handshake de três vias.
  2. Aplicação de Filtros para Análise Específica: Use a caixa “Filtro” acima do painel Resumo do Quadro para filtrar milhares de quadros com base em critérios técnicos muito específicos. Esses filtros usam a poderosa Linguagem de Análise do Network Monitor (NPL).

Implementação da Linguagem de Filtros NPL para Diagnóstico

A principal força analítica do Microsoft Network Monitor reside na Linguagem de Análise do Network Monitor (NPL). Esta é uma linguagem de expressão booleana que permite construir filtros com base em campos de cabeçalhos de protocolo ou propriedades calculadas. Compreender a sintaxe NPL é essencial para o isolamento de problemas.

Filtros de Camada IP e Transporte

Campo/PropriedadeDescrição Técnica e Caso de UsoExemplo de Sintaxe NPL
IPv4.AddressCorresponde a um endereço IPv4 como origem OU destino. Útil para monitorar toda a atividade de um host.IPv4.Address == 192.168.1.10
IPv4.SourceAddressEspecífico para o endereço de origem do pacote. Para rastrear tráfego enviado por um host específico.IPv4.SourceAddress == 10.0.0.5
TCP.PortCorresponde a um número de porta TCP como origem OU destino. Essencial para filtrar serviços específicos (porta 443 para HTTPS, 3389 para RDP).TCP.Port == 443
TCP.FlagsVerifica combinações de flags TCP. Analisa padrões de conexão (SYN para iniciação, RST para reset forçado, FIN para terminação graciosa).TCP.Flags.Syn == 1 && TCP.Flags.Ack == 0 (apenas pacotes SYN puros)
Property.TCPRetransmitPropriedade definida como 1 se detectada como uma retransmissão TCP. Um indicador principal de perda de pacotes, congestionamento ou RTT alto.Property.TCPRetransmit == 1

Por exemplo, para diagnosticar conexões lentas a um servidor web, você pode combinar filtros:

// Filtro para capturar retransmissões TCP destinadas ao servidor web 203.0.113.5 na porta 80
IPv4.DestinationAddress == 203.0.113.5 && TCP.Port == 80 && Property.TCPRetransmit == 1

Filtros Baseados em Processo de Aplicativo

Um recurso exclusivo do NetMon é sua capacidade de correlacionar tráfego de rede com o ID do Processo (PID) e o Nome do Processo que gerou ou recebeu o tráfego. Isso é alcançado através da integração com a API de Rede do Windows. Esses filtros são muito úteis para identificar qual aplicativo está consumindo largura de banda.

PropriedadeDescriçãoExemplo
Property.ProcessNameO nome do arquivo de imagem do processo (por exemplo, chrome.exe, svchost.exe). A pesquisa não diferencia maiúsculas de minúsculas.Property.ProcessName.Contains("chrome")
Property.ProcessIdO ID numérico do processo. Útil se houver várias instâncias do mesmo aplicativo.Property.ProcessId == 4512

Filtros de Protocolo Específico e Exemplos Complexos

Para um diagnóstico mais profundo, você pode criar filtros que visam comportamentos de protocolo específicos. Aqui estão exemplos para analisar problemas de DNS ou conexões com falha:

// 1. Filtro para capturar apenas pacotes de consulta e resposta DNS
DNS

// 2. Filtro para capturar conversas TCP que falharam no handshake de três vias
// (Detecta pacote SYN seguido por RST, sem SYN-ACK)
TCP.Flags.Syn == 1 && TCP.Flags.Ack == 0 && TCP.Flags.Rst == 1

// 3. Filtro para capturar tráfego HTTP contendo uma palavra-chave específica no URI
HTTP.Request.URI.Contains("login")

Conclusão e Recomendações para Ambientes Modernos

Como uma ferramenta obsoleta, o Microsoft Network Monitor ainda tem valor educacional para entender os princípios básicos da análise de pacotes e da decodificação de protocolos em ambientes Windows. Suas forças residem na boa integração com a pilha de rede do Windows e nos recursos de filtragem baseados em processo. No entanto, para fins profissionais, técnicos e de auditoria de segurança modernos, sua falta de atualizações, ausência de suporte para protocolos mais novos (como HTTP/2, QUIC) e uma comunidade inativa o tornam uma escolha menos ideal.

Uma recomendação prática é migrar para o Wireshark, o padrão de facto para análise de rede. O Wireshark oferece suporte muito mais amplo a protocolos, recursos de filtragem altamente expressivos (Filtro de Pacotes Berkeley e Filtros de Exibição do Wireshark), uma grande comunidade e atualizações de segurança regulares. O entendimento profundo dos conceitos obtidos ao estudar o Microsoft Network Monitor, como ler dumps hexadecimais e estruturas de cabeçalho, pode ser transferido diretamente e formar uma base sólida para usar ferramentas de análise de pacotes mais modernas.

Últimos artigos