Escaneo de Redes con Nmap

NmapBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderás a utilizar Nmap, una potente herramienta de escaneo de redes de código abierto ampliamente utilizada por profesionales de la seguridad. Nmap ayuda a identificar hosts activos, puertos abiertos y servicios en ejecución dentro de una red, proporcionando una visibilidad esencial para las evaluaciones de seguridad.

Adquirirás experiencia práctica realizando escaneos básicos de Nmap, interpretando los resultados y comprendiendo diferentes técnicas de escaneo. Estas habilidades son fundamentales para el análisis de seguridad de redes, enfatizando siempre la importancia de las prácticas de escaneo ético únicamente en redes autorizadas.

Este es un Laboratorio Guiado, 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 86%. Ha recibido una tasa de valoraciones positivas del 99% por parte de los alumnos.

Instalación de Nmap

Antes de comenzar a explorar redes, necesitamos equiparnos con la herramienta adecuada. Nmap (Network Mapper) es una utilidad gratuita y de código abierto que ayuda a los administradores de red y profesionales de seguridad a descubrir dispositivos en una red e identificar los servicios disponibles. En este paso, instalaremos Nmap en tu sistema.

  1. Primero, abramos la terminal. La terminal es el lugar donde ejecutaremos todos nuestros comandos de Nmap. En sistemas Linux como nuestro entorno de laboratorio, la terminal es la forma principal de interactuar con las herramientas de red. En tu escritorio, localiza y abre la Xfce Terminal.
Ventana de Xfce Terminal abierta

Nota: Los usuarios de la versión gratuita no pueden conectarse a Internet, por lo que Nmap ya está preinstalado en el entorno del laboratorio. Puedes saltar al punto 4 de la lista (verificar si Nmap está instalado). Actualiza a una cuenta Pro para practicar la instalación de Nmap por tu cuenta.

Solo para Usuarios Pro
  1. Una vez abierta la terminal, necesitamos actualizar las listas de paquetes. Este es un primer paso importante porque garantiza que nuestro sistema conozca las últimas versiones de software disponibles. Escribe el siguiente comando y presiona Enter:
sudo apt-get update

sudo significa "superuser do" (el superusuario hace) y nos otorga privilegios administrativos, que a menudo son necesarios para instalar software.

  1. Ahora que nuestras listas de paquetes están actualizadas, instalemos Nmap. El siguiente comando descargará e instalará Nmap junto con cualquier dependencia requerida:
sudo apt-get install nmap -y

La bandera -y confirma automáticamente "sí" a cualquier solicitud de instalación, lo cual es útil al ejecutar scripts o cuando estás seguro de que deseas proceder.

  1. Una vez finalizada la instalación, debemos verificar que Nmap se haya instalado correctamente. Comprobar la versión sirve para dos propósitos: confirma que la instalación funcionó y nos indica qué versión estamos utilizando. Introduce:
nmap --version

Deberías ver una salida similar a esta:

Nmap version 7.80 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.3.6 openssl-3.0.2 nmap-libssh2-1.8.2 libz-1.2.11 libpcre-8.39 libpcap-1.10.1 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select

El número de versión podría ser diferente, ya que Nmap se actualiza regularmente con nuevas funciones y mejoras.

¡Felicidades! Ya tienes Nmap instalado y listo para usar. Piensa en Nmap como una potente linterna que te permite ver qué está sucediendo en tu red. Puede mostrarte qué dispositivos están conectados, qué servicios están ejecutando e incluso qué sistemas operativos utilizan. Estas capacidades convierten a Nmap en una herramienta esencial tanto para la administración de redes como para las pruebas de seguridad.

Si deseas explorar todas las capacidades de Nmap, puedes escribir man nmap en la terminal para ver su página de manual. Esta documentación contiene todas las opciones y funciones avanzadas, pero no te sientas abrumado: comenzaremos con lo fundamental en este laboratorio e iremos construyendo tu conocimiento paso a paso.

Comprendiendo las Direcciones IP

Antes de comenzar a escanear redes, es crucial entender qué son las direcciones IP. Imagina una dirección IP como la dirección postal de tu casa, pero para tu computadora en la red. Así como el servicio de correos necesita tu dirección para entregar una carta, otros dispositivos en la red necesitan tu dirección IP para comunicarse con tu equipo.

  1. Una dirección IP es un identificador único para un dispositivo en una red. Normalmente se ve como una serie de números separados por puntos, como 192.168.1.1. Estos números van del 0 al 255, y cada segmento representa una parte de la jerarquía de la red. La primera parte identifica la red en sí, mientras que las partes finales identifican dispositivos específicos.
graph LR A[Internet] --- B[Router 192.168.1.1] B --- C[PC 192.168.1.10] B --- D[Laptop 192.168.1.11] B --- E[Smartphone 192.168.1.12] B --- F[Smart TV 192.168.1.13] style A fill:#f9f,stroke:#333,stroke-width:4px style B fill:#bbf,stroke:#333,stroke-width:2px style C fill:#dfd,stroke:#333,stroke-width:2px style D fill:#dfd,stroke:#333,stroke-width:2px style E fill:#dfd,stroke:#333,stroke-width:2px style F fill:#dfd,stroke:#333,stroke-width:2px
  1. Para encontrar tu propia dirección IP, utilizaremos un comando que muestra la información de las interfaces de red. Esto es importante porque necesitamos conocer nuestra propia dirección antes de poder escanear otros dispositivos en la red. Ejecuta este comando:
ip addr show | grep inet

Analicemos esto paso a paso:

  • ip addr show muestra información detallada sobre todas las interfaces de red de tu sistema.
  • El símbolo | (llamado tubería o pipe) toma la salida del primer comando y la envía al siguiente.
  • grep inet filtra la salida para mostrar solo las líneas que contienen "inet", que incluyen las direcciones IP en un formato fácil de leer.

Verás una salida similar a esta:

inet 127.0.0.1/8 scope host lo
inet 172.19.0.3/16 brd 172.19.255.255 scope global eth1

Los números después de la barra diagonal (como /8 y /16) utilizan la notación CIDR (Classless Inter-Domain Routing). Esta notación indica cuántos bits de la dirección IP se utilizan para la parte de la red frente a la parte del dispositivo. Por ejemplo, /16 significa que los primeros 16 bits (los dos primeros números) identifican la red, mientras que los bits restantes pueden asignarse a dispositivos individuales.

  1. En esta salida, verás varias direcciones IP. Esto es lo que significan en términos prácticos:

    • 127.0.0.1 se conoce como la dirección de "bucle de retorno" o "localhost". Esta dirección especial siempre apunta a tu propia computadora y se usa cuando un programa necesita comunicarse consigo mismo.
    • 172.19.0.3 es la dirección de red real de tu máquina. Esta es la dirección que otros dispositivos usarían para enviar datos a tu computadora, de forma similar a cómo tu dirección de calle identifica tu hogar.
  2. Toma nota de la dirección IP que no sea 127.0.0.1 (en este caso, 172.19.0.3). Utilizaremos esta dirección de red real en nuestros ejercicios de escaneo.

La notación CIDR es fundamental para entender qué dispositivos están en tu red local frente a redes remotas.

Es posible que notes algunas direcciones que comienzan con "fe80::"; estas son direcciones IPv6, la versión más reciente del protocolo IP diseñada para reemplazar a IPv4. Aunque IPv6 es cada vez más importante, la mayoría de las redes locales todavía utilizan principalmente direcciones IPv4 como las que estamos examinando aquí. Para nuestros propósitos de escaneo de red, nos centraremos en las direcciones IPv4, ya que son las más comunes en entornos de red local.

Realizando un Escaneo Básico con Nmap

Ahora que comprendemos las direcciones IP y tenemos Nmap instalado, realicemos nuestro primer escaneo de red. Este escaneo inicial tendrá como objetivo tu propia máquina, que es la forma más segura de aprender la funcionalidad básica de Nmap antes de escanear otros sistemas.

  1. Primero, utilizaremos la dirección IP que identificaste en el paso anterior. El comando de escaneo básico de Nmap simplemente requiere la dirección IP del objetivo. Ejecuta el siguiente comando, reemplazando <YOUR_IP> con la dirección IP que encontraste:
nmap <YOUR_IP>

Por ejemplo, si tu IP es 172.19.0.3, ejecutarías:

nmap 172.19.0.3

Este comando le indica a Nmap que escanee los 1000 puertos TCP más comunes en la dirección IP especificada. Los puertos TCP son como puertas numeradas en una computadora a través de las cuales los servicios de red pueden comunicarse.

  1. Tras ejecutar el comando, Nmap realizará el escaneo y mostrará los resultados. Aquí tienes una salida típica que podrías ver:
Starting Nmap 7.80 ( https://nmap.org ) at 2024-09-24 10:00 CST
Nmap scan report for 336efdcfb776.external (172.19.0.3)
Host is up (0.00017s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus

Nmap done: 1 IP address (1 host up) scanned in 0.19 seconds
  1. Examinemos cada parte de esta salida para entender qué nos está diciendo Nmap:

    • "Starting Nmap 7.80": Muestra la versión de Nmap en uso. Diferentes versiones pueden tener características o formatos de salida ligeramente distintos.
    • "Host is up (0.00017s latency)": Confirma que la máquina objetivo respondió a las solicitudes de red, mostrando el tiempo de respuesta en segundos.
    • "Not shown: 998 closed ports": Indica que de los 1000 puertos comunes escaneados, 998 no aceptaban conexiones.
    • "PORT STATE SERVICE": Enumera todos los puertos abiertos encontrados durante el escaneo:
      • 22/tcp open ssh: El puerto 22 está abierto ejecutando SSH (Secure Shell), utilizado para la administración remota segura de sistemas.
      • 3001/tcp open nessus: El puerto 3001 está abierto ejecutando lo que Nmap identifica como Nessus, un escáner de vulnerabilidades.
  2. Este escaneo básico proporciona información valiosa sobre los servicios de red que se ejecutan en tu máquina. En términos prácticos, esta información ayuda a:

    • Realizar auditorías de seguridad identificando puertos abiertos innecesarios que podrían ser explotados.
    • Solucionar problemas de red verificando que los servicios esperados estén disponibles.
    • Detectar incidentes al localizar servicios inesperados que podrían indicar una intrusión.

Recuerda que el escaneo de redes solo debe realizarse en sistemas de tu propiedad o en aquellos para los que tengas permiso explícito. Escanear redes sin autorización puede violar leyes y normas éticas. Obtén siempre los permisos adecuados antes de escanear cualquier sistema que no sea el tuyo.

Realizando un Escaneo de Detección de SO

Nmap no se limita solo a encontrar puertos abiertos. También puede intentar determinar el sistema operativo (SO) de la máquina objetivo. Esta función es increíblemente útil para administradores de red y profesionales de seguridad, ya que diferentes sistemas operativos tienen distintas vulnerabilidades y requieren diferentes medidas de seguridad.

Antes de comenzar, es importante entender cómo funciona la detección de SO. Nmap envía paquetes especialmente diseñados al objetivo y analiza las respuestas. Cada sistema operativo responde de manera ligeramente diferente a las solicitudes de red, creando una "huella digital" única que Nmap puede comparar con su base de datos.

  1. Para realizar un escaneo de detección de SO, utilizamos la bandera -O (ten en cuenta que es la letra 'O' mayúscula, no el número cero). Este escaneo requiere privilegios de root porque necesita enviar y analizar paquetes sin procesar (raw packets) a bajo nivel. Utilizaremos sudo para ejecutar este comando. Reemplaza <YOUR_IP> con la dirección IP real que deseas escanear:
sudo nmap -O <YOUR_IP>

Por ejemplo, si tu IP objetivo es 172.19.0.3, ejecutarías:

sudo nmap -O 172.19.0.3
  1. La salida mostrará los puertos abiertos como en un escaneo básico, pero ahora incluirá información del sistema operativo. Así es como se vería un resultado típico:
Starting Nmap 7.80 ( https://nmap.org ) at 2024-09-24 10:01 CST
Nmap scan report for 336efdcfb776.external (172.19.0.3)
Host is up (0.000035s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6.32
OS details: Linux 2.6.32
Network Distance: 0 hops

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1.76 seconds
  1. Examinemos en detalle la nueva información relacionada con el SO:

    • "Device type: general purpose": Indica que el dispositivo es un sistema informático estándar en lugar de hardware especializado como un router o un dispositivo IoT.
    • "Running: Linux 2.6.X": La suposición principal de Nmap sobre la familia y versión del sistema operativo.
    • "OS CPE": Es un identificador estandarizado para la versión del sistema operativo.
    • "OS details": Una identificación de versión más específica basada en la coincidencia de la huella digital.
  2. Comprender esta información es valioso para varias aplicaciones prácticas:

    • Los profesionales de seguridad la usan para identificar sistemas potencialmente vulnerables que necesitan parches.
    • Los administradores de red mantienen inventarios precisos de sus dispositivos de red.
    • Los administradores de sistemas verifican que las máquinas estén ejecutando los sistemas operativos previstos.

Ten en cuenta que la detección de SO no es perfecta. Varios factores pueden afectar la precisión:

  • Los firewalls pueden bloquear las sondas que Nmap utiliza para la detección.
  • Las configuraciones personalizadas del kernel podrían no coincidir con las huellas digitales estándar.
  • Las máquinas virtuales a veces muestran el SO del anfitrión en lugar del SO invitado.

Para obtener mejores resultados, combina la detección de SO con otras técnicas de Nmap y verifica los hallazgos a través de múltiples métodos cuando sea posible.

Escaneando un Rango de Red

En entornos de red reales, a menudo es necesario escanear múltiples direcciones IP o segmentos de red completos. Esto es útil para descubrir todos los dispositivos de una red, una tarea común para administradores y profesionales de seguridad. Intentemos escanear un rango de red.

  1. Comenzaremos escaneando un pequeño rango de direcciones IP. Este suele ser el primer paso al explorar una red desconocida. El siguiente comando escanea 20 direcciones IP consecutivas comenzando desde 172.19.0.1:
nmap 172.19.0.1-20

Este comando le indica a Nmap que verifique secuencialmente cada dirección IP desde 172.19.0.1 hasta 172.19.0.20, informando qué hosts están en línea y qué puertos tienen abiertos.

  1. Ahora, escaneemos una subred completa utilizando la notación CIDR que aprendimos anteriormente. El sufijo /24 significa que estamos escaneando las 256 direcciones del último octeto. Ejecuta el siguiente comando, reemplazando <YOUR_NETWORK> con tu dirección de red:
nmap YOUR_NETWORK /24

Por ejemplo:

nmap 172.19.0.0/24

Este escaneo verificará cada IP desde 172.19.0.0 hasta 172.19.0.255. La notación /24 es equivalente a una máscara de subred 255.255.255.0.

  1. Para guardar los resultados del escaneo para documentación o análisis posterior, utilizamos la bandera -oN (salida normal). Esto crea un archivo de texto legible por humanos:
nmap 172.19.0.0/24 -oN network_scan.txt

El comando realiza el mismo escaneo de subred pero escribe la salida en network_scan.txt en tu directorio de trabajo actual.

  1. Examinemos el contenido del archivo de salida:
cat network_scan.txt

La salida muestra información detallada sobre cada host que respondió. Aquí tienes un ejemplo de lo que podrías ver:

## Nmap 7.80 scan initiated Fri Sep 27 15:45:29 2024 as: nmap -oN network_scan.txt 172.19.0.0/24
Nmap scan report for iZrj9gvdh5xn02z8rmsn9mZ (172.19.0.1)
Host is up (0.00045s latency).
Not shown: 997 closed ports
PORT      STATE SERVICE
22/tcp    open  ssh
111/tcp   open  rpcbind
10010/tcp open  rxapi

Nmap scan report for node_openresty.external (172.19.0.2)
Host is up (0.00047s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
80/tcp open  http

Nmap scan report for 36cff415ddd9.external (172.19.0.3)
Host is up (0.00045s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus

Nmap scan report for 041bf22f47a1.external (172.19.0.4)
Host is up (0.00050s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus

Nmap scan report for 2299e8eff7e5.external (172.19.0.5)
Host is up (0.00048s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus

## Nmap done at Fri Sep 27 15:45:32 2024 -- 256 IP addresses (5 hosts up) scanned in 3.25 seconds
  1. Desglosemos la salida:

    • El escaneo cubrió las 256 direcciones posibles en el rango 172.19.0.0/24.
    • Solo 5 hosts respondieron al escaneo (estaban "activos").
    • Cada entrada de host muestra:
      • Nombre de host (si es resoluble) y dirección IP.
      • Medición de la latencia de red.
      • Número de puertos verificados (los puertos cerrados no se muestran por defecto).
      • Lista de puertos abiertos con sus servicios asociados.
  2. Las aplicaciones prácticas del escaneo de redes incluyen:

    • Inventario de red: Mantener una lista precisa de todos los dispositivos en tu red.
    • Auditoría de seguridad: Identificar dispositivos o servicios no autorizados.
    • Resolución de problemas: Verificar la conectividad de red y la disponibilidad de servicios.
    • Evaluación de vulnerabilidades: Descubrir servicios potencialmente vulnerables.

Recuerda que el escaneo de redes solo debe realizarse en redes de tu propiedad o en aquellas que tengas permiso explícito para escanear. El escaneo no autorizado puede violar leyes de privacidad o políticas de uso de red.

Resumen

En este laboratorio, has aprendido los fundamentos del escaneo de redes utilizando Nmap, una herramienta potente para el reconocimiento de redes y la evaluación de seguridad. Has practicado la instalación de Nmap, la realización de escaneos básicos para identificar puertos y servicios abiertos, la detección de sistemas operativos y la exploración de rangos de red, gestionando eficazmente los resultados de los escaneos.

Estas habilidades constituyen la base para prácticas de seguridad de red más avanzadas. Recuerda obtener siempre la autorización adecuada antes de escanear redes y utiliza este conocimiento de manera responsable para mejorar la seguridad digital.