Comparar Resultados de Escaneo 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 comparar los resultados de los escaneos en Nmap. El laboratorio implica realizar tanto escaneos SYN como TCP contra una dirección IP objetivo, guardar las salidas en archivos separados y luego comparar estos archivos utilizando el comando diff. También explorará los escaneos detallados y analizará las diferencias observadas en la terminal Xfce.

El proceso comienza ejecutando un escaneo SYN con nmap -sS -oN syn.txt 192.168.1.1 y un escaneo TCP con nmap -sT -oN tcp.txt 192.168.1.1, guardando los resultados en syn.txt y tcp.txt respectivamente. Estos archivos se comparan luego utilizando diff syn.txt tcp.txt. Además, se realizan escaneos detallados con nmap -v -sS 127.0.0.1 y nmap -v -sT 127.0.0.1, y las notas de comparación se guardan en el editor de texto Xfce para su análisis en la terminal Xfce.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/tcp_connect_scan("Basic TCP Connect Scan") nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/timing_performance("Timing and Performance") nmap/NmapGroup -.-> nmap/verbosity("Verbosity Levels") nmap/NmapGroup -.-> nmap/syn_scan("SYN Scan") subgraph Lab Skills nmap/tcp_connect_scan -.-> lab-547091{{"Comparar Resultados de Escaneo en Nmap"}} nmap/save_output -.-> lab-547091{{"Comparar Resultados de Escaneo en Nmap"}} nmap/timing_performance -.-> lab-547091{{"Comparar Resultados de Escaneo en Nmap"}} nmap/verbosity -.-> lab-547091{{"Comparar Resultados de Escaneo en Nmap"}} nmap/syn_scan -.-> lab-547091{{"Comparar Resultados de Escaneo en Nmap"}} end

Ejecutar un escaneo SYN y guardar con nmap -sS -oN syn.txt 192.168.1.1

En este paso, realizará un escaneo SYN utilizando Nmap y guardará la salida en un archivo. Un escaneo SYN, también conocido como un escaneo semi-abierto, es un tipo de escaneo de puertos TCP que intenta determinar el estado de los puertos TCP en un sistema objetivo. Se llama "semi-abierto" porque el host de escaneo no completa el handshake de conexión TCP. En su lugar, envía un paquete SYN y analiza la respuesta. Esta técnica es más sigilosa que un escaneo de conexión TCP completo porque no establece una conexión completa, evitando posiblemente la detección por algunos firewall y sistemas de detección de intrusiones.

A continuación, se detalla el comando:

  • nmap: El escáner de línea de comandos de Nmap.
  • -sS: Especifica la técnica de escaneo SYN.
  • -oN syn.txt: Especifica que la salida debe guardarse en formato normal (legible por humanos) en un archivo llamado syn.txt.
  • 192.168.1.1: La dirección IP objetivo a escanear. Reemplace esto con la dirección IP real del objetivo que desea escanear. Si está ejecutando este laboratorio en un entorno virtual, es posible que use 127.0.0.1 (localhost) como objetivo.

Ejecutemos el comando. Primero, asegúrese de estar en el directorio ~/project.

cd ~/project

Ahora, ejecute el escaneo SYN:

sudo nmap -sS -oN syn.txt 192.168.1.1

Nota: Es posible que necesite privilegios de sudo para realizar un escaneo SYN, ya que requiere enviar paquetes crudos. Si está usando una dirección IP objetivo diferente, reemplace 192.168.1.1 con la IP correcta. Si está escanear localhost, puede usar 127.0.0.1.

Después de que se complete el escaneo, puede ver el contenido del archivo syn.txt usando un editor de texto o el comando cat:

cat syn.txt

La salida mostrará los puertos abiertos y otra información recopilada durante el escaneo. La salida exacta dependerá del sistema objetivo y su configuración.

Salida de ejemplo (la salida específica variará):

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.00020s latency).
Not shown: 997 filtered ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https

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

Esta salida indica que los puertos 22, 80 y 443 están abiertos en el sistema objetivo. Los puertos "filtrados" significan que Nmap no pudo determinar si esos puertos estaban abiertos o cerrados debido a reglas de firewall o condiciones de red.

Ejecutar un escaneo TCP y guardar con nmap -sT -oN tcp.txt 192.168.1.1

En este paso, realizará un escaneo de conexión TCP utilizando Nmap y guardará la salida en un archivo. Un escaneo de conexión TCP, especificado por la opción -sT, es una forma básica de escaneo TCP donde Nmap intenta establecer una conexión TCP completa con el host objetivo en cada puerto. Esto implica completar el handshake de tres pasos (SYN, SYN-ACK, ACK). Si bien es confiable, este método también es fácil de detectar, ya que el sistema objetivo registra la conexión.

A continuación, se detalla el comando:

  • nmap: El escáner de línea de comandos de Nmap.
  • -sT: Especifica la técnica de escaneo de conexión TCP.
  • -oN tcp.txt: Especifica que la salida debe guardarse en formato normal (legible por humanos) en un archivo llamado tcp.txt.
  • 192.168.1.1: La dirección IP objetivo a escanear. Reemplace esto con la dirección IP real del objetivo que desea escanear. Si está ejecutando este laboratorio en un entorno virtual, es posible que use 127.0.0.1 (localhost) como objetivo.

Ejecutemos el comando. Primero, asegúrese de estar en el directorio ~/project.

cd ~/project

Ahora, ejecute el escaneo de conexión TCP:

sudo nmap -sT -oN tcp.txt 192.168.1.1

Nota: Si bien no es estrictamente necesario usar sudo para un escaneo de conexión TCP, es buena práctica usarlo para la consistencia y evitar posibles problemas de permisos. Si está usando una dirección IP objetivo diferente, reemplace 192.168.1.1 con la IP correcta. Si está escanear localhost, puede usar 127.0.0.1.

Después de que se complete el escaneo, puede ver el contenido del archivo tcp.txt usando un editor de texto o el comando cat:

cat tcp.txt

La salida mostrará los puertos abiertos y otra información recopilada durante el escaneo. La salida exacta dependerá del sistema objetivo y su configuración.

Salida de ejemplo (la salida específica variará):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00020s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https

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

Esta salida indica que los puertos 22, 80 y 443 están abiertos en el sistema objetivo. Los puertos "cerrados" significan que Nmap recibió un paquete RST (reinicio) en respuesta a su paquete SYN, lo que indica que el puerto está cerrado.

Comparar archivos con diff syn.txt tcp.txt

En este paso, comparará los archivos syn.txt y tcp.txt que creó en los pasos anteriores utilizando el comando diff. El comando diff es una herramienta poderosa para identificar las diferencias entre dos archivos. Compara los archivos línea por línea y destaca cualquier adición, eliminación o modificación.

Antes de ejecutar el comando diff, es importante entender por qué las salidas del escaneo SYN (-sS) y el escaneo de conexión TCP (-sT) pueden diferir. El escaneo SYN es un escaneo "semi-abierto", lo que significa que no completa el handshake TCP completo. Esto puede hacerlo más sigiloso pero también menos confiable en algunos casos, ya que los firewall o dispositivos de red pueden bloquear el paquete SYN inicial o la respuesta. El escaneo de conexión TCP, por otro lado, completa el handshake TCP completo, lo que lo hace más confiable pero también más fácil de detectar.

Para comparar los archivos, use el siguiente comando:

diff syn.txt tcp.txt

Este comando comparará los archivos syn.txt y tcp.txt y mostrará cualquier diferencia en la terminal.

Salida de ejemplo (la salida específica variará según el sistema objetivo y las condiciones de red):

2,4c2,4
< Nmap scan report for 192.168.1.1
< Host is up (0.00020s latency).
< Not shown: 997 filtered ports
---
> Nmap scan report for 192.168.1.1
> Host is up (0.00020s latency).
> Not shown: 997 closed ports
5c5
< 22/tcp  open  ssh
---
> 22/tcp  open  ssh
6c6
< 80/tcp  open  http
---
> 80/tcp  open  http
7c7
< 443/tcp open  https
---
> 443/tcp open  https
10c10
< Nmap done: 1 IP address (1 host up) scanned in 2.50 seconds
---
> Nmap done: 1 IP address (1 host up) scanned in 2.50 seconds

En este ejemplo, la salida muestra que la principal diferencia entre los dos archivos es la línea "Not shown". El escaneo SYN (syn.txt) muestra "997 filtered ports", mientras que el escaneo de conexión TCP (tcp.txt) muestra "997 closed ports". Esto indica que el escaneo SYN no pudo determinar el estado de algunos puertos debido al filtrado, mientras que el escaneo de conexión TCP pudo determinar que esos puertos estaban cerrados.

La salida de diff utiliza los siguientes símbolos:

  • <: Indica una línea que existe solo en el primer archivo (syn.txt).
  • >: Indica una línea que existe solo en el segundo archivo (tcp.txt).
  • c: Indica que las líneas son diferentes y deben cambiarse para que los archivos sean idénticos.

Al analizar la salida de diff, puede obtener información sobre las diferencias entre los dos tipos de escaneo y cómo perciben el sistema objetivo.

Ejecutar escanes detallados con nmap -v -sS 127.0.0.1 y nmap -v -sT 127.0.0.1

En este paso, ejecutará tanto escanes SYN como de conexión TCP contra localhost (127.0.0.1) con la opción detallada habilitada. La opción -v en Nmap aumenta el nivel de detalle, proporcionando información más detallada sobre el proceso de escaneo. Esto puede ser útil para entender cómo funciona Nmap y para solucionar cualquier problema.

Primero, ejecutemos el escaneo SYN detallado:

sudo nmap -v -sS 127.0.0.1

Este comando realizará un escaneo SYN en localhost y mostrará la salida detallada en la terminal. Verá más información sobre el progreso del escaneo, incluyendo los puertos que se están escanando, la temporización del escaneo y cualquier error o advertencia que ocurra.

Salida de ejemplo (la salida específica variará):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:15 UTC
NSE: Loaded 0 scripts for scanning.
Initiating SYN Stealth Scan
Scanning 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
Discovered open port 443/tcp on 127.0.0.1
Completed SYN Stealth Scan at 10:15, 2.50s elapsed (1000 total ports)
Nmap scan report for 127.0.0.1
Host is up (0.000020s latency).
Not shown: 997 filtered ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https

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

A continuación, ejecute el escaneo detallado de conexión TCP:

sudo nmap -v -sT 127.0.0.1

Este comando realizará un escaneo de conexión TCP en localhost y mostrará la salida detallada.

Salida de ejemplo (la salida específica variará):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:16 UTC
NSE: Loaded 0 scripts for scanning.
Initiating Connect Scan
Scanning 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
Discovered open port 443/tcp on 127.0.0.1
Completed Connect Scan at 10:16, 3.00s elapsed (1000 total ports)
Nmap scan report for 127.0.0.1
Host is up (0.000020s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https

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

Observe las diferencias en la salida. La salida detallada proporciona más detalles sobre el proceso de escaneo, como el tipo de escaneo que se está realizando ("SYN Stealth Scan" o "Connect Scan"), el número de puertos que se están escanando y el tiempo que tarda en completar el escaneo. También puede ver los puertos que se descubrieron abiertos.

Al comparar la salida detallada de los escanes SYN y de conexión TCP, puede obtener una mejor comprensión de cómo funciona cada tipo de escaneo y cómo interactúan con el sistema objetivo.

Guardar notas de comparación en el editor de texto Xfce

En este paso, utilizará el editor de texto Xfce para guardar sus observaciones y comparaciones de los pasos anteriores. Este es un paso crucial para documentar sus hallazgos y comprender las diferencias entre los tipos de escaneo de Nmap.

Primero, abra el editor de texto Xfce. Puede hacer esto buscando "Editor de Texto" en el menú de aplicaciones de Xfce o ejecutando el siguiente comando en la terminal:

mousepad notes.txt

Este comando abrirá el editor de texto Xfce (Mousepad) y creará un nuevo archivo llamado notes.txt en su directorio ~/project.

Ahora, en el editor de texto, escriba sus observaciones sobre las diferencias entre el escaneo SYN y el escaneo de conexión TCP. Tenga en cuenta los siguientes puntos:

  • Velocidad: ¿Qué tipo de escaneo fue más rápido?
  • Precisión: ¿Identificaron ambos tipos de escaneo los mismos puertos abiertos? Si no, ¿por qué podría ser eso?
  • Sigilo: ¿Qué tipo de escaneo se considera más sigiloso y por qué?
  • Evasión de firewall: ¿Cómo podrían los firewall tratar de manera diferente cada tipo de escaneo?
  • Salida detallada: ¿Qué información adicional obtuvo de los escanes detallados?

Aquí hay un ejemplo de cómo podrían ser sus notas:

Notas de comparación de escanes de Nmap:

Escaneo SYN (-sS):
- Más rápido que el escaneo de conexión TCP.
- Puede ser menos preciso debido a los puertos filtrados.
- Se considera más sigiloso ya que no completa el handshake TCP completo.
- Los firewall pueden bloquear los paquetes SYN, lo que puede conducir a resultados inexactos.

Escaneo de conexión TCP (-sT):
- Más lento que el escaneo SYN.
- Más confiable ya que completa el handshake TCP completo.
- Menos sigiloso ya que es fácil de detectar.
- Menos probable que sea bloqueado por los firewall, lo que proporciona resultados más precisos.

Salida detallada (-v):
- Proporciona información más detallada sobre el proceso de escaneo.
- Útil para entender cómo funciona Nmap y solucionar problemas.
- Muestra el tipo de escaneo que se está realizando y el número de puertos escanados.

Diferencias observadas:
- El escaneo SYN reportó puertos "filtrados", mientras que el escaneo de conexión TCP reportó puertos "cerrados".
- Esto sugiere que algunos puertos estaban siendo filtrados, lo que impidió que el escaneo SYN determinara su estado.

Después de terminar de escribir sus notas, guarde el archivo haciendo clic en "Archivo" -> "Guardar" en el editor de texto, o presionando Ctrl+S.

Este archivo notes.txt se utilizará en el siguiente paso para analizar las diferencias en la terminal de Xfce.

Analizar las diferencias en la terminal de Xfce

En este paso, utilizará la terminal de Xfce para analizar aún más las diferencias entre los escanes SYN y de conexión TCP, basándose en las notas que guardó en el paso anterior. Utilizará herramientas de línea de comandos para buscar patrones específicos y comparar los resultados del escaneo.

Primero, abra la terminal de Xfce.

Ahora, usemos el comando cat para mostrar el contenido de los archivos syn.txt y tcp.txt, que contienen los resultados del escaneo de Nmap de los primeros dos pasos:

cat syn.txt
cat tcp.txt

Examine la salida de ambos comandos. Presta atención a las diferencias en los resultados del escaneo, como los estados de puerto reportados (abierto, cerrado, filtrado) y el tiempo que tardó en completar los escanes.

A continuación, use el comando grep para buscar palabras clave específicas en los resultados del escaneo. Por ejemplo, puede buscar la palabra "abierto" en ambos archivos:

grep "abierto" syn.txt
grep "abierto" tcp.txt

Compare la salida de estos comandos. ¿Reportan ambos escanes los mismos puertos abiertos? Si no, ¿cuáles son las diferencias?

También puede buscar otras palabras clave, como "cerrado" o "filtrado", para analizar aún más los resultados del escaneo.

Ahora, usemos nuevamente el comando diff para comparar los archivos syn.txt y tcp.txt:

diff syn.txt tcp.txt

Revise la salida del comando diff. Esto resaltará las líneas que son diferentes entre los dos archivos. Presta atención a las líneas que indican diferencias en los estados de puerto reportados.

Finalmente, use el comando cat para mostrar el contenido de su archivo notes.txt, que contiene sus observaciones del paso anterior:

cat notes.txt

Reflexione sobre sus observaciones y compárelas con los resultados del escaneo y la salida del comando diff. ¿Estas observaciones coinciden con los resultados del escaneo? ¿Puede explicar alguna discrepancia?

Al usar la terminal de Xfce y herramientas de línea de comandos para analizar los resultados del escaneo de Nmap, puede obtener una comprensión más profunda de las diferencias entre los escanes SYN y de conexión TCP y cómo interactúan con el sistema objetivo. Este análisis lo ayudará a tomar decisiones informadas sobre qué tipo de escaneo usar en diferentes situaciones.

Resumen

En este laboratorio, comenzamos realizando un escaneo SYN en una dirección IP objetivo (192.168.1.1 o localhost) utilizando Nmap con el comando nmap -sS -oN syn.txt 192.168.1.1. Esto implicó comprender el propósito de un escaneo SYN como un escaneo de puertos TCP "semi-abierto" más sigiloso que evita establecer una conexión completa. La salida del escaneo se guardó en un archivo llamado syn.txt en formato normal.

El punto clave de aprendizaje fue cómo ejecutar un escaneo SYN utilizando Nmap, interpretar los parámetros del comando (-sS para el escaneo SYN, -oN para la salida normal a un archivo) y comprender la posible necesidad de privilegios de sudo debido al uso de paquetes crudos. También aprendimos cómo ver los resultados del escaneo utilizando cat syn.txt.