Realizar un escaneo TCP FIN en Nmap

NmapBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá a realizar un escaneo FIN de TCP utilizando Nmap. Comenzará realizando un escaneo FIN básico en una dirección IP objetivo, luego escaneará puertos específicos, agregará detalle al escaneo y guardará los resultados. Además, comparará los escaneos FIN con los escaneos TCP y analizará los puertos abiertos en la terminal Xfce. Un escaneo FIN envía un paquete FIN al host objetivo, lo que puede ayudar a evitar ciertos firewall o sistemas de detección de intrusiones.

Ejecutar un escaneo FIN con nmap -sF 192.168.1.1

En este paso, aprenderá a realizar un escaneo FIN utilizando Nmap. Un escaneo FIN es un tipo de escaneo TCP que envía un paquete FIN (finalizar) al host objetivo. A diferencia de un escaneo SYN, que intenta establecer una conexión, un escaneo FIN simplemente envía un paquete FIN y observa la respuesta. Esto puede ser útil para evitar ciertos firewall o sistemas de detección de intrusiones.

Antes de comenzar, aclarémos lo que es un paquete FIN. En la comunicación TCP, la bandera FIN señala el final de una conexión. Cuando un host envía un paquete FIN, es esencialmente decir: "He terminado de enviar datos".

Ahora, realicemos el escaneo FIN. Abra su terminal Xfce.

Ejecute el siguiente comando:

sudo nmap -sF 192.168.1.1
  • -sF: Esta opción le indica a Nmap que realice un escaneo FIN.
  • 192.168.1.1: Esta es la dirección IP objetivo. Reemplace esto con la dirección IP real de la máquina que desea escanear si es diferente.

Es posible que tenga que ajustar la dirección IP 192.168.1.1 para que coincida con la dirección IP de una máquina objetivo accesible desde su VM de LabEx. Si no tiene un objetivo específico en mente, puede usar la dirección IP de su puerta de enlace o de otro dispositivo en su red local. Si no está seguro, puede intentar escanear su propia máquina usando 127.0.0.1 (localhost).

La salida mostrará el estado de cada puerto en la máquina objetivo. Los puertos abiertos generalmente no responderán a un paquete FIN, mientras que los puertos cerrados responderán con un paquete RST (reinicio). Los puertos filtrados pueden no responder en absoluto, lo que dificulta determinar su estado.

Salida de ejemplo (la salida real variará según el objetivo):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00043s latency).
Not shown: 999 closed ports
PORT    STATE    SERVICE
22/tcp  filtered ssh

Nmap done: 1 IP address (1 host up) scanned in 2.18 seconds

En este ejemplo, el puerto 22 (SSH) se muestra como filtrado. Esto significa que Nmap no pudo determinar si el puerto está abierto o cerrado debido a reglas de firewall u otras condiciones de red. La línea "Not shown: 999 closed ports" indica que Nmap no mostró los 999 puertos cerrados para mantener la salida concisa.

Escanear puertos específicos con nmap -sF -p 22,80 127.0.0.1

En el paso anterior, aprendió a realizar un escaneo FIN básico. Ahora, aprenderá a especificar puertos específicos durante un escaneo FIN. Esto es útil cuando desea centrar su escaneo en servicios que probablemente se estén ejecutando en puertos particulares, como SSH (puerto 22) y HTTP (puerto 80).

Especificar los puertos puede reducir significativamente el tiempo de escaneo y hacer los resultados más relevantes. En lugar de escanear todos los 65535 puertos, puede concentrarse en los puertos que más probablemente resulten interesantes.

Abra su terminal Xfce.

Ejecute el siguiente comando:

sudo nmap -sF -p 22,80 127.0.0.1
  • -sF: Esta opción le indica a Nmap que realice un escaneo FIN.
  • -p 22,80: Esta opción especifica que desea escanear los puertos 22 y 80. Puede especificar un solo puerto, un rango de puertos (por ejemplo, 1-100), o una lista separada por comas de puertos.
  • 127.0.0.1: Esta es la dirección IP objetivo, que en este caso es su propia máquina (localhost).

La salida mostrará el estado de los puertos 22 y 80 en su máquina.

Salida de ejemplo:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000027s latency).

PORT   STATE    SERVICE
22/tcp filtered ssh
80/tcp filtered http

Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds

En este ejemplo, ambos puertos 22 y 80 se muestran como filtrados. Esto significa que Nmap no pudo determinar si estos puertos están abiertos o cerrados. Este es un resultado común con los escaneos FIN, especialmente cuando hay firewall.

Agregar detalle con nmap -v -sF 192.168.1.1

En este paso, aprenderá a aumentar el detalle de su escaneo FIN con Nmap. El detalle proporciona información más detallada sobre el proceso de escaneo, lo que puede ser útil para la depuración o la comprensión de los resultados.

La opción -v en Nmap aumenta el nivel de detalle. Puede utilizarla varias veces (por ejemplo, -vv) para una salida aún más detallada.

Abra su terminal Xfce.

Ejecute el siguiente comando:

sudo nmap -v -sF 192.168.1.1
  • -v: Esta opción aumenta el nivel de detalle.
  • -sF: Esta opción le indica a Nmap que realice un escaneo FIN.
  • 192.168.1.1: Esta es la dirección IP objetivo. Recuerde reemplazarla con una dirección IP válida si es necesario.

La salida ahora incluirá más información sobre el escaneo, como los paquetes que se envían y reciben, las razones de ciertas decisiones y el progreso general.

Salida de ejemplo (la salida real variará según el objetivo y las condiciones de red):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
NSE: Loaded 0 scripts for scanning.
Initiating Ping Scan at 10:10
Scanning 192.168.1.1 [2 ports]
Completed Ping Scan at 10:10, 0.00s elapsed (1 total hosts)
Initiating FIN Scan at 10:10
Scanning 192.168.1.1 [1000 ports]
Completed FIN Scan at 10:10, 2.12s elapsed (1000 total ports)
Nmap scan report for 192.168.1.1
Host is up (0.00038s latency).
Not shown: 999 closed ports
PORT    STATE    SERVICE
22/tcp  filtered ssh

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 2.18 seconds
Raw packets sent: 1001 (44.044KB) | Rcvd: 1 (44B)

Tenga en cuenta la información adicional proporcionada, como la carga de los scripts NSE, las fechas y horas de inicio y finalización de los escaneos de ping y FIN, y el número de paquetes enviados y recibidos. Este nivel de detalle puede ser invaluable al depurar problemas de red o analizar los resultados del escaneo.

Guardar los resultados del escaneo FIN con nmap -sF -oN fin.txt 127.0.0.1

En este paso, aprenderá a guardar los resultados de su escaneo FIN con Nmap en un archivo. Esto es útil para un análisis posterior, informes o comparaciones con otros escaneos.

Nmap ofrece varias opciones para guardar los resultados del escaneo en diferentes formatos. La opción -oN guarda los resultados en un formato legible por humanos "normal".

Abra su terminal Xfce.

Ejecute el siguiente comando:

sudo nmap -sF -oN fin.txt 127.0.0.1
  • -sF: Esta opción le indica a Nmap que realice un escaneo FIN.
  • -oN fin.txt: Esta opción especifica que desea guardar los resultados en formato normal en un archivo llamado fin.txt. El archivo se guardará en su directorio actual (~/proyecto).
  • 127.0.0.1: Esta es la dirección IP objetivo, que en este caso es su propia máquina (localhost).

Una vez que se complete el escaneo, puede ver los resultados guardados abriendo el archivo fin.txt con un editor de texto como nano.

nano fin.txt

El archivo contendrá la misma información que se mostró en la pantalla durante el escaneo, pero en un formato estructurado.

Contenido de ejemplo de fin.txt:

## Nmap 7.80 scan initiated Tue Oct 27 10:15:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000027s latency).
Not shown: 999 closed ports
PORT    STATE    SERVICE
22/tcp  filtered ssh

## Nmap done at Tue Oct 27 10:15:02 2023 -- 1 IP address (1 host up) scanned in 1.89 seconds

Ahora puede utilizar este archivo para un análisis o informe adicional.

Comparar el escaneo FIN con el escaneo TCP en la terminal Xfce

En este paso, comparará los resultados de un escaneo FIN con un escaneo de conexión TCP. Esta comparación resaltará las diferencias en cómo estos escaneos identifican los puertos abiertos y cómo los firewall pueden tratar los diferentes.

Un escaneo de conexión TCP (-sT) establece una conexión TCP completa con el objetivo, lo que lo hace más confiable pero también más fácil de detectar. Un escaneo FIN (-sF), por otro lado, envía un paquete FIN, lo que es menos probable que sea registrado por los firewall pero puede no siempre proporcionar resultados precisos.

Abra su terminal Xfce.

Primero, realice un escaneo de conexión TCP en localhost (127.0.0.1):

sudo nmap -sT 127.0.0.1

Este comando intentará establecer una conexión TCP completa con cada puerto de su máquina local.

Luego, realice un escaneo FIN en el mismo objetivo:

sudo nmap -sF 127.0.0.1

Ahora, compare los resultados de los dos escaneos. Es posible que note que el escaneo de conexión TCP identifica más puertos abiertos que el escaneo FIN. Esto se debe a que algunos firewall o sistemas pueden bloquear o ignorar los paquetes FIN, lo que conduce a resultados inexactos.

Salida de ejemplo del escaneo de conexión TCP:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:20 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000026s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
631/tcp  open  ipp
3306/tcp open  mysql

Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds

Salida de ejemplo del escaneo FIN:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:21 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000026s latency).
Not shown: 999 closed ports
PORT    STATE    SERVICE
22/tcp  filtered ssh

Nmap done: 1 IP address (1 host up) scanned in 1.89 seconds

En este ejemplo, el escaneo de conexión TCP muestra los puertos 22, 631 y 3306 como abiertos, mientras que el escaneo FIN solo muestra el puerto 22 como filtrado. Esto demuestra cómo diferentes tipos de escaneo pueden producir diferentes resultados y por qué es importante utilizar una variedad de técnicas al realizar la exploración de red. El estado filtered significa que un firewall, filtro u otro obstáculo de red está bloqueando el puerto, impidiendo que Nmap determine si está abierto o cerrado.

Analizar los puertos abiertos en la terminal Xfce

En este paso, analizará los puertos abiertos identificados en los escaneos anteriores para comprender los servicios que se ejecutan en el sistema objetivo. Esto implica interpretar la salida de Nmap y investigar el propósito de cada puerto abierto.

Abra su terminal Xfce.

Supongamos que realizó un escaneo de conexión TCP (sudo nmap -sT 127.0.0.1) en el paso anterior y obtuvo la siguiente salida:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:20 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000026s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
631/tcp  open  ipp
3306/tcp open  mysql

Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds

Esta salida indica que los puertos 22, 631 y 3306 están abiertos en su máquina local. Ahora, analicemos cada uno de estos puertos:

  • Puerto 22 (ssh): Este puerto se utiliza típicamente para SSH (Secure Shell), un protocolo seguro para el inicio de sesión remoto y la ejecución de comandos. Si este puerto está abierto, significa que un servidor SSH está ejecutándose en su máquina, lo que le permite conectarse a él remotamente.

  • Puerto 631 (ipp): Este puerto se utiliza para IPP (Internet Printing Protocol), un protocolo para la impresión a través de una red. Si este puerto está abierto, significa que un servicio de impresión está ejecutándose en su máquina, lo que le permite imprimir documentos remotamente.

  • Puerto 3306 (mysql): Este puerto es el puerto predeterminado para MySQL, un popular sistema de gestión de bases de datos relacional de código abierto. Si este puerto está abierto, significa que un servidor MySQL está ejecutándose en su máquina, lo que le permite acceder y administrar bases de datos.

Para investigar estos servicios más detenidamente, puede utilizar otras herramientas como netstat o ss para comprobar qué procesos están escuchando en estos puertos. Por ejemplo, para comprobar el proceso que está escuchando en el puerto 22, puede utilizar el siguiente comando:

sudo netstat -tulnp | grep :22

Este comando mostrará el ID del proceso (PID) y el nombre del proceso que está escuchando en el puerto 22.

Salida de ejemplo:

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1234/sshd

Esta salida indica que el proceso sshd (daemon de SSH) está escuchando en el puerto 22.

Al analizar los puertos abiertos y los servicios que se ejecutan en ellos, puede obtener información valiosa sobre la postura de seguridad del sistema objetivo e identificar posibles vulnerabilidades.

Resumen

En este laboratorio, aprendió a realizar un escaneo TCP FIN utilizando Nmap. Empezó realizando un escaneo FIN básico con el comando nmap -sF seguido de una dirección IP objetivo. También aprendió a escanear puertos específicos, agregar detalle al escaneo y guardar los resultados en un archivo. Además, comparó el escaneo FIN con un escaneo TCP y analizó los puertos abiertos en la terminal Xfce. Un escaneo FIN envía un paquete FIN al host objetivo, lo que puede ayudar a evitar ciertos firewall o sistemas de detección de intrusiones.