Ejecutar escaneo TCP Null 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 ejecutar un barrido nulo TCP en Nmap. El laboratorio aborda varios aspectos del barrido nulo, incluyendo la ejecución de un barrido nulo básico en una dirección IP específica, el barrido de un rango de puertos definido, la adición de detalle al barrido, la conservación de los resultados del barrido, la comparación de barridos nulos con barridos SYN y la revisión de los resultados en la terminal Xfce.

Los barridos nulos, donde todas las banderas TCP se establecen en cero, pueden ayudar a determinar los estados de los puertos, pero no siempre pueden ser confiables debido a ciertos firewall o sistemas que descartan paquetes sin banderas. A través de una serie de comandos de Nmap, obtendrá experiencia práctica con diferentes operaciones de barrido nulo.


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/syn_scan("SYN Scan") subgraph Lab Skills nmap/output_formats -.-> lab-547100{{"Ejecutar escaneo TCP Null en Nmap"}} nmap/save_output -.-> lab-547100{{"Ejecutar escaneo TCP Null en Nmap"}} nmap/port_scanning -.-> lab-547100{{"Ejecutar escaneo TCP Null en Nmap"}} nmap/scan_types -.-> lab-547100{{"Ejecutar escaneo TCP Null en Nmap"}} nmap/target_specification -.-> lab-547100{{"Ejecutar escaneo TCP Null en Nmap"}} nmap/verbosity -.-> lab-547100{{"Ejecutar escaneo TCP Null en Nmap"}} nmap/syn_scan -.-> lab-547100{{"Ejecutar escaneo TCP Null en Nmap"}} end

Ejecutar un barrido nulo con nmap -sN 192.168.1.1

En este paso, realizaremos un barrido nulo utilizando Nmap. Un barrido nulo es un tipo de barrido TCP en el que todas las banderas TCP se establecen en cero. Esto significa que no se establecen banderas (SYN, ACK, RST, FIN, URG, PSH) en el encabezado TCP. La respuesta a un barrido nulo puede ayudar a determinar el estado de un puerto.

A continuación, se presenta una breve descripción de cómo funcionan los barridos nulos:

  • Barrido Nulo: Envía un paquete TCP sin banderas establecidas.
  • Puerto Abierto o Filtrado: Si el puerto está abierto o filtrado, no hay respuesta.
  • Puerto Cerrado: Si el puerto está cerrado, el host destino debe responder con un paquete RST (reinicio).

Es importante tener en cuenta que los barridos nulos no siempre son confiables, ya que algunos firewall o sistemas pueden descartar paquetes sin banderas establecidas.

Ejecutemos un barrido nulo contra la dirección IP 192.168.1.1. Abra su terminal Xfce y ejecute el siguiente comando:

sudo nmap -sN 192.168.1.1

Este comando le indica a Nmap que realice un barrido nulo (-sN) contra la dirección IP destino 192.168.1.1. Necesitará privilegios de sudo para ejecutar Nmap.

La salida mostrará el estado de los puertos en la máquina destino. Dado que los barridos nulos a menudo no proporcionan respuestas definitivas, es posible que vea puertos listados como abierto|filtrado o cerrado.

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

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for 192.168.1.1
Host is up (0.00028s latency).
All 1000 scanned ports on 192.168.1.1 are filtered

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

En este ejemplo, los 1000 puertos escaneados se informan como filtrados. Esto significa que Nmap no pudo determinar si los puertos están abiertos o cerrados debido a las reglas de firewall u otras configuraciones de red.

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

En este paso, ampliaremos el uso del barrido nulo especificando un rango de puertos para escanear. Esto nos permite centrar el escaneo en los puertos de interés específicos, en lugar de escanear los 1000 puertos predeterminados. Escanearemos los puertos del 1 al 100 en el localhost (127.0.0.1).

La opción -p en Nmap te permite especificar el rango de puertos. La sintaxis es -p <puerto_inicial>-<puerto_final>. En nuestro caso, usaremos -p 1-100 para escanear los puertos del 1 al 100.

Abra su terminal Xfce y ejecute el siguiente comando:

sudo nmap -sN -p 1-100 127.0.0.1

Este comando le indica a Nmap que realice un barrido nulo (-sN) en los puertos del 1 al 100 (-p 1-100) del localhost (127.0.0.1). Recuerde que necesita privilegios de sudo para ejecutar Nmap.

La salida mostrará el estado de los puertos del 1 al 100 en la máquina destino. Al igual que en el barrido nulo anterior, los resultados pueden no ser definitivos y es posible que vea puertos listados como abierto|filtrado o cerrado.

Salida de ejemplo (la salida real variará):

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
Not shown: 99 filtered ports
PORT    STATE  SERVICE
7/tcp   closed echo

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

En este ejemplo, el puerto 7 (echo) se informa como cerrado y los otros 99 puertos están filtrados. Esto indica que el host destino respondió con un paquete RST para el puerto 7, mientras que los otros puertos no respondieron o sus respuestas fueron bloqueadas por un firewall.

Agregar detalle con nmap -v -sN 192.168.1.1

En este paso, agregaremos detalle a nuestro barrido nulo. El detalle en Nmap proporciona información más detallada sobre el proceso de barrido, lo que puede ser útil para entender lo que está haciendo Nmap y para solucionar cualquier problema.

La opción -v en Nmap aumenta el nivel de detalle. Puede usar -v varias veces (por ejemplo, -vv) para aumentar aún más el detalle. Para este paso, usaremos un solo -v.

Abra su terminal Xfce y ejecute el siguiente comando:

sudo nmap -v -sN 192.168.1.1

Este comando le indica a Nmap que realice un barrido nulo (-sN) contra la dirección IP destino 192.168.1.1, con mayor detalle (-v). Necesitará privilegios de sudo para ejecutar Nmap.

La salida será más detallada que el barrido nulo anterior. Verá información sobre el progreso del barrido, los puertos que se están escaneando y cualquier error o advertencia que ocurra.

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

Starting Nmap 7.80 ( https://nmap.org )
NSE: Loaded 0 scripts for scanning.
Initiating Null scan for 192.168.1.1
Scanning 192.168.1.1 [1000 ports]
Completed Null scan for 192.168.1.1
Nmap scan report for 192.168.1.1
Host is up (0.00028s latency).
All 1000 scanned ports on 192.168.1.1 are filtered

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

Observe las líneas adicionales en la salida, como "NSE: Loaded 0 scripts for scanning.", "Initiating Null scan for 192.168.1.1", "Scanning 192.168.1.1 [1000 ports]" y "Completed Null scan for 192.168.1.1". Estas líneas brindan más información sobre el proceso de barrido.

Guardar los resultados del barrido nulo con nmap -sN -oN null.txt 127.0.0.1

En este paso, guardaremos los resultados de nuestro barrido nulo en un archivo. Esto es útil para un análisis posterior o para documentar sus hallazgos. Nmap ofrece varias opciones para guardar los resultados del barrido en diferentes formatos. Usaremos la opción -oN, que guarda los resultados en un formato normal y legible para humanos.

La opción -oN toma un nombre de archivo como argumento. En nuestro caso, guardaremos los resultados en un archivo llamado null.txt en el directorio ~/proyecto.

Abra su terminal Xfce y ejecute el siguiente comando:

sudo nmap -sN -oN null.txt 127.0.0.1

Este comando le indica a Nmap que realice un barrido nulo (-sN) contra el localhost (127.0.0.1) y guarde los resultados en formato normal (-oN) en el archivo null.txt. Necesitará privilegios de sudo para ejecutar Nmap.

Después de que se complete el barrido, puede ver el contenido del archivo null.txt usando el comando cat o un editor de texto como nano.

cat null.txt

Salida de ejemplo (la salida real variará):

## Nmap 7.80 scan initiated Mon Oct 26 14:35:00 2020
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
All 1000 scanned ports on localhost (127.0.0.1) are filtered

## Nmap done at Mon Oct 26 14:35:03 2020 -- 1 IP address (1 host up) scanned in 3.21 seconds

También puede abrir el archivo con nano:

nano null.txt

Esto abrirá el archivo null.txt en el editor de texto nano, lo que le permitirá ver y editar el contenido.

Comparar un barrido nulo con un barrido SYN en la terminal Xfce

En este paso, compararemos los resultados de un barrido nulo con un barrido SYN. Esto le ayudará a entender las diferencias entre estos dos tipos de barrido y cómo se pueden utilizar para recopilar diferentes información sobre un objetivo.

Un barrido SYN (también conocido como barrido semi-abierto) es un barrido más sigiloso que no completa el handshake TCP. Envía un paquete SYN al objetivo, y si el objetivo responde con un SYN/ACK, indica que el puerto está abierto. Nmap luego envía un paquete RST para cerrar la conexión.

En cambio, un barrido nulo envía un paquete TCP sin ninguna bandera establecida. La respuesta del objetivo puede indicar si el puerto está abierto, cerrado o filtrado, dependiendo de la configuración del sistema operativo y del firewall del objetivo.

Primero, realicemos un barrido SYN contra el localhost (127.0.0.1) y guardemos los resultados en un archivo llamado syn.txt.

Abra su terminal Xfce y ejecute el siguiente comando:

sudo nmap -sS -oN syn.txt 127.0.0.1

Este comando le indica a Nmap que realice un barrido SYN (-sS) contra el localhost (127.0.0.1) y guarde los resultados en formato normal (-oN) en el archivo syn.txt. Necesitará privilegios de sudo para ejecutar Nmap.

Ahora, comparemos el contenido de null.txt (que creamos en el paso anterior) con el contenido de syn.txt. Puede usar el comando diff para comparar los dos archivos:

diff null.txt syn.txt

El comando diff le mostrará las diferencias entre los dos archivos. También puede usar un editor de texto como nano para abrir ambos archivos y compararlos lado a lado.

nano null.txt syn.txt

Examine la salida de ambos barridos. Es posible que note que el barrido SYN es más probable que identifique puertos abiertos que el barrido nulo, especialmente si el sistema objetivo está configurado para descartar paquetes sin banderas establecidas. Los barridos nulos a menudo se utilizan para tratar de evitar los firewalls o los sistemas de detección de intrusiones, pero no siempre son confiables.

La diferencia clave es que el barrido SYN intenta establecer una conexión, mientras que el barrido nulo envía un paquete sin ninguna bandera establecida, confiando en la respuesta del objetivo para inferir el estado del puerto.

Revisar los resultados en la terminal Xfce

En este paso, revisaremos los resultados de los barridos nulo y SYN que realizamos en los pasos anteriores. Esto implica examinar los archivos de salida (null.txt y syn.txt) e interpretar la información que contienen.

Abra su terminal Xfce y use el comando cat o el editor nano para ver el contenido de ambos archivos.

cat null.txt
cat syn.txt

O, usando nano:

nano null.txt
nano syn.txt

Al revisar los resultados, considere lo siguiente:

  • Estado del host: Verifique si el host objetivo se informa como "activo" o "inactivo". Si el host está inactivo, Nmap puede no ser capaz de recopilar mucha información.
  • Estado del puerto: Busque el estado de cada puerto. Los estados comunes de los puertos incluyen "abierto", "cerrado" y "filtrado".
    • Abierto: Indica que el puerto está escuchando conexiones.
    • Cerrado: Indica que el puerto no está escuchando conexiones.
    • Filtrado: Indica que un firewall u otro dispositivo de red está bloqueando el acceso al puerto, lo que dificulta determinar su estado.
  • Diferencias entre los barridos nulo y SYN: Compare los resultados de los dos barridos. ¿Identificó un barrido más puertos abiertos que el otro? ¿Hubo algún puerto que se informó como "filtrado" por un barrido pero "cerrado" por el otro?

Por ejemplo, null.txt podría mostrar todos los puertos como filtrados:

## Nmap 7.80 scan initiated Mon Oct 26 14:35:00 2020
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
All 1000 scanned ports on localhost (127.0.0.1) are filtered

## Nmap done at Mon Oct 26 14:35:03 2020 -- 1 IP address (1 host up) scanned in 3.21 seconds

Mientras que syn.txt podría mostrar algunos puertos como abiertos:

## Nmap 7.80 scan initiated Mon Oct 26 14:36:00 2020
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   closed smtp
80/tcp   open  http
111/tcp  open  rpcbind
...
## Nmap done at Mon Oct 26 14:36:03 2020 -- 1 IP address (1 host up) scanned in 3.21 seconds

Al comparar los resultados de diferentes tipos de barrido, puede obtener una comprensión más integral de la postura de seguridad del sistema objetivo. Recuerde que la precisión de los resultados puede verse afectada por varios factores, como firewalls, sistemas de detección de intrusiones y la configuración del sistema operativo del objetivo.

Resumen

En este laboratorio, los participantes aprendieron a ejecutar un barrido TCP nulo utilizando Nmap. Comenzaron ejecutando un barrido nulo contra la dirección IP 192.168.1.1 con el comando sudo nmap -sN 192.168.1.1, comprendiendo que un barrido nulo establece todas las banderas TCP en cero y que la respuesta puede ayudar a determinar los estados de los puertos. También aprendieron a escanear un rango específico de puertos (1 - 100) en 127.0.0.1, agregar detalle al barrido, guardar los resultados en un archivo, comparar barridos nulos con barridos SYN y revisar los resultados en la terminal Xfce. Se señaló que los barridos nulos no siempre son confiables debido a que algunos firewalls o sistemas descartan paquetes sin banderas establecidas.