Qué es y cómo usar el sniffer de Windows 10

Qué es y cómo usar el sniffer de Windows 10

Roberto Adeva

Desde el lanzamiento de Windows 10 hemos visto cómo desde Redmond no han parado de trabajar en mejorar lo que hasta ahora para la mayoría de usuarios del sistema de Microsoft es la mejor versión. Antes de cada nueva versión o compilación desde la compañía suelen anunciarse las novedades que traerá cada una de ellas, sin embargo, hay en ciertas ocasiones que la compañía incluye ciertas características o funciones sin mencionar nada al respecto. Este es el caso del sniffer de Windows 10, una utilidad disponible en el sistema desde la actualización de octubre de 2018 y que son pocos los usuarios que la han descubierto y utilizado.

Lo cierto es que no se trata de ningún ajuste o configuración que nos permita personalizar ningún aspecto de nuestro escritorio, sino que se trata de una herramienta muy útil para aquellos que quieran controlar cierta actividad o determinar la causa de la latencia de su conexión.

Qué es el sniffer de Windows 10

Se trata de una función específica para controlar o monitorizar la propagación de paquetes de datos, lo cual nos puede ayudar a la hora de detectar ciertos problemas o un aumento de la latencia de nuestra red, identificar las aplicaciones afectadas, etc.

Desde su integración seguro que son muchos los usuarios que han buscado algún sniffer de terceros para controlar o rastrear el tráfico de su red sin saber que el propio sistema disponía de su propio sniffer. Estos rastreadores de paquetes son herramientas de diagnóstico que permiten analizar la red y detectar o diagnosticar problemas de red.

En este caso, el sniffer de Windows 10 es una herramienta basada en línea de comandos y que ha sido bautizada con el nombre de Packet Monitor. Su ejecutable se encuentra en la carpeta System32 de Windows, por lo tanto, significa que podemos lanzar dicha herramienta el símbolo del sistema o Windows PowerShell.

pktmon windows 10

Microsoft nos lo explica de la siguiente forma: «El Monitor de paquetes (Pktmon) es una herramienta de diagnóstico de red entre componentes que se Windows. Se puede usar para la captura de paquetes, la detección de pérdida de paquetes, el filtrado y el recuento de paquetes. La herramienta es especialmente útil en escenarios de virtualización, como redes de contenedores y SDN, porque proporciona visibilidad dentro de la pila de redes. Está disponible en el cuadro a través del comando pktmon.exe y a través de Windows del Centro de administración».

¿Qué funciones ofrece?

  • Supervisión y recuento de paquetes en varias ubicaciones a lo largo de la pila de redes
  • Detección de eliminación de paquetes en varias ubicaciones de pila
  • Filtrado flexible de paquetes en tiempo de ejecución con compatibilidad con encapsulación
  • Compatibilidad general de registro y seguimiento (eventos ETW y WPP)
  • Análisis de registros TXT basado en el análisis de paquetes TcpDump
  • Varios modos de registro: en tiempo real, gran volumen en memoria, varios archivos, circular
  • Compatibilidad con los tipos de medios ethernet, Wi-Fi y banda ancha móvil
  • Compatibilidad con formato PCAPNG

Cómo usar el sniffer PktMon.exe

Para usar Packet Monitor lo primero que tenemos que hacer es abrir una ventana del símbolo del sistema o Windows PowerShell con permisos de administrador. Una vez delante de la línea de comandos, si escribimos pktMon y pulsamos Enter nos encontraremos con que se nos mostrará la sintaxis del comando y los posibles comandos a utilizar.

La sintaxis correcta de PktMon es:

pktmon { filter | list | start | stop | status | unload | counters | reset | etl2txt | etl2pcap | hex2pkt | help } [options]

Siendo los comandos:

  • pktmon filter: Administrar filtros de paquetes.
  • pktmon list: Enumera los componentes de procesamiento de paquetes.
  • pktmon start: Inicie la captura de paquetes y la recopilación de eventos.
  • pktmon stop: Detenga la recopilación de datos.
  • pktmon status: Consultar el estado actual.
  • pktmon unload: Descargue el controlador PktMon.
  • pktmon counters: Mostrar los contadores de paquetes actuales.
  • pktmon reset: Restablezca los contadores de paquetes a cero.
  • pktmon etl2txt: Convierta el archivo de registro al formato de texto.
  • pktmon etl2pcap: Convierta el archivo de registro al formato pcapng.
  • pktmon hex2pkt: Descodificación de paquetes en formato hexadecimal.
  • ayuda de pktmon: Mostrar texto de ayuda para un comando específico.

Si necesitamos obtener más ayuda sobre un comando específico, entonces podemos utilizar el siguiente comando:

Pktmon comando help. Por ejemplo, Pktmon filter help.

Nada más ejecutar esta instrucción se nos mostrará información sobre la sintaxis y los posibles comandos a utilizar para pktmon filter o el comando indicado. Estas son las sintaxis y comandos disponibles para cada caso:

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.

pktmon comp { list | counters } [OPTIONS | help]

Comandos:

  • list: Enumera todos los componentes activos.
  • counters: Muestra los contadores actuales por componente.

pktmon reset[-counters]

Restablece todos los contadores de componentes a cero.

pktmon start [-c { all | nics | [ids…] }] [-d] [–etw [-p size] [-k keywords]]  [-f] [-s] [-r] [-m]

Inicia la supervisión de paquetes.

  • -c, –components: Selecciona los componentes para supervisar. Pueden ser todos los componentes, solo NIC, o una lista de id. de componentes. El valor predeterminado es todos.
    -d, –drop-only: Solo informar paquetes descartados. De manera predeterminada, también se informa la propagación correcta de paquetes.
  • Registro de ETW
    • –etw: Inicia una sesión de registro para la captura de paquetes.
    • -p, –packet-size: Número de bytes que se registrarán de cada paquete. Para registrar siempre todo el paquete, establece el valor en 0. El valor predeterminado es de 128 bytes.
    • -k, –keywords: Máscara de bits hexadecimal (es decir, la suma de las marcas siguientes) que controla qué eventos se registran. De manera predeterminada, se registran todos los eventos.
    • -f, –file-name:  Archivo de registro .etl. El valor predeterminado es PktMon.etl.
    • -s, –file-size: Tamaño máximo del archivo de registro en megabytes. El valor predeterminado es de 512 MB.
  • Modo de registro
    •  -r, –circular: Los nuevos eventos sobrescriben los más antiguos cuando se alcanza el tamaño máximo de archivo.
    •  -m, –multi-file: Se crea un nuevo archivo cuando se alcanza el tamaño máximo de archivo.

pktmon stop

Detiene la supervisión de paquetes y muestra los resultados.

pktmon format log.etl [-o log.txt]

Convierte el archivo de registro a formato de texto.

pktmon unload

Detiene el servicio del controlador PktMon y descarga PktMon.sys. Equivale a ‘sc.exe stop PktMon’.

1 Comentario