Práctica 9-2
Práctica 9-2
Práctica 9-2
TÉCNICAS DE ESCANEO
Este método es utilizado para identificar puertos que tienen servicios asociados que usan como
protocolo de transporte a TCP. Como ya se ha visto en clase, el protocolo TCP es orientado a
conexión y utiliza un three-way handshake para establecer una sesión.
Espera
Esta técnica se basa en el envío de una solicitud de sincronismo (SYN) a la víctima y esperar a
recibir como respuesta un sincronismo y un acuse de recibo (SYN + ACK), pero sin completar la
conexión, es decir, sin enviar el acuse de recibo final. Debido a esto se le llama escaneo SYN o
Half-Open (medio abierto), por el hecho que de la conexión no se completa quedando en estado de
espera.
Si se recibe el SYN + ACK el puerto se determina como abierto, si se recibe un reset (RST) se
identifica como cerrado y si no se recibe respuesta se coloca como filtrado.
La razón para hacer esto es que en la mayoría de los sistemas operativos de servidores, estaciones y
dispositivos de comunicaciones como firewalls y routers, las conexiones en espera se mantienen en
memoria durante un tiempo, pero si no se completan simplemente se eliminan y no se registran en
los logs de eventos, pasando desapercibidas para los administradores y para los sistemas de
prevención de intrusos. Por este motivo esta técnica se suele utilizar en los escaneos iniciales con el
objetivo de no ser detectados.
1
SEGURIDAD Y ALTA DISPONIBILIDAD 2º ASIR
Este es otro tipo de escaneo TCP, pero en esta ocasión se completa la conexión con el objetivo. Si
bien este método disminuye los falsos positivos, toma más tiempo en ejecutarse y adicionalmente
es muy probable que quede un registro de nuestras conexiones en los logs de eventos de los hosts
remotos, lo que podría llamar la atención de un sistema de prevención de intrusos (IPS).
Escaneo UDP
Como su nombre indica esta es una técnica usada para el protocolo de transporte UDP. El escaneo
consiste en el envío de un paquete UDP a los puertos de los hosts remotos en espera de
contestación. Si la respuesta es un mensaje ICMP port-unreacheable el puerto es declarado como
cerrado; si se recibe otro tipo de error ICMP (tipo 3, códigos 1, 2, 9, 10, ó 13) se coloca como
filtrado y si retorna un segmento UDP, entonces el puerto se marca como abierto.
En estos escaneos se manipulan las banderas de la cabecera del segmento TCP para determinar si
un puerto remoto está abierto o cerrado. Lo que cambian son las banderas, pero el concepto es el
mismo: dado que en todos ellos el segmento inicial no es la usual solicitud de sincronismo (SYN),
la respuesta dependerá de la implementación de la pila de TCP/IP del sistema operativo del host
remoto.
De acuerdo al RFC 793, si un puerto está cerrado la recepción de un segmento que no contenga la
bandera reset (RST) ocasionará que el sistema responda con un reset. Por lo tanto, si se recibe un
RST el puerto se marca como cerrado y si no se recibe respuesta se coloca como abierto | filtrado.
Pero no todos los fabricantes implementan el RFC 793 al pie de la letra en las pilas TCP/IP de sus
sistemas operativos, por ejemplo Windows, versiones del Cisco IOS, entre otros, responden con un
RST a este tipo de pruebas inclusive si el puerto está abierto, por lo cual se recomienda
complementar este tipo de escaneo con otros adicionales para mitigar los falsos negativos.
Escaneo ACK
A diferencia de los métodos previos, el propósito del escaneo ACK no es determinar si un puerto
está abierto o cerrado sino comprobar si existe o no un firewall de por medio.
La lógica detrás de esta técnica consiste en enviar un segmento con solo la bandera ACK encendida
al puerto destino de la víctima, si la respuesta es un RST esto implica que el puerto no está filtrado,
es decir que es accesible independientemente de si el puerto está abierto o cerrado, luego, se coloca
como no-filtrado (unfiltered), mientras que aquellos puertos de los que no se reciba respuesta o que
respondan con mensajes de error ICMP se marcan como filtrados.
2
SEGURIDAD Y ALTA DISPONIBILIDAD 2º ASIR
NMAP es sin duda el escáner de puertos más popular entre los profesionales de redes y seguridad
informática, en parte por su facilidad de uso, pero principalmente debido a su versatilidad para
escanear.
Con NMAP se pueden aplicar las técnicas de escaneo descritas anteriormente y otras adicionales
que pueden revisarse en la Guía de Referencia en el sitio web oficial del proyecto,
http://www.nmap.org/.
Otra de las ventajas de este escáner es la posibilidad de ejecutarlo desde la línea de comandos
además de la interfaz gráfica. De hecho inicialmente se desarrolló para Linux y se ejecutaba
exclusivamente en un shell, pero posteriormente se agregó la interfaz gráfica Zenmap y se portó a
la plataforma Windows.
Sintaxis:
Opciones:
-sn : ping scan
-sS : syn/half scan
-sT : tcp/connect scan
-sA : ack scan
-sN : null scan
-sU : udp scan
-sF : fin scan
-sX : xmas scan
-sV : detección de versión de servicios
-O : detección de sistema operativo
-T<0-5>: temporizador, el valor más alto es más rápido
-v : salida detallada
Ejemplos:
Escaneo tipo connect con detección de sistema operativo del host 192.168.1.104:
Los escaneos podrán no coincidir en los puertos descubiertos, debido a que se usaron técnicas
distintas. Adicionalmente notamos que la versión de sistema operativo detectada es Linux.
3
SEGURIDAD Y ALTA DISPONIBILIDAD 2º ASIR
Con se esta práctica se aplicarán los conocimientos adquiridos para escanear un host víctima
usando el escáner de puertos NMAP.
Se debe usar NMAP en una máquina linux y posteriormente se hará uso de la herramienta gráfica
Zenmap para comparar los resultados (se puede hacer uso en windows). El escaneo se va a realizar
sobre el proyecto scanme.nmap.org y se mostrarán los resultados de cada escaneo.
1. Desde la línea de comandos se puede ejecutar nmap -h para ver todas las opciones
disponibles.
2. Ejecutar un escaneo en modo stealth (half open) hacia el servidor scanme.nmap.org.
3. Interpretar el resultado obtenido. ¿Qué indica el estado “filtered”?
4. Ejecutar un escaneo más profundo en modo “connect”, recordad que aunque este tipo de
escaneo es más exacto que el de tipo half-scan, al completar el 3-way-handshake de TCP
nos exponemos a ser detectados. ¿Cuál es el comando que debe ejecutar?
5. Ahora probad a detectar la versión del sistema operativo. ¿Qué comando se debe ejecutar?
6. Comparad los nuevos resultados con los obtenidos previamente. ¿Coinciden? ¿Cuáles son
los nuevos resultados?
7. Ahora probad a realizar lo mismo pero en la interfaz gráfica de Zenmap. ¿Es más fácil?
¿Qué ventajas o desventajas presenta vs la línea de comandos?