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.81 See changelog
Released
- Se agregó soporte de captura completo para paquetes VLAN 802.1q. La etiqueta de trama 802.1q normalmente es eliminada por NDIS antes de que Npcap la encuentre, pero Npcap ahora la restaurará a partir de los metadatos del paquete si el ID de VLAN no es 0. El filtrado con la palabra clave "vlan" ahora también es compatible con capturas en vivo. La opción de instalación /vlan_support obsoleta no tiene impacto en esta función. Corrige el problema n.° 171.
- Se agregó soporte para enviar paquetes VLAN 802.1q. Las tramas Ethernet pasadas a pcap_sendpacket() o pcap_inject() con etiquetas VLAN 802.1q tendrán esas etiquetas convertidas a metadatos NDIS, y la pila NDIS las procesará de manera apropiada. El adaptador debe estar configurado para permitir el tráfico en la VLAN de destino.
- Operaciones de envío de paquetes simplificadas significativamente, especialmente para pcap_sendqueue(), eliminando la copia innecesaria de datos de paquetes. Corrige el problema n.° 555.
- Se solucionó un problema con el instalador donde los certificados de firma de código apropiados para la opción /prior_driver=yes no se instalaban en Windows 7, 8 y 8.1. Esto podía provocar instalaciones fallidas en esas versiones de Windows.
- Se solucionó un problema de diseño en el instalador que impedía que se mostrara la advertencia completa
- cuando se detectaba una instalación de Win10Pcap. Win10Pcap no se ha mantenido activamente desde 2015 y recomendamos desinstalarlo antes de instalar Npcap.
- Npcap ahora admite las instrucciones BPF_MOD y BPF_XOR. Anteriormente, las expresiones de filtro de pcap que usaban los operadores % y ^ generaban un filtrado en modo usuario menos eficiente.
- El controlador Npcap ahora admite una variedad de versiones de NDIS según lo que esté disponible en tiempo de ejecución. Esto nos permitirá admitir funciones más nuevas como URO y marcas de tiempo de hardware cuando estén disponibles, sin necesidad de tener compilaciones separadas para cada versión de NDIS en el momento de la instalación.