martes, 2 de junio de 2015

Técnicas basadas en el escaneo de puertos con Nmap

En anteriores artículos vimos como instalar Nmap con soporte para SSL y como se realizaba un Ping Scanning. Ahora vamos a ver un conjunto de técnicas basadas en el escaneo de puertos que nos permitirán descubrir equipos y puertos de manera eficaz:

1. TCP SYN Scan (-sS)

Técnica utilizada en redes rápidas y sin firewalls ya que no finaliza las conexiones que abre y tiene una gran fiabilidad por no depender de las diferentes implementaciones de la pila TCP/IP. El estado de los puertos que nos devuelve puede ser: abierto (recibimos un paquete SYNACK como respuesta), cerrados (recibimos un paquete RST como respuesta) o filtrados (si no recibimos nada o recibimos un ICMP Inalcanzable). Es muy recomendable utilizarlo con la opción -sV para identificar el tipo de servicios descubiertos.
Un ejemplo de uso sería:
root@metempsicosis:~# nmap -Pn -sS -p 21,80 -sV www.agapornizate.es




2. TCP Connect scan (-sT)

Es una técnica poco efectiva porque Nmap no toma el control de los paquetes enviados y es lenta porque cierra todas las conexiones que abre, en vez de utilizar un half-open reset. Además es ruidosa por lo que un IDS/IPS nos detectará. Es una técnica que se utiliza en equipos donde no tenemos permisos para lanzar un -sS.
Un ejemplo de uso sería:
rencinar@metempsicosis:~$ nmap -Pn -sT -p 21,80,8080-8082 -sV www.agapornizate.es



3. UDP SCAN (-sU)

No todos los servicios populares corren sobre TCP. Por ejemplo son servicios UDP los protocolos DNS (puerto 53), SNMP (puertos 161 y 162) y DHCP (puerto 67 y 68). El escaneo UDP es más complejo y lento que el TCP pero los servicios UDP pueden ser igualmente explotados por hackers. Esta técnica puede ser complementada con otras técnicas TCP (-sS) para realizar un barrido más completo de puertos. Los estados de los puertos que nos devuelve son abierto, cerrado (recibimos un ICMP Puerto inalcanzable), filtrado (recibimos cualquier otro paquete ICMP Inalcanzable), abierto/filtrado (sin ninguna respuesta).
Hay que tener en cuenta que las máquinas Linux/Solaris tienen una tasa máxima de respuestas ICMP Puerto Inalcanzable, aunque Nmap en general la detecta bien y adapta su velocidad a ella sin hacer nada.
De la misma manera tendremos problemas a la hora de identificar el estado abierto/filtrado que no asegura que el puerto esté abierto o cerrado (deberemos utilizar la opción -sUV para determinar la versión de lo que escucha).
Un ejemplo de uso sería:
rencinar@metempsicosis:~$ nmap -Pn -sU -p 66-77  -sUV www.agapornizate.es



4. IDLE SCAN (-sI) 

Esta técnica explota una "vulnerabilidad" de algunas implementaciones de la pila TCP/IP, consistente en la posibilidad de predecir el identificador de fragmento de los paquetes IP (IP ID), con ello permite extraer información mediante el análisis de las secuencias predecibles del identificador (IPID).
Es una técnica sigilosa porque permite escanear un objetivo sin enviarle un solo paquete, utilizando la propia IP de origen. Para ello necesitamos un tercer equipo "zombie" cuya IP tomaremos para que aparezca como fuente de las sondas desde el punto de vista de la máquina objetivo. Tendremos 2 estados posibles para los puertos: abierto (si hay respuesta) o cerrado/filtrado (si no obtenemos respuesta o es un paquete RST). El "zombie" de confianza no puede ser una máquina al azar ya que necesitaremos que la implementación del la pila TCP/IP genere una secuencia de identificadores IP predecibles. Para localizarlo lanzaremos nmap -P0 -sN -n -v -p 80 --scanflags SYN,ACK subred, y utilizaremos aquel en el que el puerto no esté filtrado.
Un ejemplo de uso sería:
rencinar@metempsicosis:~$ nmap -Pn -p 445 -v -sI 10.0.100.254 10.0.100.34
Donde 10.0.100.254 sería el "zombie" y el 10.0.100.34 el destino.



5. TCP ACK SCAN (-sA)

Esta técnica solo determina si los puertos del objetivo están filtrados o no con el fin de averiguar el conjunto de reglas que aplica un firewall sobre una máquina objetivo, determinando igualmente cuando estas reglas son con estado y a que puertos afectan. Esto se realiza mandando una sonda TCP con el flag ACK activo por lo que el puerto no filtrado responderá con un RST y el filtrado responderá con un ICMP Inalcanzable o sin respuesta.
Un ejemplo de uso sería:
rencinar@metempsicosis:~$ nmap -Pn -sA -p 443-445,3389 -v www.agapornizate.es



6. TCP Null, FIN, Xmas scans (-sN, -sF, -sX)

Esta técnica aprovecha una indefinición 14 en el estándar RFC 793 para provocar una respuesta del objetivo a los paquetes TCP con distintos flag activados, determinando si un puerto está abierto o cerrado. Los equipos compatibles con RFC responderán con un RST a cualquier paquete que no contenga un flag SYN, RST o ACK para puertos cerrados y no emite respuesta para puertos abiertos.
La técnica Null Scan (-sN) envía una sonda sin ningún flag activado, la técnica FIN Scan (-sF) activa el flag FIN y Xmas Scan (-sX) activa los flags FIN, PSH y URG. Los puertos se clasifican en: abiertos/filtrados (sin respuesta), cerrados (recibimos un paquete RST) o filtrados (recibimos un paquete ICMP Inalcanzable). Los resultados de esta técnica solo es fiable en sistemas Unix porque siguen al 100% el RFC 793. El resultado de las 3 opciones es similar.
Un ejemplo de uso sería:
rencinar@metempsicosis:~$ nmap -sN -p 21-25,443,80 -v www.agapornizate.es



7. SCTP INIT Scan (-sY)

Esta técnica es equivalente para el protocolo SCTP a la técnica TCP SYN Scan ya que lanza sondas de inicio de conexión y luego no las cierra. Una respuesta a estas sondas de tipo INIT-ACK indica que el puerto está abierto mientras que un fragmento de tipo ABORT es que el puerto está cerrado además si no hay respuesta o es ICMP Inalcanzable es que el puerto está filtrado.
Un ejemplo de uso sería:
rencinar@metempsicosis:~$ nmap -Pn -sY -p21-25,443,80 -v www.agapornizate.es



8. IP protocol scan (-sO)

Envía sondas IP iterando sobre el campo tipo de protocolo IP en lugar de hacerlo sobre el número de puerto TCP o UDP. Los protocolos se clasifican en: abiertos (respuesta de protocolo indicado), cerrados (respuesta ICMP protocolo inalcanzable), filtrados (cualquier otro tipo ICMP inalcanzable) o abierto/filtrado (no recibimos respuesta).
Un ejemplo de uso sería:
rencinar@metempsicosis:~$ nmap -Pn -v -sO -p1,2,6,17,41 www.agapornizate.es



No hay comentarios:

Publicar un comentario