Capítulo 5. Obtención de respuesta del servidor ante una petición válida

Un buen cortafuegos debería estar correctamente protegido y tener unas reglas lo suficientemente auditadas como para evitar los principales escaneos, que pueden resumirse en los siguientes:

La idea principal del cortafuegos deberá ser pasar lo más desapercibido posible ante los posibles atacantes, registrando al mismo tiempo los accesos no permitidos de los mismos. La idea de permanecer invisibles es muy importante, de tal forma que si alguien intenta contactar con el cortafuegos los paquetes enviados parezcan desvanecerse en el éter como si no hubiese ninguna máquina con dicha IP. A menudo un ping se descartará sin dar muestras de presencia de algo al otro lado. En cambio ciertos escaneos avanzados con flags tcp podrían ser válidos y por lo tanto no se pueden descartar sin más, obligandonos a responder y por lo tanto revelar nuestra presencia. Para la comprensión de nuestro objetivo siempre deberemos tener en cuenta que frente a un posible atacante la primera medida de defensa es hacernos lo más invisibles posible ante él para frustrar un posible ataque que nos pueda ocasionar mayores trastornos en etapas posteriores.

5.1. Escaneos al puerto de eco

El puerto de eco (echo) se usaba antiguamente para comprobaciones de respuesta de red entre dos máquinas, de tal forma que todo lo que se enviaba a una máquina era devuelto íntegramente exactamente igual a como se enviaba. Este uso ha ido quedando fuera de moda y en varias distribuciones Linux/Unix viene cerrado por defecto, pero es conocida su presencia en otros sistemas como el Solaris de Sun Microsystems. Dado que la mayoría de los administradores conscientes de los peligros que acechan desde internet cierran dichos puertos no debemos esperar que estén abiertos sino que pueden ser cebos realizados con herramientas como portsentry o tcp_wrappers.

Hay dos tipos de conexiones al puerto de eco según el protocolo usado:

5.1.1. Conexiones tcp al puerto de eco

La conexión tcp al puerto de eco es muy interesante para un posible atacante porque requiere una negociación completa en tres pasos (Three-way-handshaking). En realidad ni siquiera se necesita enviar y recibir datos sino que lo importante es que la simple negociación delata la presencia de un posible equipo que se podría convertir en objetivo de un ataque minucioso.

Veamos un ejemplo de conexión mediante tcp al puerto de eco usando un simple telnet:

delorian:~$ telnet xxx.xxx.xxx.xxx echo
Trying xxx.xxx.xxx.xxx...
Connected to xxx.xxx.xxx.xxx.
Escape character is '^]'.
Todo lo que se envia a la maquina de destino se devuelve     
Todo lo que se envia a la maquina de destino se devuelve
^]
telnet> close
Connection closed.

5.1.2. Conexiones udp al puerto de eco

Una simple respuesta del puerto de eco nos es más que suficiente para delatar la presencia de un equipo, por lo que ni siquera necesitamos de una conexión completa tcp.

Veamos un ejemplo de conexión al puerto de eco mediante protocolo udp usando netcat:

vicescu@delorian:~$ nc -v -u  xxx.xxx.xxx.xxx echo   # v=verbose u=udp echo=puerto 7/udp 
remote [xxx.xxx.xxx.xxx] 7 (echo) open
Prueba de envio y recepcion
Prueba de envio y recepcion
vicescu@delorian:~$