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.
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.
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)
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: