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":

18 comentarios:

  1. Excelente artículo (además de que me fue muy útil)
    Muchas gracias

    ResponderEliminar
  2. Excelente artículo 10/10 me funcionó a la perfección.
    Gracias.

    ResponderEliminar
  3. Gracias. No se puede explicar mejor!

    ResponderEliminar
  4. dice cmd que no encuentra el archivo y ejecutandolo como administrador sigue sin interfases

    ResponderEliminar
  5. Gracias, le diste justo al clavo para resolver mi problema, le indique al instalador que no arrancara el wincap al mismo tiempo que wireshark y por eso no me aparecían las interfaces

    ResponderEliminar
  6. Yo he tenido que instalar los drivers del NPF de esta web porque no me aparecía habilitado el servidor:
    https://www.winpcap.org/install/default.htm
    Después he reiniciado y siguiendo las instrucciones todo perfecto!
    Muchas gracias!

    ResponderEliminar
    Respuestas
    1. tuve que hacer lo mismo.
      gracias!

      Eliminar
    2. gracias amigo me funciono, de ahora en adelante siempre comentare las soluciones muchas gracias de verdad

      Eliminar
  7. NPF activo, Wireshark como administrador y sigue sin detectar interfaces de red.

    ResponderEliminar
  8. Muchisimas gracias amigo
    Simplemente instalando el WinPcap funciono :)
    Me reconoce mi tarjeta de red comun y la de virtual box
    Gracias!!!!!!!!!!!!!!!!!!!

    ResponderEliminar
    Respuestas
    1. intente todo y no jalaba con tu comentario fue mas que suficiente ya me funciono correctamente el wireshark buen aporte bro

      Eliminar
  9. A los que no les funcionó pueden intentar con npcap en lugar de npf en todos los comandos (sustituir esa palabra)

    ResponderEliminar
  10. Diciembre 2022, lo solucione también con la opción que dio DavidDro, primero instale Winpcap y posteriormente seguir las instrucciones del manual, gracias!

    ResponderEliminar