Mostrando entradas con la etiqueta Wireshark. Mostrar todas las entradas
Mostrando entradas con la etiqueta Wireshark. Mostrar todas las entradas

domingo, marzo 06, 2016

Wireshark no encuentra las interfaces en Windows 10: "No interfaces found"




Wireshark es una herramienta fundamental tanto para formarse como para realizar diagnósticos en entornos de red reales, así que instalarla en tu PC con Windows y descubrir que no encuentra ninguna interfaz de red puede ser una desagradable sorpresa más común de lo que podría parecer.

Wireshark utiliza WinPcap (Windows Packet Capture) como librería para capturar paquetes y su instalación está incluída opcionalmente en el proceso de instalación del propio Wireshark, por lo que si hemos declinado su instalación previamente lo primero que deberíamos intentar es bien reinstalar Wireshark y aceptar la instalación de WinPcap, bien instalar WinPcap por separado.

Por otra parte, WinPcap utiliza el driver NPF (Netgroup Packet Filter) para realizar el esnifado y el trabajo de captura de los paquetes. NPF se carga a través del servicio del mismo nombre, servicio que debería arrancar bajo demanda al iniciarse Wireshark. Para ver el estado del servicio abrimos una consola de línea de comandos en modo Administrador. Podemos hacerlo de unos cuantos modos, por ejemplo:

  • Si pulsamos la tecla de Windows y escribimos "cmd" debería aparecernos entre las aplicaciones posibles el "Símbolo del sistema", pulsando con el botón derecho sobre la aplicación aparece la opción "Ejecutar como administrador".

  •  Pulsando la tecla de Windows conjuntamente con la letra X, o pulsando con el botón derecho sobre el símbolo de Windows en la barra de tareas, se desplegará un menú donde directamente tendremos la opción "Símbolo del sistema (administrador)".

Una vez iniciada la consola podemos ver el estado del servicio NPF con los comandos sc query npf y sc qc npf :

C:\WINDOWS\system32>sc query npf

NOMBRE_DE_SERVICIO: npf
        TIPO                         : 1  KERNEL_DRIVER
        ESTADO                       : 1  STOPPED
        CÓDIGO_DE_SALIDA_DE_WIN32    : 1077  (0x435)
        CÓDIGO_DE_SALIDA_DEL_SERVICIO: 0  (0x0)
        PUNTO_DE_CONTROL             : 0x0
        ESPERA                       : 0x0


C:\WINDOWS\system32>sc qc npf
[SC] QueryServiceConfig CORRECTO

NOMBRE_SERVICIO: npf
        TIPO               : 1  KERNEL_DRIVER
        TIPO_INICIO        : 3   DEMAND_START
        CONTROL_ERROR      : 1   NORMAL
        NOMBRE_RUTA_BINARIO: system32\drivers\npf.sys
        GRUPO_ORDEN_CARGA  :
        ETIQUETA           : 0
        NOMBRE_MOSTRAR     : NetGroup Packet Filter Driver
        DEPENDENCIAS       :
        NOMBRE_INICIO_SERVICIO:




Por defecto el servicio estará parado y el modo de arranque es "bajo demanda", lo que significa que arranca cuando es invocado por alguna aplicación. Lo peor es que es posible que iniciar Wireshark de manera normal no arranque el servicio NPF. Para solucionar el problema tenemos dos opciones:

  • Arrancar el servicio manualmente con el comando sc start npf :

C:\WINDOWS\system32>sc start npf

NOMBRE_SERVICIO: npf
        TIPO               : 1  KERNEL_DRIVER
        ESTADO             : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        CÓD_SALIDA_WIN32   : 0  (0x0)
        CÓD_SALIDA_SERVICIO: 0  (0x0)
        PUNTO_COMPROB.     : 0x0
        INDICACIÓN_INICIO  : 0x0
        PID                : 0
        MARCAS         :


  • Arrancar Wireshark como Administrador, en cuyo caso el servicio NPF sí arranca correctamente:


Wireshark volverá a detectar las interfaces de red de la máquina en ambos casos (puede ser necesario refrescar la detección de interfaces pulsando F5 o en el menú Capture > Refresh Interfaces):



Para no tener que repetir el proceso cada vez que reiniciamos la máquina podemos bien hacer que el servicio arranque con el inicio de la máquina, bien hacer que Wireshark arranque siempre bajo permisos de administrador:

  • Para hacer que el servicio arranque siempre con el inicio de la máquina debemos ejecutar el comando sc config npf start=system :

C:\WINDOWS\system32>sc config npf start=system
[SC] ChangeServiceConfig CORRECTO


Podemos ver el cambio en el estado del servicio:

C:\WINDOWS\system32>sc qc npf
[SC] QueryServiceConfig CORRECTO

NOMBRE_SERVICIO: npf
        TIPO               : 1  KERNEL_DRIVER
        TIPO_INICIO        : 1   SYSTEM_START
        CONTROL_ERROR      : 1   NORMAL
        NOMBRE_RUTA_BINARIO: system32\drivers\npf.sys
        GRUPO_ORDEN_CARGA  :
        ETIQUETA           : 0
        NOMBRE_MOSTRAR     : NetGroup Packet Filter Driver
        DEPENDENCIAS       :
        NOMBRE_INICIO_SERVICIO:


  • Para hacer que Wireshark arranque siempre bajo permisos de administrador modificamos las propiedas del ejecutable, que por defecto se encuentra en C:\Program Files\Wireshark\Wireshark.exe, pulsando con el botón derecho sobre él y eligiendo "Propiedades". Bajo la pestaña "Compatibilidad" marcamos "Ejecutar este programa como administrador":