Cómo usar el analizador de paquetes PktMon en Windows 10

Windows 10 ofrece una herramienta de análisis de red, PktMon.exe, para monitorear la distribución interna de paquetes y los informes de caída de paquetes. Esta herramienta puede ayudarnos a investigar la red y a eliminar latencias, identificar aplicaciones vulnerables y, cuando se utiliza con un conjunto de herramientas opcionales, puede proporcionar una visión más completa de las métricas clave.

Mientras que los usuarios de Linux siempre han tenido la herramienta tcpdump para rastrear la red, los usuarios de Windows teníamos que instalar software de terceros como Microsoft Network Monitor y Wireshark.

Dónde encontrar el analizador de paquetes PktMon.exe en Windows 10

PktMon o Packet Monitor es un nuevo analizador de red (sniffer) que puede ser utilizado para el diagnóstico de la red y la captura y monitoreo de paquetes. Se encuentra en la carpeta del sistema (C:\Windows\System32\pktmon.exe), lo que también nos permite ejecutarlo desde la línea de comandos usando la utilidad Ejecutar o PowerShell.

¿Cómo ejecuto Packet Monitor en Windows 10?

Para lanzar Packet Monitor, primero debemos abrir una ventana de línea de comandos.

  • Presiona CTRL+R para abrir Ejecutar y escribe cmd, luego presiona Enter o haz clic en Aceptar.
  • En la línea de comandos, escribe «pktmon.exe» y presiona Enter.

¿Cómo funciona PktMon?

Si ejecutamos la ayuda de PktMon escribiendo «pktmon help» en la línea de comandos, esto es lo que nos devuelve:

filter     Administra los filtros de paquete.
comp       Administra los componentes registrados.
reset      Restablece los contadores a cero.
start      Inicia la supervisión de paquetes.
stop       Para la supervisión.
format     Convierte el archivo de registro a texto.
unload     Descarga el controlador PktMon.
help       Muestra el texto de ayuda de un comando.

Y si necesitamos más ayuda con un comando en particular, podemos consultar la ayuda para ese comando de la siguiente manera:

pktmon filter help

Con lo que, en este ejemplo del comando «filter», obtendremos la siguiente información:

pktmon filter { list | add | remove } [OPTIONS | help]

Comandos:
list      Muestra los filtros de paquete activos.
add       Agrega un filtro para controlar los paquetes que se notifican.
remove    Quita todos los filtros.

Cómo usar PktMon para monitorear el tráfico de la red

Vamos a ver un ejemplo de cómo usar PktMon para monitorear el tráfico de la red. Supongamos que queremos supervisar un puerto en un equipo donde suele dar problemas. Esto es lo que necesitamos:

  • Crear un filtro para monitorear el puerto
  • Comenzar la monitorización
  • Exportar los registros a un formato legible

Crear un filtro

La principal opción que permite rastrear el tráfico es el filtro. Usando esta opción, podemos crear un filtro para selecionar qué paquetes serán monitoreados, según el marco Ethernet, el encabezado IP, el encabezado TCP y el encapsulamiento.

Si ejecutamos el comando pktmon filter add help, obtenemos la información completa sobre cómo podemos crear un filtro nuevo.

Así que, volviendo al tema, en este ejemplo trabajaremos con el puerto 1066. Este podría ser el puerto que utilizaría una aplicación que está empezando a dar problemas de conectividad.

Abre una línea de comandos o PowerShell con privilegios administrativos y crea un filtro de paquetes usando el comando pktmon filter add [nombre] -p [puerto].

Crear un filtro PktMon
pktmon filter add DominioGeek -p 1066

Para eliminar el filtro que hemos creado podemos ejecutar el comando pktmon filter remove [nombre], o bien, pktmon filter remove para eliminar todos los filtros que hayamos creado.

Comenzar a monitorear

Cómo no es una utilidad automática que se ejecute en segundo plano, sino a pedido, debemos comenzar a monitorear manualmente. Ejecuta el siguiente comando para iniciar el monitoreo del filtro:

pktmon start --etw -p 0

Esto empezará la captura de paquetes y creará un archivo de registro en la ubicación por defecto (C:\WINDOWS\system32\PktMon.etl). De la misma manera, tendremos que detener manualmente la monitorización usando el argumento de parada stop para detener el registro. Si no detemos el monitoreo, terminará automáticamente cuando apaguemos el equipo. Si ejecutamos el comando con -p 0, capturará 128 bytes del paquete, es decir, el paquete completo.

Una vez que pktmon es ejecutado, registrará todos los paquetes de TODAS las interfaces de red. Para capturar el paquete completo y solo desde un dispositivo de red específico, podemos utilizar, como ya hemos visto, el argumento -p 0 (capturar el paquete completo) y -c 6 (capturar solo desde el adaptador con ID 6).

Para determinar el ID de nuestro adaptador, podemos ejecutar el comando pktmon comp list.

Exportar el registro a un formato legible

El archivo de registro se guarda en el archivo PktMon.etl, que puede ser convertido a un formato legible usando el siguiente comando:

pktmon format PktMon.etl -o monitoreo-puerto-1066.txt
Exportar registro PktMon a un archivo de texto .txt

De esta manera, obtenemos un archivo .txt con los registros, que puede ser abierto en el Bloc de Notas o nuestro editor de texto favorito. Sin embargo, para beneificarnos de los datos obtenidos, debemos descargar e instalar Microsoft Network Monitor y utilizarlo para ver el archivo ETL. Usando el Network Monitor, podemos ver el paquete completo que ha sido enviado, incluyendo cualquier información de texto.

Registro PktMon en formato .txt

Monitoreo en tiempo real

Podemos activar la monitorización en tiempo real usando el argumento -l real-time. Esto hará que los paquetes capturados se muestren directamente en la pantalla, y también que se guarden en el archivo ETL.

Convertir registro ETL a formato PCAPNG

Microsoft también añadió la posibilidad de convertir los archivos ETL al formato PCAPNG para que puedan ser analizados en programas de terceros como Wireshark. Para ello, utilizaríamos el comando pktmon pcapng [registro.etl] -o [registro.pcapng].

Podemos ejecutar el comando pktmon pcapng help para obtener más información.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Send this to a friend