Técnicas de exploración - TCP Port Scanning

Existen varias técnicas de escaneo de puertos, las cuales varían según las necesidades del auditor pero antes de hablar cada una de ellas debemos entender como opera el protocolo TCP.  Este protocolo trabaja en la capa de trasporte (Capa 4) del modelo de referencia OSI y es un protocolo orientado a conexiones, es decir que antes de comenzar a trasmitir información entre dos host, estos primero deben de sincronizarse y realizar de forma completa lo que se conoce como intercambio de tres vías (Three Way Handshake).

Bits de Control: Concepto FLAGS - Paquete TCP

 

En la cabecera TCP hay 6 flags de 1 bit que pueden tener un valor "0" o "1" según estén desactivadas o activadas, a continuacion tenemos una breve explicacion para cada una de estas:
  • URG: Especifica a la máquina receptora la existencia de información urgente en el flujo de datos.
  • ACK: Se corresponde con una respuesta de correcta recepción de un paquete anterior que se envió a otra máquina.
  • PSH: Indica a la máquina receptora que debe pasar la información a la capa de aplicación (programas) lo más rápido posible.
  • RST: Especifica el reinicio de la conexión entre la máquina receptora y la emisora.
  • SYN: Se utiliza para la sincronización de números de secuencia entre máquinas.
  • FIN: Indica que debe empezar el proceso de fin de conexión.   

 

 

TCP Port Scanning

 


Estas tecnicas nos permiten detectar  los puertos tcp abiertos  de una  máquina y se  hace con fines de seguridad,  pero  también proporciona mucha información  de utilidad a un posible atacante de  nuestra máquina  ya que le permite saber qué aplicaciones tenemos activas  con la posibilidad de  explotar  algún  fallo para ganar acceso no autorizado. 

A continuacion se entrega una descripcion para cada tecnica TCP Scan:

TCP Connect Scan: Es un proceso de exploración de puertos el cual necesita el intercambio de tres vías para poder realizar de forma completa la exploración de puertos. Se llama Connect Scan, ya que implementa una llamada al sistema de tipo Connect, para así saber de forma rápida el estado del puerto. Es un tipo de exploración de puertos ruidosa, es decir que es fácilmente identificada por los sistemas de filtrados de paquetes Firewall, o por los sistemas detectores de intrusos (IDS). Es una exploración de puertos segura (Confiable), en lo referente a las respuestas de  los estados de los puertos, es recomendable para hacer auditorias internas a los sistemas, sin embargo no es recomendable hacerlo con host o maquinas ajenas (Sin previa autorización), ya que puede considerarse como un delito en muchos países.

La siguiente imagen corresponde a un TCP Connect Scan para un puerto que esta abierto (Open):
  



TCP SYN Scan: Es una técnica donde solo se envian paquetes del tipo SYN (inicio de conexión), por cada uno de los puertos que se quieren analizar. Al recibir como respuesta un paquete RST/ACK significa que no existe ningún servicio que escuche por este puerto. Por el contrario, si se recibe un paquete SYN/ACK, podemos afirmar la existencia de un servicio asociado a dicho puerto TCP y en este caso se enviara un paquete RST/ACK para no establecer la conexión y no ser registrados por el sistema objetivo. A diferencia del caso anterior (TCP connect scan), este tipo de exploración de puertos no es tan ruidosa, ya que no termina el proceso de intercambio en tres vías, y algunos Firewalls o IDS no las registran. 

Para saber si el puerto esta cerrado o no, el proceso de TCP SYN Scan debe de hacer lo siguiente: 

Supongamos la comunicación entre un host A y B

• A envía a B una petición de conexión SYN
• B responde con una petición RST/ACK, lo que indica que el puerto esta cerrado
• B responde con una petición SYN/ACK lo que indica que el puerto esta abierto
• A responde con una petición RST para romper la conexión y no terminar el intercambio de tres vías.

La siguiente imagen corresponde a un TCP SYN Scan para un puerto que esta abierto (Open):



TCP FIN Scan: Es una técnica de exploración de puertos que consiste en enviar un paquete FIN a un puerto determinado, con lo cual deberíamos recibir un paquete de reset (RST) si dicho puerto esta cerrado. Esta técnica se aplica principalmente sobre implementaciones de pilas TCP/IP de sistemas Unix. No es recomendable usar este tipo de exploración de puertos con Sistemas Microsoft, ya que la información que se devolverá será un poco confusa y poco valida. El FIN Scan esta pensado para trabajar únicamente con sistemas operacionales que tengan implementaciones de TCP/IP con respecto al documento RFC 793. El FIN Scan tiene como particularidad identificar el estado de un puerto la manera en que reacciona el host victima con respecto a una petición de cierre de conexión en un puerto TCP. 

Para saber si el puerto esta cerrado o no, el proceso de TCP FIN Scan debe de hacer lo siguiente:

Supongamos la comunicación entre un host A y B
 

• El host A manda una petición FIN al host B
• Si Host B responde con una petición RST/ACK, el puerto esta cerrado
• Si host B no responde, posiblemente el puerto esta abierto.

Este tipo de exploración de puertos, es silenciosa y en muchas ocasiones no es registrada por Firewall o IDS, así que puede ser usada por atacantes informáticos.

La siguiente imagen corresponde a un TCP FIN Scan para un puerto que esta abierto (Open)


La siguiente imagen corresponde a un TCP FIN Scan para un puerto que esta Cerrado (Closed):  

TCP Xmas Tree Scan: Es una técnica de exploración de puertos parecida al FIN Scan, ya que también se obtiene como resultado un paquete de Reset (RST) si el puerto esta cerrado. Para el caso de este tipo de exploración de puertos, se  envían paquetes o solicitudes del tipo FIN, URG y PUSH al host que se esta explorando. No es recomendable usar este tipo de exploración de puertos con Sistemas Microsoft, ya que la información que se devolverá será un poco confusa y poco valida. El Xmas Scan esta pensado para trabajar únicamente con sistemas operacionales que tengan implementaciones de TCP/IP con respecto al documento RFC 793. No es recomendable usar este tipo de exploración de puertos con Sistemas Microsoft, ya que la información que se devolverá será un poco confusa y poco valida. Este tipo de exploración es recomendable llevarlo a la practica en sistemas de tipo UNIX, LINUX y *.BSD

La siguiente imagen corresponde a un TCP Xmas Tree Scan para un puerto que esta abierto (Open)


La siguiente imagen corresponde a un TCP Xmas Tree Scan para un puerto que esta Cerrado (Closed):

TCP Null scan: Este tipo de exploración pone a cero todos los indicadores de la cabecera TCP, por lo tanto la exploración debería recibir como resultado un paquete de reset (RST) en los puertos no activos. No es recomendable usar este tipo de exploración de puertos con Sistemas Microsoft, ya que la información que se devolverá será un poco confusa y poco valida. Este tipo de exploración es  Recomendable llevarlo a la practica en sistemas de tipo UNIX, LINUX y *.BSD

La siguiente imagen corresponde a un TCP Null scan para un puerto que esta abierto (Open) 

La siguiente imagen corresponde a un TCP Null scan para un puerto que esta Cerrado (Closed):

Herramientas de Scanning  (NMAP)

 

Son muchas las herramientas a nivel de software para realizar procesos de auditorias de seguridad relacionadas con el scanning de puertos, sin embargo existe una herramienta que es muy completa llamada NMAP (Nmap Security Scanner) y es altamente usada en el mundo de la seguridad informática.
  
Cuadro resumen con los tipos de scanning soportados por Nmap: