Los datos son enviados a través de una red en partes discretas denominados paquetes. Para un sniffer vea paquetes estos deben arribar sobre la interfaz de red del host ejecutando el sniffer. De todos los paquetes atravesando la red, cuales de estos alcanzan al host del sniffer depende sobre el dispositivo de red conectando los hosts de la red.
Una de las tecnologías de red más populares es Ethernet. Cada dispositivo sobre una red Ethernet, ya sea una computadora, router, o sniffer de hardware, tiene una dirección física de 6 bytes o dirección Ethernet. Esta dirección física o Ethernet es la misma de la dirección MAC. Los dispositivos con múltiples interfaces Ethernet frecuentemente tienen diferentes direcciones físicas para cada interfaz, pero no siempre. Usualmente la dirección física se escribe como una serie de números hexadecimales, cada uno representando un byte, separados por dos puntos (por ejemplo 00:30:65:01:68:c5). La dirección física de un dispositivo no tiene relación con su dirección IP. Los dispositivos sobre una red Ethernet utilizan el Protocolo para Resolución de Direcciones (ARP), con el propósito de determinar la dirección física asociada con una IP, y así conocer donde enviar los datagramas IP.
Un paquete Ethernet también denominado trama, contiene en su cabecera las direcciones físicas de los dispositivos de origen y destino. Usualmente un dispositivo acepta automáticamente una trama cuya dirección de destino coincide con la suya.
Los hubs conectan redes Ethernet tradicionales. Cuando un hub ve una trama entrante, simplemente la difunde por todos sus puertos. Estas redes Ethernet compartidas son inherentemente esnifables; todos los datos transmitidos por cualquier host son visibles para todos los demás hosts sobre el hub.
Debido a la naturaleza de difusión de las redes Ethernet compartidas, los hosts deben ser selectivos con las tramas aceptadas. Un host normalmente rechaza tramas las cuales no están destinadas para este. Pero para obtener un ejemplo más amplia posible, los sniffers utilizan el modo promiscuo de la interfaz para aceptar todas las tramas, incluso aquellas destinadas para otros hosts.
No es una mala idea periódicamente revisar las interfaces de red para ver si están en modo promiscuo sin su conocimiento. Si lo están, un ciberatacante podría haber comprometido la máquina e instalado un sniffer.
El switch Ethernet es más inteligente comparado con el hub. Inspeccionando tramas entrantes, el switch determina la dirección física del host de destino y luego encuentra el puerto en el switch al cual el sistema está conectado. Luego envía el paquete por el puerto correcto.
Debido a un sniffer sobre una red utilizando un switch, solo ve el tráfico entrando y saliendo del host, el modo promiscuo no tiene efecto. Por esta razón el uso de redes utilizando un switch se considera una funcionalidad de seguridad. Después de todo una máquina comprometida sobre una red utilizando un switch únicamente puede hacer sniffing de contraseñas y datos sensibles entrando y saliendo de este, algo lo cual de todos modos, podría hacerse por otros medios (sniffing el teclado o simplemente examinando el sistema de archivos).
Pero aún es posible hacer sniffing del tráfico desde otros hosts en una red Ethernet utilizando un switch, por ejemplo suplantando la identidad de un router local. Herramientas como dsniff y Ettercap facilitan el sniffing en un entorno con un switch. Si bien las redes utilizando un switch mejoran la seguridad previniendo el sniffing casual, se recomienda utilizar criptografía robusta para proteger las contraseñas y los datos sensibles.
Fuentes:
https://github.com/tecknicaltom/dsniff
https://www.ettercap-project.org/
https://en.wikipedia.org/wiki/Packet_analyzer