EEPICA's BLOG eepica@nirvana:~# ps aux blog | grep eepica

Escaneo de puertos - knock, knock, knock ¿Qué tienes allí?

in Security in Technology

Ya sea que se trate de un ataque informático o una auditoría; entre otras, el escaneo de puertos es una de las mejores formas de saber qué servicios tiene disponible una estación de trabajo, servidor, smartphone, etc. Así que a continuación quisiera refrescar un poco tu memoria, antes de que envíes ese "nmap -A -T4"

SYN scan El escaneo SYN, también conocido como escaneo de media-conexión, inicia la secuencia necesaria para establecer una conexión TCP pero la deja inconclusa. Comienza enviando un paquete SYN y espera la respuesta,

  • si el objetivo responde con un paquete SYN+ACK significa que está escuchando en el puerto probado
  • si responde con un paquete RST indica que el puerto está cerrado
  • si no responde tras varios intentos es que el puerto está siendo filtrado por un firewall

UDP scan Se trata de un intento por descubrir los puertos UDP disponibles, a través del envío de datagramas vacíos. La identificación del estado de los puertos se basa en la respuesta obtenida, ésta respuesta puede ser un mensaje de error (puerto abierto) o “ICMP Port Unreachable” (puerto cerrado).

ACK scan Este tipo de escaneo es sustancialmente distinto; no intenta establecer cuáles son los puertos abiertos o cerrados sino crear un mapa de las reglas del firewall. Envía un paquete ACK, si el paquete llega al objetivo este deberá contestar con un paquete RST (esté abierto o cerrado el puerto), si no se recibe respuesta o se recibe un mensaje de error se puede asegurar que el paquete ha sido interceptado por un firewall.

ICMP scan El barrido de ping, permite en ocasiones ideales (ping habilitado) la identificación de elementos disponibles en la red de datos de una forma discreta, ya que no genera mucho ruido y es considerado por muchos administradores un tráfico normal a detectar en la red de datos.

FIN scan Esta técnica intenta cerrar una conexión en lugar de intentar abrirla (como hacen las demás). Se basa en que el protocolo TCP requiere que el sistema operativo responda a un paquete FIN con un paquete RST cuando el puerto esté cerrado y que no responda cuando el puerto esté abierto. De este modo se puede establecer inequívocamente los puertos cerrados pero no permite conocer si los restantes están efectivamente abiertos. Pues la falta de respuesta también podría deberse a que un firewall ha interceptado los mensajes.

Bounce scan Esta técnica aprovecha una falla en el protocolo FTP que permite al usuario configurar un proxy durante la sesión. Esto puede usarse para hacer que el servidor ftp intente conectarse a máquinas en el IP y puerto indicado por el atacante. De este modo se puede realizar un escaneo “por rebote” que mantiene oculto al atacante y que, además, permite escanear la red privada en la que se halla instalado el servidor explotado aprovechando las relaciones de confianza para burlar el firewall.

Version Detection and OS Fingerprinting Cuando el atacante encuentra un puerto abierto procede a analizar la aplicación que lo está gestionando. Para ello se envían distintos mensajes para comparar las respuestas recibidas con patrones conocidos que permitirán identificar progresivamente las aplicaciones en ejecución. Se usa un método similar para identificar el sistema operativo, basándose sobre todo en el hecho de que suelen responder de diferente manera ante peticiones incorrectas.

Estado de puertos El estado de los puertos asociados a un servicio es indispensable en el escaneo y enumeración de los mismos, a partir de éstos un atacante puede determinar el vector y complejidad de ataque a utilizar en caso. El estado de los puertos también permite a adaministradores el análisis de servcios disponibles en la red de datos.Abiertos: Un puerto está abierto si tras de él hay una aplicación aceptando conexiones. Son la principal ambición del atacante, y preocupación del administrador, ya que ellos significan vías para la explotación de potenciales vulnerabilidades.

  • Cerrados: Un puerto está cerrado si es accesible pero tras de él no hay una aplicación aceptando conexiones. Su valor está en que permiten llegar al objetivo propiciando la recolección de información que ayudará a la identificación del sistema operativo.
  • Filtrados: Un puerto está cerrado si los paquetes no llegan al puerto de destino. Probablemente se deba a que se encuentran filtrados por un firewall. Son normalmente inútiles al atacante.
  • No filtrados: Indica que por este puerto se puede llegar al sistema objetivo, independientemente de si está o no siendo utilizado por una aplicación. Sucede cuando se hace un escaneo ACK, que obtiene información sobre si el puerto está o no siendo filtrado por un firewall.
  • Abiertos / Filtrados: Cuando la técnica usada busca generar respuesta de los puertos cerrados, los que no responden son marcados como Abierto | Filtrado. Este estado expresa la capacidad del escáner de decidir si no recibió respuesta porque el puerto está abierto o porque la misma ha sido silenciada por un filtro de paquetes.
  • Cerrados / Filtrados: Un puerto es considerado en este estado si el software de escaneo es incapaz de determinar si un puerto está cerrado o filtrado.

 Ahora, ¿Cuál era el objetivo de este pequeño "recorderis"? Simple, según nuestro objetivo tenemos muchas opciones de escaneo, así que la próxima vez que quieras realizar uno, te invito a hacerte algunas de las siguientes preguntas:

  • ¿Es legal lo que estoy haciendo?
  • ¿Qué me gustaría encontrar?
  • ¿Al otro lado hay un servidor "crítico"?
  • ¿Se trata de un juego?
  • ¿Deseo generar ruido en la red?
  • ¿Saben que estoy aquí?

Un abrazo.

Eepica.

Leave a comment