Npcap es la biblioteca de captura (y envío) de paquetes del Proyecto Nmap para Microsoft Windows. Implementa la API abierta Pcap utilizando un controlador de kernel de Windows personalizado junto con nuestra compilación para Windows de la excelente biblioteca libpcap. Esto permite que el software de Windows capture tráfico de red sin procesar (incluidas redes inalámbricas, Ethernet por cable, tráfico localhost y muchas VPN) utilizando una API simple y portátil. Npcap también permite enviar paquetes sin procesar.
Los sistemas Mac y Linux ya incluyen la API Pcap, por lo que Npcap permite que software popular como Nmap y Wireshark se ejecuten en todas estas plataformas (y más) con una única base de código. Npcap comenzó en 2013 como algunas mejoras a la biblioteca WinPcap (ahora descontinuada), pero ha sido reescrita en gran parte desde entonces con cientos de versiones que mejoran la velocidad, la portabilidad, la seguridad y la eficiencia de Npcap.
En particular, Npcap ahora ofrece:
- Captura e inyección de paquetes de loopback: Npcap puede rastrear paquetes de loopback (transmisiones entre servicios en la misma máquina) mediante la Plataforma de filtrado de Windows (WFP). Después de la instalación, Npcap proporciona una interfaz denominada NPF_Loopback, con la descripción “Adaptador para captura de loopback”. Los usuarios de Wireshark pueden elegir este adaptador para capturar todo el tráfico de loopback de la misma manera que otros adaptadores que no son de loopback. La inyección de paquetes también funciona con la función pcap_inject().
- Compatibilidad con todas las versiones actuales de Windows: Npcap es compatible con todas las versiones de Windows y Windows Server que Microsoft aún admite. Para evitar limitarnos solo a las características y API de nuestra versión de Windows compatible más antigua, creamos y enviamos controladores para cada generación de plataforma principal. De esa manera, podemos usar toda la tecnología más reciente de Microsoft en nuestro controlador Win10 y, al mismo tiempo, brindar compatibilidad con sistemas heredados. Npcap funciona en Windows 7 y versiones posteriores mediante el uso de la API de filtro liviano (LWF) de NDIS 6. Es más rápido que la API NDIS 5 obsoleta que utiliza WinPcap. Además, el controlador está firmado con nuestro certificado EV y refrendado por Microsoft para que funcione incluso con los requisitos de firma de controladores más estrictos impuestos por Windows 10. No sabemos exactamente cuándo Microsoft eliminará NDIS 5 o dejará de aplicar las firmas de controladores más antiguas y menos seguras, pero WinPcap dejará de funcionar cuando eso suceda.
- API de Libpcap: Npcap utiliza la excelente biblioteca Libpcap, lo que permite que las aplicaciones de Windows utilicen una API de captura de paquetes portátil que también es compatible con Linux y MacOS. Si bien WinPcap se basó en LibPcap 1.0.0 de 2009, Npcap incluye la última versión de Libpcap junto con todas las mejoras que contribuimos a ellas.
- Compatibilidad con todas las arquitecturas de Windows (x86, x86-64 y ARM): Npcap siempre ha sido compatible con las plataformas Intel x86 de 32 bits y Windows de 64 bits. Pero a partir de la versión 1.50, también admitimos la nueva arquitectura Windows en ARM. Esto permite que las PC utilicen los mismos conjuntos de chips móviles de bajo consumo de energía que los teléfonos inteligentes para una duración de batería durante todo el día y una conectividad LTE siempre activa. Los usuarios ahora pueden ejecutar aplicaciones como Nmap y Wireshark en una nueva generación de dispositivos como la tableta Microsoft Surface Pro X y la computadora portátil Samsung Galaxy Book Go.
- Seguridad adicional: Npcap se puede restringir (opcionalmente) para que solo los administradores puedan rastrear paquetes. Si un usuario que no sea administrador intenta utilizar Npcap a través de software como Nmap o Wireshark, el usuario tendrá que pasar un cuadro de diálogo de Control de cuentas de usuario (UAC) para utilizar el controlador. Esto es conceptualmente similar a UNIX, donde generalmente se requiere acceso raíz para capturar paquetes. También hemos habilitado las funciones de seguridad ASLR y DEP de Windows y hemos firmado el controlador, las DLL y los ejecutables para evitar la manipulación.
- Compatibilidad con WinPcap: el software escrito para WinPcap es generalmente compatible con el código fuente de WinPcap, por lo que simplemente debe volver a compilarse con el SDK de Npcap para recibir todos los beneficios de rendimiento, compatibilidad y seguridad de Npcap. De hecho, incluso existe cierta compatibilidad binaria: el software compilado con el SDK de WinPcap a menudo sigue funcionando con el Npcap moderno. Sin embargo, no sugerimos confiar en eso, ya que los compiladores y otras tecnologías de pila han cambiado drásticamente desde la última versión del SDK de WinPcap en 2013. Al portar software WinPcap heredado a Npcap, sugerimos algunos cambios menores, principalmente para garantizar que su software use Npcap en lugar de WinPcap en sistemas con ambas bibliotecas instaladas. De forma predeterminada, Npcap reemplaza cualquier instalación de software WinPcap anterior con sus propios controladores, pero puede instalar ambos desmarcando la opción de instalación "Modo compatible con WinPcap" de Npcap.
- Captura inalámbrica 802.11 sin procesar (modo de monitor): Npcap se puede configurar para leer tráfico 802.11 sin procesar, incluidos los detalles del encabezado de radiotap, y esta función es compatible directamente con Wireshark.
Npcap ha sido creado por Gordon Lyon.
Que novedades incluye la versión 1.80 See changelog
Released
- En ARM64, Npcap ahora instala las DLL de reenvío puro ARM64X para que Npcap pueda ser utilizado por procesos x86_64 que se ejecutan bajo emulación, así como por procesos x86 y ARM64. Los programadores no necesitan realizar ningún cambio especial para aprovechar esta característica.
- Npcap ahora admite la captura de paquetes en adaptadores de función virtual SR-IOV directamente. Algunos fabricantes, como Intel, ya contaban con soporte porque utilizan un controlador de minipuerto independiente sobre el controlador de función virtual. Otros que utilizan solo una función virtual, como Broadcom, ahora son compatibles.
- Debido a que Microsoft ha dejado de utilizar certificados de editor de software con capacidad de firma en modo kernel, las instalaciones de Npcap en Windows 7, 8 y 8.1 utilizarán el controlador Npcap 1.79 de manera predeterminada. El controlador Npcap 1.80 se puede elegir en la GUI y a través de la opción de línea de comandos /latest_driver=yes si la firma del controlador está deshabilitada en Windows.
- Se solucionaron los errores encontrados con Application Verifier: WSACleanup() no se estaba llamando en algunos casos y, en otros, se llamaba desde la función DllMain() de wpcap.dll, que Microsoft advierte que puede causar bloqueos.
- Se corrigió un bloqueo de pantalla azul debido a una condición de carrera entre NPF_DetachAdapter y NPF_Cleanup al cerrar un controlador de captura.
- Se actualizó el sistema de compilación a Visual Studio 2022. Esta versión impide la compilación de controladores para versiones anteriores de Windows, por lo que el controlador npcap.sys para Windows 7 a 8.1 aún se compila en Visual Studio 2019.