Descubrimiento de Hosts con Nmap

NmapBeginner
Practicar Ahora

Introducción

En este laboratorio, el objetivo es aprender a realizar el descubrimiento de hosts utilizando Nmap. El laboratorio cubre varios comandos de Nmap para el descubrimiento de hosts, incluyendo la ejecución de un escaneo de ping en la red 192.168.1.0/24 con la opción -sn para deshabilitar el escaneo de puertos, utilizando ping TCP SYN y ping ACK, y combinando diferentes pings. También muestra cómo visualizar los hosts activos en la terminal Xfce. Además, demuestra cómo realizar un escaneo de ping en la dirección localhost mientras se deshabilita el escaneo de puertos.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 98%. Ha recibido una tasa de reseñas positivas del 97% por parte de los estudiantes.

Ejecutar Escaneo de Ping con Nmap

En este paso, realizarás un escaneo de ping básico con Nmap para identificar hosts activos en una red. Un escaneo de ping, también conocido como descubrimiento de hosts, es una técnica fundamental para determinar qué hosts están en línea. Nmap envía diversas sondas a cada dirección IP en el rango especificado y analiza las respuestas para identificar los hosts activos. La opción -sn en Nmap deshabilita el escaneo de puertos, lo que hace que el escaneo sea más rápido y menos intrusivo que un escaneo de puertos completo.

192.168.1.0/24 es una notación CIDR que representa una red. El /24 indica que los primeros 24 bits de la dirección IP están fijos, definiendo la red, y los 8 bits restantes se utilizan para las direcciones de host dentro de esa red. Esto se traduce en un rango de direcciones IP desde 192.168.1.1 hasta 192.168.1.254.

Para realizar un escaneo de ping en la red 192.168.1.0/24, abre tu terminal (si no está abierto) y ejecuta el siguiente comando:

sudo nmap -sn 192.168.1.0/24

Este comando indica a Nmap que realice un escaneo de ping en todas las direcciones IP dentro de la red 192.168.1.0/24. El comando sudo se utiliza porque Nmap a menudo requiere privilegios elevados para enviar ciertos tipos de paquetes de red.

En este entorno de laboratorio, la red 192.168.1.0/24 no contiene ningún host activo, por lo que verás una salida similar a esta:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:49 CST

El escaneo se completa sin mostrar ningún informe de host, lo que indica que ningún host respondió a las sondas de ping en este rango de red. En un escenario del mundo real con hosts activos, verías una salida como esta:

Starting Nmap 7.XX ( https://nmap.org ) at YYYY-MM-DD HH:MM ZZZ
Nmap scan report for 192.168.1.1
Host is up (0.000XXs latency).
Nmap scan report for 192.168.1.10
Host is up (0.002XXs latency).
Nmap done: 256 IP addresses (2 hosts up) scanned in 2.XX seconds

A continuación, realizarás un escaneo de ping en la dirección localhost (127.0.0.1) mientras deshabilitas el escaneo de puertos. Esto demuestra cómo usar la opción -sn específicamente para el descubrimiento de hosts sin iniciar un escaneo de puertos completo. Esto es útil cuando solo deseas verificar si un host está activo y evitar escaneos de puertos potencialmente ruidosos o que consumen mucho tiempo.

127.0.0.1 es la dirección de bucle de retorno, también conocida como localhost. Siempre se refiere a la máquina actual. Realizar un ping a localhost es una forma rápida de verificar que la interfaz de red está funcionando correctamente.

Para realizar un escaneo de ping en localhost sin escaneo de puertos, ejecuta el siguiente comando en tu terminal:

sudo nmap -sn 127.0.0.1

Este comando indica a Nmap que realice un escaneo de ping en la dirección 127.0.0.1. La opción -sn asegura que Nmap solo realice el descubrimiento de hosts y no intente escanear ningún puerto.

La salida indicará si el host está activo. Debería ser similar a esto:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:49 CST
Nmap scan report for localhost (127.0.0.1)
Host is up.
Nmap done: 1 IP address (1 host up) scanned in 0.00 seconds

Esta salida confirma que el localhost (127.0.0.1) está activo y funcionando. Nmap solo realizó un escaneo de ping, como se especificó con la opción -sn, y no escaneó ningún puerto.

Realizar escaneos de ping TCP SYN y ACK

En este paso, utilizarás Nmap para realizar escaneos de ping TCP SYN y ACK. Estas técnicas suelen ser más fiables que el ping ICMP porque muchos cortafuegos bloquean el tráfico ICMP pero permiten el tráfico TCP.

Primero, probemos un escaneo de ping TCP SYN en 192.168.1.1 para demostrar qué ocurre cuando un host no es accesible. Un ping TCP SYN envía un paquete TCP SYN al host de destino. Si el host está activo y escuchando en el puerto especificado (o cualquier puerto de forma predeterminada), responderá con un paquete SYN/ACK. Nmap luego restablece la conexión enviando un paquete RST.

La opción -PS en Nmap especifica que deseas utilizar un ping TCP SYN. De forma predeterminada, Nmap envía el paquete SYN al puerto 80.

Para realizar un escaneo de ping TCP SYN en 192.168.1.1, ejecuta el siguiente comando en tu terminal:

sudo nmap -PS 192.168.1.1

Este comando indica a Nmap que envíe un paquete TCP SYN al puerto 80 del host 192.168.1.1. sudo es necesario porque Nmap necesita privilegios elevados para crear y enviar paquetes TCP sin procesar.

Dado que 192.168.1.1 no es accesible en este entorno de laboratorio, verás una salida similar a esta:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:49 CST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 2.10 seconds

Esta salida muestra que Nmap no pudo alcanzar 192.168.1.1. El mensaje sugiere usar -Pn si sospechas que el host está activo pero está bloqueando las sondas de ping.

Ahora, realicemos un escaneo de ping TCP SYN en localhost (127.0.0.1) para ver cómo funciona cuando el host es accesible:

sudo nmap -PS 127.0.0.1

Esto mostrará una salida similar a:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:50 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000070s latency).
Not shown: 995 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
2121/tcp open  ccproxy-ftp
2222/tcp open  EtherNetIP-1
3001/tcp open  nessus
8080/tcp open  http-proxy

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

Esta salida muestra que Nmap detectó correctamente a localhost como activo y también realizó un escaneo de puertos, mostrando los puertos abiertos en el sistema.

A continuación, realizarás un escaneo de ping ACK. Un ping ACK envía un paquete TCP ACK al host de destino. A diferencia del ping SYN, que intenta establecer una conexión, el ping ACK envía un paquete que parece formar parte de una conexión ya establecida. Los cortafuegos a menudo tienen reglas para manejar los paquetes ACK entrantes de forma diferente a los paquetes SYN, lo que hace que el ping ACK sea útil para eludir algunas configuraciones de cortafuegos.

La opción -PA en Nmap especifica que deseas utilizar un ping TCP ACK. De forma predeterminada, Nmap envía el paquete ACK al puerto 80.

Primero, probemos el ping ACK en 192.168.1.1:

sudo nmap -PA 192.168.1.1

Como se esperaba, esto mostrará que el host está inactivo:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:50 CST
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 2.11 seconds

Ahora, realicemos un escaneo de ping TCP ACK en localhost para ver el caso exitoso:

sudo nmap -PA 127.0.0.1

Esto producirá una salida similar a:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:50 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000040s latency).
Not shown: 995 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
2121/tcp open  ccproxy-ftp
2222/tcp open  EtherNetIP-1
3001/tcp open  nessus
8080/tcp open  http-proxy

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

Esta salida muestra que Nmap envió un paquete TCP ACK a localhost y recibió una respuesta, indicando que el host está activo. El escaneo también muestra los puertos abiertos en el sistema.

Combinar técnicas de escaneo de ping

En este paso, aprenderás a combinar los escaneos de ping TCP SYN y ACK con Nmap para descubrir hosts activos en una red. Combinar diferentes tipos de ping puede aumentar la fiabilidad del descubrimiento de hosts, ya que algunos hosts pueden responder a un tipo de ping pero no a otro debido a reglas de cortafuegos o configuraciones de red.

Al usar las opciones -PS y -PA, Nmap enviará paquetes TCP SYN y TCP ACK a cada host en la red especificada. Esto aumenta las posibilidades de detectar hosts activos, especialmente en entornos con cortafuegos restrictivos.

Primero, probemos el escaneo combinado en la red 192.168.1.0/24 para demostrar qué ocurre cuando no hay hosts presentes:

sudo nmap -PS -PA 192.168.1.0/24

Este comando indica a Nmap que envíe paquetes TCP SYN y TCP ACK al puerto 80 de cada host en la red 192.168.1.0/24. sudo es necesario porque Nmap necesita privilegios elevados para crear y enviar paquetes TCP sin procesar.

Dado que no hay hosts activos en este rango de red en nuestro entorno de laboratorio, verás una salida similar a esta:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:51 CST

El escaneo se completa sin mostrar ningún informe de host, lo que indica que ningún host respondió a las sondas de ping SYN o ACK en este rango de red.

En un escenario del mundo real con hosts activos, la salida sería similar a esta:

Starting Nmap 7.XX ( https://nmap.org ) at YYYY-MM-DD HH:MM ZZZ
Nmap scan report for 192.168.1.1
Host is up (0.0010s latency).
Nmap scan report for 192.168.1.2
Host is up (0.0015s latency).
Nmap scan report for 192.168.1.10
Host is up (0.0012s latency).
Nmap done: 256 IP addresses (3 hosts up) scanned in 2.XX seconds

Esto mostraría que Nmap escaneó la red 192.168.1.0/24 y encontró tres hosts activos que respondieron a las técnicas de ping combinadas.

Para demostrar la técnica de ping combinada con un ejemplo funcional, usemos localhost:

sudo nmap -PS -PA 127.0.0.1

Esto producirá una salida que mostrará que localhost responde a ambos tipos de ping:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-06-03 09:51 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000040s latency).
Not shown: 995 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
2121/tcp open  ccproxy-ftp
2222/tcp open  EtherNetIP-1
3001/tcp open  nessus
8080/tcp open  http-proxy

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

Finalmente, puedes revisar los comandos que has ejecutado en el terminal para identificar las técnicas que has aprendido usando Nmap. El terminal mantiene un historial de los comandos que has ejecutado, lo que puede ser útil para revisar tu trabajo y verificar los resultados de tus escaneos.

Para ver el historial de comandos en el terminal, puedes usar el comando history. Este comando mostrará una lista numerada de los comandos que has ejecutado previamente.

Escribe el siguiente comando y presiona Intro:

history

Esto mostrará una lista de tus comandos recientes. Desplázate por la lista para encontrar los comandos de Nmap que usaste en los pasos anteriores, específicamente los comandos que usan -sn, -PS y -PA para realizar escaneos de ping.

Por ejemplo, deberías ver comandos como:

  1  sudo nmap -sn 192.168.1.0/24
  2  sudo nmap -sn 127.0.0.1
  3  sudo nmap -PS 192.168.1.1
  4  sudo nmap -PS 127.0.0.1
  5  sudo nmap -PA 192.168.1.1
  6  sudo nmap -PA 127.0.0.1
  7  sudo nmap -PS -PA 192.168.1.0/24
  8  sudo nmap -PS -PA 127.0.0.1
  9  history

Al revisar estos comandos y su salida (que deberías haber anotado en los pasos anteriores), puedes confirmar las diferentes técnicas de ping que has aprendido y cómo se comportan con hosts accesibles e inaccesibles. El comando history es una herramienta útil para auditar tu trabajo y asegurarte de que has realizado correctamente los pasos de este laboratorio.

Nota: La salida exacta del comando history dependerá de los comandos que hayas ejecutado en tu sesión de terminal.

Resumen

En este laboratorio, has aprendido a realizar el descubrimiento de hosts utilizando Nmap. Empezaste realizando un escaneo de ping en la red 192.168.1.0/24 con la opción -sn para desactivar el escaneo de puertos, lo que es más rápido y menos intrusivo. También realizaste un escaneo de ping en la dirección localhost 127.0.0.1 mientras desactivabas el escaneo de puertos. Además, exploraste diferentes tipos de ping, como el ping TCP SYN con -PS, el ping ACK con -PA y un ping combinado con -PS -PA, para identificar eficazmente hosts activos en diversos escenarios de red. Finalmente, aprendiste a revisar el historial de comandos en el terminal para verificar tus acciones y los hosts descubiertos.