PKTMON
Alternativa ao TCPDUMP no Windows (Tutorial Avançado)
Pktmon - Alternativa ao Tcpdump no Windows
Olá! Se você está familiarizado com o Tcpdump e está procurando uma ferramenta semelhante no Windows, você veio ao lugar certo. Neste tutorial, vamos explorar o Pktmon, uma ferramenta de diagnóstico de rede nativa do Windows, isso mesmo, você não entendeu errado. Vamos aprender como usar o Pktmon para capturar pacotes de rede, aplicar filtros e analisar os resultados.
O que é o Pktmon?
O Pktmon é uma ferramenta de linha de comando que foi introduzida à partir do Windows 10 e é usada para diagnosticar problemas de rede. Ele pode capturar pacotes de rede, detectar descarte de pacotes, filtrar pacotes e contar pacotes.
Como usar o Pktmon?
Aqui estão algumas etapas básicas para começar a usar o Pktmon de forma avançada:
Abra o PowerShell como administrador
Identifique o tipo de pacote necessário para a captura (como endereços IP, portas ou protocolos específicos associados ao pacote.)
Verifique a sintaxe para aplicar filtros de captura
Inicie a captura em tempo real ou habilite o registro em log de pacotes. Note que o filtro precisa ser aplicado antes de capturar os pacotes e tenha cuidado para que não hajam filtros indesejados aplicados.
Reproduza o problema que está sendo diagnosticado
Interrompa a captura e recupere os logs no formato texto ou PCAPNG para análise
Índice
Gerenciando Filtros de Pacote com pktmon filter
Antes de iniciar qualquer captura, é necessário aplicar filtro do que será capturado, portanto vamos começar falando sobre os filtros.
O subcomando pktmon filter é usado para gerenciar filtros de pacote. Os filtros de pacote permitem controlar quais pacotes são capturados e relatados pelo Pktmon. Os filtros precisam ser aplicados antes de iniciar a captura dos pacotes.
Adicionando um filtro de pacote: Para adicionar um filtro de pacote, você pode usar o comando abaixo. Substitua <name> pelo nome do filtro que você deseja adicionar e <options> pelas opções do filtro.
pktmon filter add <name> <options>
Exibindo filtros de pacote ativos: Para exibir os filtros de pacote ativos, você pode usar o comando abaixo.
pktmon filter list
Removendo todos os filtros de pacote: Para remover todos os filtros de pacote, você pode usar o comando abaixo (não é possível remover um específico).
pktmon filter remove
Exemplos
Aqui estão alguns exemplos de como você pode usar filtros no Pktmon:
Filtrar por endereço IP:
pktmon filter pingDNS add -i 1.1.1.1
Filtrar por porta:
pktmon filter add http -p 80
Filtrar por protocolo de transporte:
pktmon filter add -t TCP
Filtrar por endereço MAC:
pktmon filter add srvwebapp01 -m 00-14-22-01-23-45
Você pode combinar esses filtros conforme necessário. Por exemplo, se você quiser filtrar pacotes TCP na porta 80 do endereço IP 192.168.1.1, você pode usar o seguinte comando:
pktmon filter add -i 192.168.1.1 -p 80 -t TCP
Iniciando a Captura de Pacotes com pktmon start
O comando pktmon start é usado para iniciar a captura de pacotes e a coleta de eventos. Este comando tem várias opções que permitem personalizar a captura de pacotes.
Iniciar a captura de pacotes
Para iniciar a captura de pacotes, você pode usar o comando abaixo. Este comando inicia a captura de pacotes e a coleta de eventos.
pktmon start --capture
Coletar apenas contadores de pacotes
Se você quiser coletar apenas contadores de pacotes e não registrar os pacotes, você pode usar o comando abaixo.
pktmon start --capture --counters-only
Selecionar componentes para capturar pacotes
Se você quiser selecionar componentes específicos para capturar pacotes, você pode usar o comando abaixo. Por exemplo, pktmon start --capture --comp nics irá capturar pacotes apenas de NICs.
pktmon start --capture --comp {all | nics | id1 id2 ...}
Para identificar a placa de rede que você deseja usar com o comando pktmon, você pode usar o comando pktmon list. Este comando lista todos os componentes de rede ativos que podem ser monitorados, permitindo que você examine o layout da pilha de rede.
Depois de identificar o ID do componente de rede (ou seja, a placa de rede) que você deseja monitorar, você pode usar esse ID com o comando pktmon start --capture --comp. Por exemplo, se o ID do componente de rede for 9, você usaria o comando pktmon start --capture --comp 9.
PS C:\Users\jbitcore\Desktop> pktmon list
Adaptadores de Rede:
ID Endereço MAC Nome
-- ------------ ----
11 AA-BB-CC-DD-EE-FF Bluetooth Device (Personal Area Network)
12 00-11-22-33-44-55 Qualcomm QCA9377 802.11ac Wireless Adapter
13 66-77-88-99-AA-BB Realtek PCIe FE Family Controller
Por favor, note que este é apenas um exemplo e a saída real pode variar dependendo do tráfego de rede e das configurações específicas do seu ambiente.
Selecionar quais pacotes capturar
Se você quiser selecionar quais pacotes capturar, você pode usar o comando abaixo. Por exemplo, pktmon start --capture --type drop irá capturar apenas pacotes que foram descartados.
pktmon start --capture --type {all | flow | drop}
Definir o número de bytes a serem registrados em cada pacote
Se você quiser definir o número de bytes a serem registrados em cada pacote, você pode usar o comando abaixo. Por exemplo, pktmon start --capture --pkt-size 256 irá registrar os primeiros 256 bytes de cada pacote.
pktmon start --capture --pkt-size <bytes>
Controlar as informações registradas durante a captura de pacotes
Se você quiser controlar as informações registradas durante a captura de pacotes, você pode usar o comando abaixo. Por exemplo, pktmon start --capture --flags 0x010 irá registrar o pacote bruto, truncado para o tamanho especificado pelo --pkt-size.
pktmon start --capture --flags <mask>
Exibindo Contadores de Pacotes com pktmon counters
O comando pktmon counters é usado para exibir os contadores de pacotes atuais. Este comando é útil para verificar o número de pacotes que foram capturados. Aqui está um exemplo de como usar este comando:
pktmon counters
Este comando irá exibir os contadores de pacotes atuais.
Veja um exemplo:
PS C:\Users\jbitcore\Desktop> pktmon start --capture
Parâmetros do Agente:
Nome do agente: PktMon
Modo de registro em log: Circular
Arquivo de log: C:\Users\jbitcore\Desktop\PktMon.etl
Tamanho máx. de arquivo: 512 MB
Memória usada: 128 MB
Dados Coletados:
Contadores de pacotes, captura de pacotes
Tipo de Captura:
Todos os pacotes
Componentes Monitorados:
Todos
Filtros de Pacote:
# Nome Endereço IP
- ---- -----------
1 pingDNS 1.1.1.1
PS C:\Users\jbitcore\Desktop> pktmon status
Dados Coletados:
Contadores de pacotes, captura de pacotes
Tipo de Captura:
Todos os pacotes
Componentes Monitorados:
Todos
Filtros de Pacote:
# Nome Endereço IP
- ---- -----------
1 pingDNS 1.1.1.1
Parâmetros do Agente:
Nome do agente: PktMon
Modo de registro em log: Circular
Arquivo de log: C:\Users\jbitcore\Desktop\PktMon.etl
Tamanho máx. de arquivo: 512 MB
Memória usada: 128 MB
Eventos perdidos: 0
Provedores de Eventos:
ID Nível Palavras-chave
-- ----- --------------
Microsoft-Windows-PktMon 4 0x12
PS C:\Users\jbitcore\Desktop> pktmon counters
Qualcomm QCA9377 802.11ac Wireless Adapter
ID Nome Contador Direção Pacotes Bytes | Direção Pacotes Bytes
-- ---- -------- ------- ------- ----- | ------- ------- -----
12 Qualcomm QCA9377 802.11... Upper Rx 33 3.036 | Tx 33 3.036
|
43 WFP Native Filter Lower Rx 33 3.036 | Tx 33 3.036
Upper Rx 33 3.036 | Tx 33 3.036
32 Virtual WiFi Filter Driver Lower Rx 33 3.036 | Tx 33 3.036
Upper Rx 33 3.036 | Tx 33 3.036
31 Native WiFi Filter Driver Lower Rx 33 3.036 | Tx 33 3.036
Upper Rx 33 2.442 | Tx 33 2.442
30 Kaspersky Lab NDIS 6 Fi... Lower Rx 33 2.442 | Tx 33 2.442
Upper Rx 33 2.442 | Tx 33 2.442
29 QoS Packet Scheduler Lower Rx 0 0 | Tx 33 2.442
Upper Rx 0 0 | Tx 33 2.442
|
72 TCPIP Lower Rx 33 2.442 | Tx 33 2.442
69 NDISUIO Lower Rx 33 2.442 | Tx 0 0
68 LLTDIO Lower Rx 33 2.442 | Tx 0 0
67 VMNETBRIDGE Lower Rx 33 2.442 | Tx 0 0
PS C:\Users\jbitcore\Desktop> pktmon stop
Liberando logs...
Mesclando metadados...
Arquivo de log: C:\Users\jbitcore\Desktop\PktMon.etl (Nenhum evento perdido)
PS C:\Users\jbitcore\Desktop>
Consultando o Status Atual com pktmon status
O comando pktmon status é usado para consultar o status atual do Packet Monitor. Este comando é útil para verificar o status da captura de pacotes e da coleta de eventos. Sempre execute antes de iniciar uma nova captura para se certificar que não exista nenhuma captura em execução. Aqui está um exemplo de como usar este comando:
pktmon status
Parando a Captura de Pacotes com pktmon stop
O comando pktmon stop é usado para parar a coleta de dados. Este comando é útil quando você terminou a captura de pacotes e deseja parar a coleta de dados. Aqui está um exemplo de como usar este comando:
pktmon stop
Redefinindo Contadores de Pacotes com pktmon reset
O comando pktmon reset é usado para redefinir todos os contadores de pacotes para zero. Este comando é útil quando você deseja iniciar uma nova sessão de captura de pacotes e não quer que os contadores antigos interfiram em suas medições. Aqui está um exemplo de como usar este comando:
pktmon reset
Este comando irá redefinir todos os contadores de pacotes para zero.
Descarregando o Driver(cache) PktMon com pktmon unload
O comando pktmon unload é usado para descarregar o driver PktMon. Este comando é útil quando você terminou a captura de pacotes e deseja liberar os recursos usados pelo driver PktMon. Aqui está um exemplo de como usar este comando:
pktmon unload
Este comando irá parar o serviço de driver PktMon e descarregar o PktMon.sys. A medida (se ativa) será interrompida imediatamente, e qualquer estado será excluído (contadores, filtros, etc.).
Convertendo Arquivos de Log
Os comandos pktmon etl2txt e pktmon etl2pcap são usados para converter arquivos de log em formato de texto e PCAPNG, respectivamente. Esses comandos são úteis quando você deseja analisar os pacotes capturados em um formato mais legível ou em um formato que pode ser importado para outras ferramentas de análise de rede.
Convertendo um arquivo de log em formato de texto: Para converter um arquivo de log em formato de texto, você pode usar o comando abaixo. Substitua <nomedoarquivo> pelo nome do arquivo de log que você deseja converter.
pktmon etl2txt <nomedoarquivo>
pktmon format pktmon.etl -o <nomedoarquivo>.txt
Convertendo um arquivo de log em formato PCAPNG: Para converter um arquivo de log em formato PCAPNG, você pode usar o comando abaixo. Substitua <file> pelo nome do arquivo de log que você deseja converter.
pktmon etl2pcap <file>
Aqui está um exemplo da conversão de um arquivo para PCAPNG:
PS C:\Users\jbitcoreDesktop> pktmon etl2pcap PktMon.etl
Processando...
Total de pacotes: 1125
Contagem de descarte de pacotes: 0
Pacotes formatados: 1125
Arquivo formatado: PktMon.pcapng
PS C:\Users\jbitcore\Desktop>
Os arquivos convertidos em formato PCAPNG podem ser abertos no Wireshark para uma análise mais detalhada.
Como visualizar em tempo real?
Em casos em que precisamos de monitorar um determinado tráfego ao mesmo tempo em que ele acontece, uma boa opção seria de visualizar o resultado instantaneamente.
Para visualizar em tempo real com o pktmon, crie seu filtro como indicado anteriormente, e inicie o monitoramento com o comando abaixo:
pktmon start --etw -m real-time: Este comando inicia o Pktmon no modo de captura de eventos em tempo real usando o Event Tracing for Windows (ETW). O ETW é um mecanismo de rastreamento de eventos de alto desempenho do Windows. Este comando fornece uma visão em tempo real dos eventos à medida que ocorrem. Ele é útil para a análise de eventos de rede em tempo real, como a conexão e desconexão de dispositivos de rede, alterações no status da rede, etc.
pktmon start --etw -m real-time
pktmon start --capture --log-mode real-time: Este comando inicia o Pktmon no modo de captura de pacotes em tempo real. Ele captura os pacotes que estão sendo transmitidos ou recebidos pela rede e exibe as informações desses pacotes em tempo real. No entanto, quando o log-mode é definido como real-time, o Pktmon não fornece os dados brutos (hexadecimais) do pacote. Este comando é útil para a análise de tráfego de rede em tempo real, como a identificação de pacotes que estão sendo enviados ou recebidos, a identificação de padrões de tráfego, a detecção de problemas de rede, etc.
pktmon start --capture --log-mode real-time
pktmon start --capture --type flow -m real-time: Este comando inicia a captura de pacotes em tempo real, mas apenas para pacotes que são parte de um fluxo de dados. Ele é útil para a análise de tráfego de rede em tempo real, mas focado em pacotes que fazem parte de um fluxo de dados, como pacotes TCP ou UDP que fazem parte de uma conexão específica.
ktmon start --capture --type flow -m real-time
pktmon start --capture --type drop -m real-time: Este comando inicia a captura de pacotes em tempo real, mas apenas para pacotes que foram descartados. Ele é útil para a análise de tráfego de rede em tempo real, mas focado em pacotes que foram descartados pela pilha de rede, o que pode ajudar a identificar problemas de rede.
pktmon start --capture --type drop -m real-time
Em resumo, a principal diferença entre os quatro comandos é o tipo de dados que eles capturam e como esses dados são apresentados. Os dois primeiros comandos diferem na forma como capturam os dados (eventos vs pacotes), enquanto os dois últimos comandos diferem no tipo de pacotes que capturam (fluxo vs descarte).
Aqui está um exemplo de saída de captura em tempo real:
PS C:\Users\jbitcore\Desktop> pktmon start --capture --log-mode real-time --flags 0x010
Dados Coletados:
Contadores de pacotes, captura de pacotes
Tipo de Captura:
Todos os pacotes
Componentes Monitorados:
Todos
Filtros de Pacote:
# Nome Endereço IP
- ---- -----------
1 pingDNS 1.1.1.1
Processando...
17:03:49.694956300 PktGroupId 562949953421682, PktNumber 1, Aparência 1, Direção Tx , Tipo Ethernet , Componente 72, Borda 1, Filtro 1, OriginalSize 74, LoggedSize 74
AA-BB-CC-DD-EE-FF > AA-BB-CC-DD-EE-FF, ethertype IPv4 (0x0800), length 74: 192.168.1.13 > 1.1.1.1: ICMP echo request, id 1, seq 8454, length 40
17:03:49.694967700 PktGroupId 562949953421682, PktNumber 1, Aparência 2, Direção Tx , Tipo Ethernet , Componente 29, Borda 1, Filtro 1, OriginalSize 74, LoggedSize 74
AA-BB-CC-DD-EE-FF > AA-BB-CC-DD-EE-FF, ethertype IPv4 (0x0800), length 74: 192.168.1.13 > 1.1.1.1: ICMP echo request, id 1, seq 8454, length 40
17:03:49.694971300 PktGroupId 562949953421682, PktNumber 1, Aparência 3, Direção Tx , Tipo WiFi , Componente 29, Borda 2, Filtro 1, OriginalSize 74, LoggedSize 74
BSSID:AA-BB-CC-DD-EE-FF DA:AA-BB-CC-DD-EE-FF SA:AA-BB-CC-DD-EE-FF Assoc Response IV:a4c93 Pad 1 KeyID 0
17:03:49.694974000 PktGroupId 562949953421682, PktNumber 1, Aparência 4, Direção Tx , Tipo Ethernet , Componente 30, Borda 1, Filtro 1, OriginalSize 74, LoggedSize 74
AA-BB-CC-DD-EE-FF > AA-BB-CC-DD-EE-FF, ethertype IPv4 (0x0800), length 74: 192.168.1.13 > 1.1.1.1: ICMP echo request, id 1, seq 8454, length 40
17:03:49.694990600 PktGroupId 562949953421682, PktNumber 1, Aparência 5, Direção Tx , Tipo WiFi , Componente 30, Borda 2, Filtro 1, OriginalSize 74, LoggedSize 74
BSSID:AA-BB-CC-DD-EE-FF DA:AA-BB-CC-DD-EE-FF SA:AA-BB-CC-DD-EE-FF Assoc Response IV:a4c93 Pad 1 KeyID 0
17:03:49.694993200 PktGroupId 562949953421682, PktNumber 1, Aparência 6, Direção Tx , Tipo Ethernet , Componente 31, Borda 1, Filtro 1, OriginalSize 74, LoggedSize 74
AA-BB-CC-DD-EE-FF > AA-BB-CC-DD-EE-FF, ethertype IPv4 (0x0800), length 74: 192.168.1.13 > 1.1.1.1: ICMP echo request, id 1, seq 8454, length 40
17:03:49.695023900 PktGroupId 562949953421682, PktNumber 1, Aparência 7, Direção Tx , Tipo WiFi , Componente 31, Borda 2, Filtro 1, OriginalSize 92, LoggedSize 92
BSSID:10-C2-5A-15-20-DC SA:AA-BB-CC-DD-EE-FF DA:10-C2-5A-15-20-DC LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Ethernet (0x000000), ethertype IPv4 (0x0800), length 60: 192.168.1.13 > 1.1.1.1: ICMP echo request, id 1, seq 8454, length 40
17:03:49.695026600 PktGroupId 562949953421682, PktNumber 1, Aparência 8, Direção Tx , Tipo WiFi , Componente 32, Borda 1, Filtro 1, OriginalSize 92, LoggedSize 92
BSSID:10-C2-5A-15-20-DC SA:AA-BB-CC-DD-EE-FF DA:10-C2-5A-15-20-DC LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Ethernet (0x000000), ethertype IPv4 (0x0800), length 60: 192.168.1.13 > 1.1.1.1: ICMP echo request, id 1, seq 8454, length 40
17:03:49.695031100 PktGroupId 562949953421682, PktNumber 1, Aparência 9, Direção Tx , Tipo WiFi , Componente 32, Borda 2, Filtro 1, OriginalSize 92, LoggedSize 92
BSSID:10-C2-5A-15-20-DC SA:AA-BB-CC-DD-EE-FF DA:10-C2-5A-15-20-DC LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Ethernet (0x000000), ethertype IPv4 (0x0800), length 60: 192.168.1.13 > 1.1.1.1: ICMP echo request, id 1, seq 8454, length 40
17:03:49.695033500 PktGroupId 562949953421682, PktNumber 1, Aparência 10, Direção Tx , Tipo WiFi , Componente 43, Borda 1, Filtro 1, OriginalSize 92, LoggedSize 92
BSSID:10-C2-5A-15-20-DC SA:AA-BB-CC-DD-EE-FF DA:10-C2-5A-15-20-DC LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Ethernet (0x000000), ethertype IPv4 (0x0800), length 60: 192.168.1.13 > 1.1.1.1: ICMP echo request, id 1, seq 8454, length 40
17:03:49.695040900 PktGroupId 562949953421682, PktNumber 1, Aparência 11, Direção Tx , Tipo WiFi , Componente 43, Borda 2, Filtro 1, OriginalSize 92, LoggedSize 92
BSSID:10-C2-5A-15-20-DC SA:AA-BB-CC-DD-EE-FF DA:10-C2-5A-15-20-DC LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Ethernet (0x000000), ethertype IPv4 (0x0800), length 60: 192.168.1.13 > 1.1.1.1: ICMP echo request, id 1, seq 8454, length 40
17:03:49.695044000 PktGroupId 562949953421682, PktNumber 1, Aparência 12, Direção Tx , Tipo WiFi , Componente 12, Borda 1, Filtro 1, OriginalSize 92, LoggedSize 92
BSSID:10-C2-5A-15-20-DC SA:AA-BB-CC-DD-EE-FF DA:10-C2-5A-15-20-DC LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Ethernet (0x000000), ethertype IPv4 (0x0800), length 60: 192.168.1.13 > 1.1.1.1: ICMP echo request, id 1, seq 8454, length 40
17:03:49.717574000 PktGroupId 1529, PktNumber 1, Aparência 1, Direção Rx , Tipo WiFi , Componente 12, Borda 1, Filtro 1, OriginalSize 92, LoggedSize 92
DA:AA-BB-CC-DD-EE-FF BSSID:10-C2-5A-15-20-DC SA:AA-BB-CC-DD-EE-FF Data IV:3aaaa Pad 0 KeyID 0
17:03:49.717587500 PktGroupId 1529, PktNumber 1, Aparência 2, Direção Rx , Tipo WiFi , Componente 43, Borda 2, Filtro 1, OriginalSize 92, LoggedSize 92
DA:AA-BB-CC-DD-EE-FF BSSID:10-C2-5A-15-20-DC SA:AA-BB-CC-DD-EE-FF Data IV:3aaaa Pad 0 KeyID 0
17:03:49.717601100 PktGroupId 1529, PktNumber 1, Aparência 3, Direção Rx , Tipo WiFi , Componente 43, Borda 1, Filtro 1, OriginalSize 92, LoggedSize 92
DA:AA-BB-CC-DD-EE-FF BSSID:10-C2-5A-15-20-DC SA:AA-BB-CC-DD-EE-FF Data IV:3aaaa Pad 0 KeyID 0
17:03:49.717604900 PktGroupId 1529, PktNumber 1, Aparência 4, Direção Rx , Tipo WiFi , Componente 32, Borda 2, Filtro 1, OriginalSize 92, LoggedSize 92
DA:AA-BB-CC-DD-EE-FF BSSID:10-C2-5A-15-20-DC SA:AA-BB-CC-DD-EE-FF Data IV:3aaaa Pad 0 KeyID 0
17:03:49.717608400 PktGroupId 1529, PktNumber 1, Aparência 5, Direção Rx , Tipo WiFi , Componente 32, Borda 1, Filtro 1, OriginalSize 92, LoggedSize 92
DA:AA-BB-CC-DD-EE-FF BSSID:10-C2-5A-15-20-DC SA:AA-BB-CC-DD-EE-FF Data IV:3aaaa Pad 0 KeyID 0
17:03:49.717610500 PktGroupId 1529, PktNumber 1, Aparência 6, Direção Rx , Tipo WiFi , Componente 31, Borda 2, Filtro 1, OriginalSize 92, LoggedSize 92
DA:AA-BB-CC-DD-EE-FF BSSID:10-C2-5A-15-20-DC SA:AA-BB-CC-DD-EE-FF Data IV:3aaaa Pad 0 KeyID 0
17:03:49.717629300 PktGroupId 1529, PktNumber 1, Aparência 7, Direção Rx , Tipo Ethernet , Componente 31, Borda 1, Filtro 1, OriginalSize 74, LoggedSize 74
AA-BB-CC-DD-EE-FF > AA-BB-CC-DD-EE-FF, ethertype IPv4 (0x0800), length 74: 1.1.1.1 > 192.168.1.13: ICMP echo reply, id 1, seq 8454, length 40
17:03:49.717631800 PktGroupId 1529, PktNumber 1, Aparência 8, Direção Rx , Tipo WiFi , Componente 30, Borda 2, Filtro 1, OriginalSize 74, LoggedSize 74
unknown 802.11 frame type (3)
17:03:49.717682000 PktGroupId 1529, PktNumber 1, Aparência 9, Direção Rx , Tipo Ethernet , Componente 30, Borda 1, Filtro 1, OriginalSize 74, LoggedSize 74
AA-BB-CC-DD-EE-FF > AA-BB-CC-DD-EE-FF, ethertype IPv4 (0x0800), length 74: 1.1.1.1 > 192.168.1.13: ICMP echo reply, id 1, seq 8454, length 40
17:03:49.717686300 PktGroupId 1529, PktNumber 1, Aparência 10, Direção Rx , Tipo Ethernet , Componente 67, Borda 1, Filtro 1, OriginalSize 74, LoggedSize 74
AA-BB-CC-DD-EE-FF > AA-BB-CC-DD-EE-FF, ethertype IPv4 (0x0800), length 74: 1.1.1.1 > 192.168.1.13: ICMP echo reply, id 1, seq 8454, length 40
17:03:49.717703100 PktGroupId 1529, PktNumber 1, Aparência 11, Direção Rx , Tipo Ethernet , Componente 68, Borda 1, Filtro 1, OriginalSize 74, LoggedSize 74
AA-BB-CC-DD-EE-FF > AA-BB-CC-DD-EE-FF, ethertype IPv4 (0x0800), length 74: 1.1.1.1 > 192.168.1.13: ICMP echo reply, id 1, seq 8454, length 40
17:03:49.717706000 PktGroupId 1529, PktNumber 1, Aparência 12, Direção Rx , Tipo Ethernet , Componente 69, Borda 1, Filtro 1, OriginalSize 74, LoggedSize 74
AA-BB-CC-DD-EE-FF > AA-BB-CC-DD-EE-FF, ethertype IPv4 (0x0800), length 74: 1.1.1.1 > 192.168.1.13: ICMP echo reply, id 1, seq 8454, length 40
17:03:49.717709000 PktGroupId 1529, PktNumber 1, Aparência 13, Direção Rx , Tipo Ethernet , Componente 72, Borda 1, Filtro 1, OriginalSize 74, LoggedSize 74
AA-BB-CC-DD-EE-FF > AA-BB-CC-DD-EE-FF, ethertype IPv4 (0x0800), length 74: 1.1.1.1 > 192.168.1.13: ICMP echo reply, id 1, seq 8454, length 40
Liberando logs...
PS C:\Users\jbitcore\Desktop>
Exemplo prático 1
Vamos ver um exemplo prático. Suponha que você queira capturar pacotes que estão sendo enviados de 13.107.21.237.443 para 10.1.1.100.62738. Aqui estão os comandos que você usaria:
# Adicione os filtros
pktmon filter add -i 13.107.21.237 -p 443
pktmon filter add -i 10.1.1.100 -p 62738
# Inicie a captura de pacotes
pktmon start -c
Depois de reproduzir o problema que está sendo diagnosticado, você pode parar a captura e consultar os contadores:
# Pare a captura de pacotes
pktmon stop
# Converta o arquivo de log em um arquivo de texto ou PCAPNG
pktmon etl2txt "C:\Users\user\Desktop\PktMon.etl"
pktmon etl2pcap "C:\Users\user\Desktop\PktMon.etl"
# Abra o arquivo com editor de texto ou Wireshark para visualizar o resultado da captura.
Veja um exemplo do arquivo pronto para leitura:
Exemplo prático 2
Vamos ver um exemplo prático. Suponha que você queira capturar pacotes que estão sendo enviados de 13.107.21.237.443 para 10.1.1.100.62738. Aqui estão os comandos que você usaria:
# Adicione os filtros
pktmon filter add -i 13.107.21.237 -p 443
pktmon filter add -i 10.1.1.100 -p 62738
# Inicie a captura de pacotes
pktmon start -c
Depois de reproduzir o problema que está sendo diagnosticado, você pode parar a captura e consultar os contadores:
# Pare a captura de pacotes
pktmon stop
# Converta o arquivo de log em um arquivo de texto
pktmon format pktmon.etl -o output.txt
# Visualize no terminal com filtro apenas para linha com IP
O comando grep é uma ferramenta comum em sistemas Unix-like, como Linux, e não está disponível por padrão no PowerShell do Windows, entrentanto, você pode usar o cmdlet Select-String para um propósito semelhante. Aqui está como você pode modificar o comando:
Select-String -Path output.txt -Pattern '([0-9]{1,3}\.){3}[0-9]{1,3} > ([0-9]{1,3}\.){3}[0-9]{1,3}'
Este comando irá extrair todas as linhas que contêm um endereço IP seguido por um sinal de maior (>) e outro endereço IP. Isso facilitará a leitura dos logs.