En múltiples ocasiones, durante un análisis de red, se recurre a herramientas como Nmap para realizar un escaneo de puertos y determinar qué equipos se encuentran activos. Si existe algún sistema de filtrado en dicha red, como un firewall, un IPS, etc. correctamente configurado, estas peticiones que hace Nmap se bloquearán y habrá equipos que serán aparentemente invisibles. Este tipo de escaneo con Nmap se produce enviando algún tipo de paquete IP al equipo, a un puerto determinado y se espera la respuesta para decidir si se trata de un sistema activo con algún servicio disponible dentro de la red, es lo que se conoce como un escaneo activo.
Normalmente, en análisis a nivel de red local o intranet (no por Internet) se suele pasar por alto protocolos de red como ARP que un sistema de filtrado no puede bloquear y que es indispensable para la correcta comunicación entre sistemas. Se puede utilizar el protocolo ARP para descubrir equipos en una red y, además, de una manera silenciosa y rápida, es lo que se denomina escaneo pasivo.
ARP (RFC 826) es el acrónimo de Address Resolution Protocol (Protocolo de resolución de direcciones) y es el protocolo que se utiliza para que una dirección MAC de un dispositivo de red físico se pueda corresponder con una determinada dirección IP dentro de una red. Cada equipo mantiene una caché (caché ARP) con las direcciones que ya ha traducido y su equivalencia para reducir el tiempo de carga.
Durante un escaneo de redes pasivo, no se envía ningún paquete IP a un determinado puerto ni ningún tráfico ICMP Echo Request (ping) sino que se envía una petición a nivel de la capa OSI de enlace, por lo que no se llega a atravesar ningún firewall y el equipo analizado no detectará que está siendo escaneado.
Una herramienta muy útil para aprovechar el protocolo ARP es arping que tiene versiones para Linux y Windows. La forma habitual de utilizar arping es:
arping -c2 -I eth0 -w1 dirección_IP (en linux)
por ejemplo:
arping -c2 -I eth0 -w1 192.168.1.1
ARPING 192.168.1.1 from 192.168.1.94 eth0
Unicast reply from 192.168.1.1 [00:1D:45:ED:8A:3F] 0.778ms
Unicast reply from 192.168.1.1 [00:1D:45:ED:8A:3F] 0.722ms
Sent 2 probes (1 broadcast(s))
Received 2 response(s)
Usando arping con un script, se puede revisar toda una red rápidamente y de forma eficaz. Además, si se utilizan los códigos de las MAC Address de los fabricantes de tarjetas de red que se encuentran en un fichero situado en un sistema Linux en “usr/share/arpwatch/ethercodes.dat”, se puede obtener una aproximación del tipo de máquina revisada sin necesidad de realizar un fingerprinting para obtener el sistema operativo, esto es especialmente útil en los dispositivos de red, switches, routers, etc.
En el siguiente gráfico se puede observar el funcionamiento de un escaneo pasivo mediante el protocolo ARP. El firewall ni ningún mecanismo de filtrado que haya en la red puede detectar ni bloquear este tipo de escaneo:

Otra forma de realizar un escaneo pasivo puede ser utilizando el protocolo SNMP. Simple Network Management Protocol (Protocolo Simple de Administración de Red) es un protocolo de la capa de aplicación que facilita el intercambio de información de administración entre dispositivos de red.
Con un simple snmpget/snmpwalk se puede obtener toda la tabla de direcciones IP y MAC Address asociadas a toda la red.
Ejemplo usando un switch 3COM con el protocolo SNMP activado y la RFC 1213 implementada:
snmpwalk -v 1 -c public 192.168.1.253 IP-MIB::ipNetToMediaPhysAddress
IP-MIB::ipNetToMediaPhysAddress.1001.192.168.1.1 = STRING: 0:1d:45:ed:8a:3f
Nmap también tiene su opción (-PR de PING ARP) para utilizar el protocolo ARP. Mediante un sondeo ARP se obliga a Nmap a que, si recibe una respuesta, no sea necesario enviar ningún paquete IP porque ha comprobado ya que el equipo está activo.
Ejemplo:
Nmap –PR 192.168.1.1
Starting Nmap 5.51 ( http://nmap.org ) at 2011-03-12 18:01 Hora estßndar romance
Nmap scan report for 192.168.1.1
Host is up (0.16s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
443/tcp open https
MAC Address: 00:1D:45:ED:8A:3F (Cisco Systems)
Nmap done: 1 IP address (1 host up) scanned in 19.28 seconds
Otra herramienta muy útil es arp-scan (http://www.nta-monitor.com/tools/arp-scan/) que se autodefine como una herramienta de escaneo ARP y fingerprinting:
arp-scan –interface=eth0 --localnet
Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.8 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.1.1 00:14:7c:42:f1:0c 3Com
192.168.1.4 00:02:b3:bb:5c:09 Intel Corporation
192.168.1.3 00:02:b3:bb:66:98 Intel Corporation
Más información:
http://es.wikipedia.org/wiki/Address_Resolution_Protocol


Comentarios
Hemos cambiado el nombre del artículo a No Intrusivo ya que, como habéis indicado, parece más adecuado. Que no lo detecte un IPS, Firewall, etc no quiere decir que sea pasivo. Gracias por vuestros comentarios.
En éste artículo se habla de cómo escanear la red sin ser necesidad de alertar los firewalls, pues ARP nunca se bloquea a ese nivel. xkill, define más pasivo... hablas ya de por sí tener cisco (VTP y DTP són propietarios de CISCO)... y si usas dlink? Hablas de usar yersinia, arpwatch, p0f y pads... para conseguir al final más o menos lo mismo, pero más lento, creo yo. Ya se que por pasivo se suele referir a usa sniffer, pero esa practica puede hacer que tardes mucho tiempo en completar la tarea y que te detecten, tu mismo lo dices... con paciencia. Si usas las tablas ARP de por ejemplo del firewall o del router obtienes toda la información mucho más rápido.
Hombre, pasivo, lo que se dice pasivo, creo que no es. Por lo demás, buen artículo. Saludos.
Oye!!!, pero esto no es pasivo, no? Se me ocurre otra manera más pasiva... por lo general si tenemos switches cisco tenemos VTP o DTP habilitado... (práctica muy común pero que poco a poco lo van solucionando). Con yersinia habilitas el modo trunk de la boca de red (esta es la única parte activa) y luego con arpwatch, p0f, pads.... y un poco de paciencia identificas direcciones IP, MAC, servicios, fingerprinting de sistemas operativos .... ¿Que te parece? Si quieres borra el comentario y añadelo arriba...
Gracias por la explicación, muy claro todo. saludos
Añadir comentario