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].
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
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.
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.
Si te ha gustado Cómo usar el analizador de paquetes PktMon en Windows 10 y te gustaría seguir leyendo contenido similar, puedes visitar la categoría Windows. ¡Y no olvides dejar un comentario 🤗!
Deja una respuesta
Podría interesarte