Realizar un escaneo de ventana en Nmap

NmapNmapBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá a realizar un barrido de ventanas en Nmap, una habilidad valiosa en la seguridad de redes. El laboratorio comienza con la ejecución de un barrido de ventanas básico en una dirección IP objetivo, luego continúa con el barrido de un rango de puertos específicos. También agregará detalle al barrido, guardará los resultados en un archivo, analizará el barrido en la terminal Xfce y lo comparará con un barrido ACK. Esta experiencia práctica mejorará su comprensión de las capacidades de barrido de ventanas de Nmap.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/output_formats("Output Formats") nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/scan_types("Scan Types and Techniques") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/verbosity("Verbosity Levels") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") subgraph Lab Skills nmap/output_formats -.-> lab-547107{{"Realizar un escaneo de ventana en Nmap"}} nmap/save_output -.-> lab-547107{{"Realizar un escaneo de ventana en Nmap"}} nmap/port_scanning -.-> lab-547107{{"Realizar un escaneo de ventana en Nmap"}} nmap/scan_types -.-> lab-547107{{"Realizar un escaneo de ventana en Nmap"}} nmap/target_specification -.-> lab-547107{{"Realizar un escaneo de ventana en Nmap"}} nmap/verbosity -.-> lab-547107{{"Realizar un escaneo de ventana en Nmap"}} nmap/service_detection -.-> lab-547107{{"Realizar un escaneo de ventana en Nmap"}} end

Ejecutar un barrido de ventanas con nmap -sW 192.168.1.1

En este paso, realizaremos un barrido de ventanas utilizando Nmap. Un barrido de ventanas es un tipo de barrido TCP que a veces puede revelar más información sobre los puertos abiertos y filtrados que otros tipos de barrido. Es particularmente útil cuando hay firewall que puede bloquear otros tipos de barrido.

Antes de comenzar, repasemos brevemente lo que hace un barrido de ventanas. El barrido de ventanas aprovecha una particularidad en algunas implementaciones TCP. Envía un paquete TCP con la bandera SYN establecida al host destino. Si el puerto está abierto, el destino responde con un paquete SYN/ACK. Luego, Nmap examina el tamaño de la ventana TCP de la respuesta. Basado en este tamaño de ventana, Nmap puede determinar si el puerto está abierto o filtrado.

Ahora, ejecutemos el barrido de ventanas. Utilizaremos el siguiente comando:

nmap -sW 192.168.1.1

Reemplace 192.168.1.1 con la dirección IP real del destino que desea escanear. Si no está seguro de qué dirección IP utilizar, puede usar la dirección de bucle 127.0.0.1 que se refiere a su propia máquina.

Abra la terminal Xfce. Puede encontrar el icono de la terminal en el escritorio o en el menú de aplicaciones.

En la terminal, escriba el siguiente comando y presione Enter:

nmap -sW 127.0.0.1

Este comando le dice a Nmap que realice un barrido de ventanas (-sW) en la dirección de bucle (127.0.0.1).

Debería ver una salida similar a la siguiente:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000072s latency).
Other addresses for localhost (alias(es)): localhost

PORT     STATE  SERVICE
135/tcp  closed msrpc
139/tcp  closed netbios-ssn
445/tcp  closed microsoft-ds

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

La salida muestra los puertos abiertos, cerrados o filtrados en la máquina destino. En este ejemplo, los puertos 135, 139 y 445 están cerrados. Los puertos específicos y sus estados variarán dependiendo del sistema destino.

Escanear un rango de puertos con nmap -sW -p 1-100 127.0.0.1

En este paso, extendemos el barrido de ventanas especificando un rango de puertos. Esto nos permite centrar nuestro escaneo en un conjunto específico de puertos, lo que puede ser útil para identificar los servicios que se ejecutan en una máquina destino.

Por defecto, Nmap escanea un conjunto predefinido de puertos comúnmente utilizados. Sin embargo, puede personalizar el escaneo para que apunte a puertos específicos o a un rango de puertos utilizando la opción -p. Esto es particularmente útil cuando desea comprobar si un servicio específico se está ejecutando en un puerto no estándar o cuando desea limitar el tiempo de escaneo centrándose en un conjunto más pequeño de puertos.

Ahora, ejecutemos el barrido de ventanas con un rango de puertos. Utilizaremos el siguiente comando:

nmap -sW -p 1-100 127.0.0.1

Este comando le dice a Nmap que realice un barrido de ventanas (-sW) en los puertos del 1 al 100 (-p 1-100) de la dirección de bucle (127.0.0.1).

Abra la terminal Xfce.

En la terminal, escriba el siguiente comando y presione Enter:

nmap -sW -p 1-100 127.0.0.1

Debería ver una salida similar a la siguiente:

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.000070s latency).
Other addresses for localhost (alias(es)): localhost

PORT    STATE  SERVICE
22/tcp  closed ssh
25/tcp  closed smtp
80/tcp  closed http

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

La salida muestra los puertos abiertos, cerrados o filtrados dentro del rango especificado (1-100) en la máquina destino. En este ejemplo, los puertos 22, 25 y 80 están cerrados. Los puertos específicos y sus estados variarán dependiendo del sistema destino.

Agregar detalle con nmap -v -sW 192.168.1.1

En este paso, agregaremos detalle al barrido de ventanas. El detalle proporciona información más detallada sobre el proceso de barrido, lo que puede ser útil para la depuración o la comprensión de los resultados.

La opción de detalle de Nmap (-v) aumenta la cantidad de información mostrada durante el barrido. Esto puede incluir detalles sobre las fases del barrido, los paquetes que se envían y reciben, y las razones por las que Nmap está tomando ciertas decisiones. Utilizar el detalle puede ser particularmente útil cuando se está intentando diagnosticar problemas de red o cuando se desea entender cómo Nmap está interpretando las respuestas del destino.

Ahora, ejecutemos el barrido de ventanas con detalle. Utilizaremos el siguiente comando:

nmap -v -sW 192.168.1.1

Reemplace 192.168.1.1 con la dirección IP real del destino que desea escanear. Si no está seguro de qué dirección IP utilizar, puede usar la dirección de bucle 127.0.0.1 que se refiere a su propia máquina.

Abra la terminal Xfce.

En la terminal, escriba el siguiente comando y presione Enter:

nmap -v -sW 127.0.0.1

Este comando le dice a Nmap que realice un barrido de ventanas (-sW) en la dirección de bucle (127.0.0.1) y que aumente el nivel de detalle (-v).

Debería ver una salida similar a la siguiente (la salida exacta variará):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
NSE: Loaded 0 scripts for scanning.
Initiating Window Scan at 10:10
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 22/tcp on 127.0.0.1
Discovered open port 80/tcp on 127.0.0.1
Completed Window Scan at 10:10, 0.12s elapsed (1000 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000039s latency).
Other addresses for localhost (alias(es)): localhost

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

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.19 seconds

La salida ahora incluye más información sobre el proceso de barrido, como las horas de inicio y finalización, el número de puertos escaneados y cualquier script que se haya cargado. Los detalles específicos variarán dependiendo del sistema destino y la configuración de Nmap.

Guardar el barrido de ventanas con nmap -sW -oN window.txt 127.0.0.1

En este paso, guardaremos los resultados del barrido de ventanas en un archivo. Esto es útil para un análisis posterior o para compartir los resultados con otros.

Nmap ofrece varias opciones para guardar los resultados del barrido en diferentes formatos. La opción -oN guarda los resultados en un formato "normal" legible por humanos. Este formato es fácil de leer y entender, pero puede no ser adecuado para el análisis automatizado. Otras opciones incluyen -oX para el formato XML y -oS para el formato de "script kiddie".

Ahora, ejecutemos el barrido de ventanas y guardemos los resultados en un archivo llamado window.txt en el directorio ~/project. Utilizaremos el siguiente comando:

nmap -sW -oN window.txt 127.0.0.1

Este comando le dice a Nmap que realice un barrido de ventanas (-sW) en la dirección de bucle (127.0.0.1) y que guarde los resultados en formato normal (-oN) en el archivo window.txt.

Abra la terminal Xfce.

En la terminal, escriba el siguiente comando y presione Enter:

nmap -sW -oN window.txt 127.0.0.1

Debería ver una salida similar a la siguiente:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000070s latency).
Other addresses for localhost (alias(es)): localhost

PORT    STATE  SERVICE
22/tcp  closed ssh
25/tcp  closed smtp
80/tcp  closed http

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

Los resultados del barrido ahora se guardan en el archivo window.txt en su directorio ~/project.

Para verificar que el archivo se creó y contiene los resultados del barrido, puede usar el comando cat para mostrar el contenido del archivo:

cat window.txt

Debería ver el informe de barrido de Nmap en la salida.

## Nmap 7.80 scan initiated Fri Oct 27 10:15:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000070s latency).
Other addresses for localhost (alias(es)): localhost

PORT    STATE  SERVICE
22/tcp  closed ssh
25/tcp  closed smtp
80/tcp  closed http
## Nmap done: 1 IP address (1 host up) scanned in 2.35 seconds

Analizar el barrido de ventanas en la terminal Xfce

En este paso, analizaremos los resultados del barrido de ventanas que guardamos en el archivo window.txt en el paso anterior. Comprender la salida de los barridos de Nmap es crucial para identificar posibles vulnerabilidades y riesgos de seguridad.

El archivo window.txt contiene un informe legible por humanos de los resultados del barrido. El informe incluye información sobre el host objetivo, los puertos que se escanearon y el estado de cada puerto.

Abra la terminal Xfce.

Primero, mostremos el contenido del archivo window.txt usando el comando cat:

cat window.txt

Debería ver una salida similar a la siguiente (la salida exacta dependerá del sistema objetivo y las opciones de barrido utilizadas):

## Nmap 7.80 scan initiated Fri Oct 27 10:15:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000070s latency).
Other addresses for localhost (alias(es)): localhost

PORT    STATE  SERVICE
22/tcp  closed ssh
25/tcp  closed smtp
80/tcp  closed http
## Nmap done: 1 IP address (1 host up) scanned in 2.35 seconds

Analicemos las partes clave de esta salida:

  • Nmap scan report for localhost (127.0.0.1): Esta línea indica que el barrido se realizó en la dirección de bucle 127.0.0.1.
  • Host is up: Esta línea confirma que el host objetivo es alcanzable.
  • PORT STATE SERVICE: Esta sección lista los puertos que se escanearon y sus estados y servicios correspondientes.
  • 22/tcp closed ssh: Esta línea indica que el puerto 22 (SSH) está cerrado.
  • 25/tcp closed smtp: Esta línea indica que el puerto 25 (SMTP) está cerrado.
  • 80/tcp closed http: Esta línea indica que el puerto 80 (HTTP) está cerrado.

La columna STATE es particularmente importante. En un barrido de ventanas, los posibles estados son generalmente open (abierto), closed (cerrado) o filtered (filtrado).

  • open: Indica que el puerto está escuchando conexiones.
  • closed: Indica que el puerto no está escuchando conexiones, pero el host es alcanzable.
  • filtered: Indica que Nmap no puede determinar si el puerto está abierto o cerrado porque el filtrado de red impide que Nmap alcance el puerto.

En este ejemplo, todos los puertos escaneados se reportan como closed. Esto significa que el host objetivo es alcanzable, pero no está aceptando conexiones en estos puertos.

Puede usar esta información para identificar posibles vulnerabilidades o riesgos de seguridad. Por ejemplo, si un puerto está inesperadamente open, puede indicar que un servicio vulnerable está ejecutándose en ese puerto.

Ahora, usemos el comando grep para encontrar los puertos abiertos en el archivo window.txt.

grep "open" window.txt

Si no hay puertos abiertos, el comando no devolverá ninguna salida. En nuestro ejemplo, la salida está vacía.

Comparar con un barrido ACK en la terminal Xfce

En este paso, realizaremos un barrido ACK y compararemos sus resultados con el barrido de ventanas que realizamos anteriormente. Esta comparación nos ayudará a entender las diferencias entre estos dos tipos de barrido y cómo se pueden utilizar para recopilar diferentes tipos de información sobre un sistema objetivo.

Un barrido ACK (-sA) envía paquetes TCP ACK al host objetivo. A diferencia de un barrido SYN, un barrido ACK no intenta establecer una conexión. En cambio, se utiliza para determinar si hay un firewall presente y cómo maneja los paquetes ACK no solicitados.

Si hay un firewall presente y configurado para bloquear los paquetes ACK no solicitados, el barrido ACK reportará todos los puertos como filtered (filtrado). Si no hay un firewall presente o está configurado para permitir los paquetes ACK no solicitados, el barrido ACK reportará los puertos como unfiltered (no filtrado) o closed (cerrado).

Ahora, realicemos un barrido ACK en la dirección de bucle (127.0.0.1) y guardemos los resultados en un archivo llamado ack.txt.

Abra la terminal Xfce.

En la terminal, escriba el siguiente comando y presione Enter:

nmap -sA -oN ack.txt 127.0.0.1

Debería ver una salida similar a la siguiente:

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.000070s latency).
Other addresses for localhost (alias(es)): localhost

PORT    STATE      SERVICE
22/tcp  unfiltered ssh
25/tcp  unfiltered smtp
80/tcp  unfiltered http

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

Ahora, comparemos los resultados del barrido ACK con el barrido de ventanas.

Recuerde la salida del barrido de ventanas (desde window.txt):

## Nmap 7.80 scan initiated Fri Oct 27 10:15:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000070s latency).
Other addresses for localhost (alias(es)): localhost

PORT    STATE  SERVICE
22/tcp  closed ssh
25/tcp  closed smtp
80/tcp  closed http
## Nmap done: 1 IP address (1 host up) scanned in 2.35 seconds

En el barrido de ventanas, los puertos se reportaron como closed (cerrado). En el barrido ACK, los puertos se reportan como unfiltered (no filtrado). Esta diferencia se debe a la forma en que funcionan estos dos tipos de barrido. El barrido de ventanas intenta establecer una conexión, mientras que el barrido ACK solo envía paquetes ACK.

El estado unfiltered en el barrido ACK significa que Nmap no puede determinar si el puerto está abierto o cerrado porque los paquetes ACK no están siendo filtrados. Esto podría indicar que no hay un firewall presente, o que el firewall está configurado para permitir los paquetes ACK no solicitados.

También puede usar el comando cat para mostrar el contenido del archivo ack.txt:

cat ack.txt

Debería ver el informe de barrido de Nmap en la salida.

## Nmap 7.80 scan initiated Fri Oct 27 10:20:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000070s latency).
Other addresses for localhost (alias(es)): localhost

PORT    STATE      SERVICE
22/tcp  unfiltered ssh
25/tcp  unfiltered smtp
80/tcp  unfiltered http

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

Resumen

En este laboratorio, los participantes aprenden a realizar barrido de ventanas en Nmap. Comienzan ejecutando un barrido de ventanas básico usando el comando nmap -sW seguido de una dirección IP, comprendiendo cómo explota las particularidades de la implementación TCP para revelar los estados de los puertos. Luego, escanean un rango de puertos específicos con nmap -sW -p 1-100, agregan detalle al barrido usando -v, y guardan los resultados del barrido en un archivo con -oN. Finalmente, analizan el barrido de ventanas y lo comparan con un barrido ACK en la terminal Xfce.