Cómo escanear múltiples direcciones IP simultáneamente con Nmap en Ciberseguridad

NmapAdvanced
Practicar Ahora

Introducción

En el campo de la ciberseguridad, comprender la infraestructura de su red es esencial para mantener la seguridad. Nmap (Network Mapper) es una herramienta de código abierto ampliamente utilizada que permite a los profesionales de la seguridad descubrir hosts y servicios en redes informáticas. Este tutorial le guiará a través del proceso de uso de Nmap para escanear múltiples direcciones IP simultáneamente, lo que le permitirá mapear su red de manera eficiente e identificar posibles problemas de seguridad.

Al final de este laboratorio, comprenderá cómo instalar Nmap, realizar escaneos básicos, apuntar a múltiples direcciones IP utilizando diferentes técnicas e interpretar los resultados. Estas habilidades forman una parte fundamental del reconocimiento de red en las evaluaciones de ciberseguridad y son valiosas tanto para las operaciones de seguridad defensivas como ofensivas.

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 intermedio con una tasa de finalización del 54%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.

Instalación de Nmap y Realización de su Primer Escaneo

En este primer paso, instalaremos Nmap en nuestro sistema Ubuntu y realizaremos un escaneo básico para verificar que funciona correctamente.

Instalación de Nmap

Nmap está disponible en los repositorios de Ubuntu, lo que facilita su instalación. Abra una terminal y ejecute los siguientes comandos:

## Actualizar las listas de paquetes
sudo apt update

## Instalar Nmap
sudo apt install nmap -y

Este comando descargará e instalará Nmap junto con cualquier dependencia requerida. Verifiquemos que la instalación se realizó correctamente comprobando la versión de Nmap:

nmap --version

Debería ver una salida similar a esta:

Nmap version 7.80 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.3.3 openssl-1.1.1f libssh2-1.8.0 libz-1.2.11 libpcre-8.39
Compiled without: nmap-update npcap ipv6
Available nsock engines: epoll poll select

Comprensión de la Sintaxis Básica de Nmap

La sintaxis básica para Nmap es:

nmap [tipo de escaneo] [opciones] [objetivo]

Donde:

  • [tipo de escaneo] especifica el tipo de escaneo a realizar (por ejemplo, escaneo TCP SYN)
  • [opciones] son parámetros adicionales para personalizar el escaneo
  • [objetivo] es el host o la red a escanear

Su Primer Escaneo: Escaneo de la Máquina Local

Comencemos con un escaneo simple de su máquina local. Esta es una forma segura de probar Nmap sin escanear redes externas:

nmap localhost

Este comando escanea los 1000 puertos TCP más comunes en su máquina local. Debería ver una salida similar a esta:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-23 10:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s 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 0.07 seconds

La salida muestra:

  • La hora de inicio del escaneo
  • El objetivo que se está escaneando
  • El estado del host (activo o inactivo)
  • Puertos abiertos con sus nombres de servicio
  • Estadísticas del escaneo

Tenga en cuenta que los puertos abiertos exactos que vea pueden diferir según la configuración de su sistema.

Comprensión de los Estados de los Puertos

Nmap categoriza los puertos en diferentes estados:

  • open (abierto): Una aplicación está aceptando activamente conexiones en este puerto
  • closed (cerrado): El puerto es accesible, pero ninguna aplicación está escuchando en él
  • filtered (filtrado): Nmap no puede determinar si el puerto está abierto porque un firewall está bloqueando el acceso
  • unfiltered (no filtrado): El puerto es accesible, pero Nmap no puede determinar si está abierto o cerrado
  • open|filtered (abierto|filtrado): Nmap no puede determinar si el puerto está abierto o filtrado
  • closed|filtered (cerrado|filtrado): Nmap no puede determinar si el puerto está cerrado o filtrado

En los resultados de su escaneo, la mayoría de los puertos probablemente se enumerarán como "cerrados", con algunos puertos "abiertos" para los servicios que se ejecutan en su sistema.

Escaneo de Múltiples Direcciones IP Utilizando Diferentes Métodos

Ahora que tenemos Nmap instalado y hemos realizado nuestro primer escaneo, exploremos diferentes formas de escanear múltiples direcciones IP simultáneamente. Esto es particularmente útil para los administradores de red y los profesionales de la seguridad que necesitan evaluar múltiples sistemas de manera eficiente.

Método 1: Uso de Rangos de IP

Una de las formas más fáciles de escanear múltiples direcciones IP es especificando un rango de IP. Creemos una pequeña red virtual para escanear de forma segura.

Primero, veamos nuestras interfaces de red actuales:

ip addr show

Ahora, escanearmos un rango de direcciones IP en nuestra red local. Para fines de demostración, usaremos un rango pequeño:

nmap 127.0.0.1-5

Este comando escanea 5 direcciones IP: 127.0.0.1, 127.0.0.2, 127.0.0.3, 127.0.0.4 y 127.0.0.5. Verá la salida para cada host que responda al escaneo. Normalmente, solo 127.0.0.1 (localhost) responderá.

Método 2: Uso de la Notación CIDR

Otro método común para especificar múltiples objetivos es usar la notación CIDR (Classless Inter-Domain Routing), que es una forma concisa de especificar rangos de direcciones IP.

Escaneemos el rango de loopback local:

nmap 127.0.0.0/24

Este comando escanea 256 direcciones IP desde 127.0.0.0 hasta 127.0.0.255. El /24 indica que los primeros 24 bits de la dirección IP son fijos, mientras que los últimos 8 bits varían.

Para que el escaneo sea más rápido y se centre solo en encontrar hosts activos sin escanear puertos, podemos usar la opción -sn:

nmap -sn 127.0.0.0/24

Esto realiza un escaneo ping que solo determina si los hosts están en línea, sin escanear sus puertos. Debería ver una salida como:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-23 10:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
Nmap done: 256 IP addresses (1 host up) scanned in 2.66 seconds

Método 3: Uso de una Lista de Direcciones IP

Para direcciones IP específicas no secuenciales, puede crear un archivo que contenga los objetivos y usar la opción -iL.

Creemos un archivo con algunas direcciones IP:

echo "127.0.0.1
127.0.0.2
127.0.0.5" > targets.txt

Ahora, escanee estos objetivos específicos:

nmap -iL targets.txt

Este comando lee las direcciones IP del archivo targets.txt y escanea cada una.

Método 4: Combinación de Múltiples Especificaciones de Objetivo

Nmap le permite combinar diferentes métodos de orientación en un solo comando. Por ejemplo:

nmap 127.0.0.1 127.0.0.5-10 127.0.0.0/29

Este comando escanea:

  • La dirección IP única 127.0.0.1
  • El rango de IP de 127.0.0.5 a 127.0.0.10
  • El rango CIDR 127.0.0.0/29 (que incluye 127.0.0.0 a 127.0.0.7)

Optimización de la Velocidad de Escaneo

Al escanear múltiples objetivos, el tiempo de escaneo puede aumentar significativamente. Nmap proporciona opciones para controlar el tiempo de escaneo y aumentar la eficiencia:

nmap -T4 127.0.0.0/24

La opción -T4 establece una plantilla de tiempo "agresiva", lo que acelera el escaneo. Las plantillas de tiempo varían de 0 (paranoico) a 5 (insano), con valores más altos que resultan en escaneos más rápidos pero potencialmente menos confiables. Para escaneos de rutina, -T4 ofrece un buen equilibrio entre velocidad y fiabilidad.

Comprensión de la Salida de Nmap y Guardado de Resultados

Al realizar escaneos de red, es importante comprender cómo interpretar los resultados y guardarlos para un análisis o informe posterior. En este paso, exploraremos diferentes formatos de salida de Nmap y cómo guardar los resultados del escaneo.

Comprensión de la Salida Detallada de Nmap

Realicemos un escaneo más detallado de localhost para comprender mejor la salida de Nmap:

nmap -v localhost

La opción -v habilita la salida detallada, proporcionando más información sobre el escaneo. Debería ver una salida similar a:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-23 10:30 UTC
Initiating Ping Scan at 10:30
Scanning localhost (127.0.0.1) [2 ports]
Completed Ping Scan at 10:30, 0.00s elapsed (1 total hosts)
Initiating Connect Scan at 10:30
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
Discovered open port 443/tcp on 127.0.0.1
Completed Connect Scan at 10:30, 0.02s elapsed (1000 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
443/tcp open  https

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

Esta salida proporciona:

  • El progreso del escaneo
  • Cada puerto abierto descubierto en tiempo real
  • El informe final del escaneo con puertos y servicios abiertos
  • Estadísticas de tiempo

Guardado de Resultados del Escaneo en Archivos

Nmap puede guardar los resultados en varios formatos, lo cual es útil para la documentación, el análisis posterior o el intercambio con los miembros del equipo.

Formato de Salida Normal

Para guardar los resultados del escaneo en el formato de salida estándar de Nmap:

nmap localhost -oN normal_output.txt

Esto crea un archivo llamado normal_output.txt con los resultados del escaneo en el mismo formato que se muestra en la terminal.

Formato de Salida XML

La salida XML es útil para el procesamiento programático de los resultados del escaneo:

nmap localhost -oX xml_output.xml

Esto crea un archivo XML que puede ser analizado por otras herramientas o scripts.

Formato de Salida Grepable

Para un análisis fácil con herramientas de línea de comandos como grep:

nmap localhost -oG grep_output.txt

Este formato es especialmente útil para extraer rápidamente información específica utilizando herramientas como grep.

Todos los Formatos a la Vez

Para guardar la salida en los tres formatos simultáneamente:

nmap localhost -oA scan_results

Esto crea tres archivos: scan_results.nmap, scan_results.xml y scan_results.gnmap.

Visualización de los Resultados Guardados

Examinemos uno de los archivos de salida guardados:

cat normal_output.txt

Debería ver los resultados del escaneo de Nmap que se guardaron previamente en este archivo.

Combinación de Opciones de Salida con Escaneo de Múltiples IP

Ahora combinemos lo que hemos aprendido escaneando múltiples IP y guardando los resultados:

nmap 127.0.0.1-5 -oN multiple_hosts.txt

Este comando escanea 5 direcciones IP y guarda los resultados en multiple_hosts.txt.

Examinemos estos resultados:

cat multiple_hosts.txt

Verá los resultados del escaneo para todas las direcciones IP especificadas. Normalmente, solo 127.0.0.1 se mostrará como "activo" con puertos abiertos en este ejemplo.

Adición de la Detección de Versión del Servicio

Para recopilar más información sobre los servicios que se ejecutan en los puertos abiertos, podemos usar la opción -sV:

nmap -sV localhost -oN service_scan.txt

Esto realiza la detección de la versión del servicio y guarda los resultados en service_scan.txt.

Veamos qué información adicional proporciona esto:

cat service_scan.txt

La salida ahora debería incluir información de la versión para los servicios detectados, lo cual es valioso para las evaluaciones de seguridad, ya que las versiones específicas pueden tener vulnerabilidades conocidas.

Opciones de Escaneo Avanzadas para la Evaluación de Redes

Ahora que entendemos los conceptos básicos de Nmap y cómo escanear múltiples objetivos, exploremos algunas opciones de escaneo avanzadas que son particularmente útiles para las evaluaciones de ciberseguridad.

Selección de Puertos y Tipos de Escaneo

De forma predeterminada, Nmap escanea los 1000 puertos TCP más comunes. Sin embargo, puede personalizar qué puertos escanear.

Escaneo de Puertos Específicos

Para escanear puertos específicos:

nmap -p 22,80,443 localhost

Este comando escanea solo los puertos 22, 80 y 443.

Para escanear un rango de puertos:

nmap -p 20-25 localhost

Esto escanea los puertos del 20 al 25.

Para escanear los 65535 puertos TCP:

nmap -p- localhost

Tenga en cuenta que escanear todos los puertos lleva significativamente más tiempo.

Uso de Diferentes Tipos de Escaneo

Nmap admite varias técnicas de escaneo. El valor predeterminado es un escaneo TCP SYN (-sS), pero esto requiere privilegios de root. Sin privilegios de root, Nmap usa un escaneo TCP connect (-sT).

Intentemos un escaneo TCP connect explícitamente:

nmap -sT localhost

Para un escaneo más sigiloso (requiere privilegios de root):

sudo nmap -sS localhost

Para escanear puertos UDP (que a menudo se pasa por alto pero es importante para la seguridad):

sudo nmap -sU -p 53,161,162 localhost

Esto escanea los puertos UDP 53 (DNS), 161 y 162 (SNMP).

Detección del Sistema Operativo y Escaneo de Versiones

Para obtener información más completa, combinemos la detección del sistema operativo y el escaneo de la versión del servicio:

sudo nmap -sS -O -sV localhost

La opción -O intenta identificar el sistema operativo del objetivo. Esto proporciona información valiosa para las evaluaciones de seguridad, ya que los diferentes sistemas operativos pueden tener diferentes vulnerabilidades.

Desglosemos lo que hace cada opción:

  • -sS: Realiza un escaneo SYN (requiere root)
  • -O: Intenta identificar el sistema operativo del objetivo
  • -sV: Examina los puertos abiertos para determinar la información del servicio/versión

La salida incluirá información detallada sobre el sistema operativo y las versiones de los servicios que se ejecutan en el objetivo.

Uso de Scripts de Nmap

Nmap incluye un potente Nmap Scripting Engine (NSE) que puede realizar una amplia gama de tareas, desde la detección avanzada de servicios hasta el escaneo de vulnerabilidades.

Ejecutemos un script básico que verifica los servicios comúnmente expuestos:

nmap --script=default localhost

Para un escaneo más centrado en la seguridad:

nmap --script=vuln localhost

Esto ejecuta scripts de detección de vulnerabilidades contra el objetivo, lo que puede identificar problemas de seguridad comunes.

Opciones de Tiempo y Rendimiento

Al escanear múltiples objetivos, la optimización del rendimiento del escaneo se vuelve crucial. Ya hemos visto la opción -T, pero hay controles más granulares disponibles.

nmap -T4 --max-rtt-timeout 200ms --min-rate 1000 127.0.0.1/24

Este comando:

  • Utiliza la plantilla de tiempo "agresiva" (-T4)
  • Establece el tiempo de espera máximo de ida y vuelta en 200 ms
  • Establece una velocidad mínima de 1000 paquetes por segundo

Esta configuración puede acelerar significativamente los escaneos de múltiples hosts, aunque pueden ser menos confiables en redes congestionadas o de alta latencia.

Combinación de Todo para un Escaneo Completo

Combinemos múltiples técnicas para un escaneo completo de nuestra red local:

sudo nmap -sS -sV -O -p 1-1000 --script=default -T4 -oA comprehensive_scan 127.0.0.1

Este comando realiza:

  • Un escaneo SYN
  • Detección de la versión del servicio
  • Detección del sistema operativo
  • Escanea los puertos 1-1000
  • Ejecuta scripts predeterminados
  • Utiliza tiempo agresivo
  • Guarda los resultados en todos los formatos con el prefijo "comprehensive_scan"

Examinemos los resultados:

cat comprehensive_scan.nmap

Este escaneo completo proporciona una gran cantidad de información sobre el sistema objetivo, incluidos los puertos abiertos, los servicios en ejecución, las versiones de los servicios y las posibles vulnerabilidades.

Consideraciones Éticas y Mejores Prácticas

Antes de concluir, es importante enfatizar que Nmap solo debe usarse en redes donde tenga permiso explícito para escanear. El escaneo no autorizado puede ser ilegal y puede percibirse como una acción hostil.

Algunas de las mejores prácticas a seguir:

  1. Siempre obtenga permiso antes de escanear cualquier red o sistema
  2. Use escaneos menos agresivos cuando sea posible para minimizar el impacto en la red
  3. Sea consciente de la posibilidad de falsos positivos y falsos negativos
  4. Documente sus actividades de escaneo para referencia y responsabilidad
  5. Respete la privacidad y la confidencialidad de la información descubierta

Resumen

En este laboratorio, ha aprendido a usar Nmap para escanear eficientemente múltiples direcciones IP simultáneamente, una habilidad crucial para los administradores de red y los profesionales de ciberseguridad. Cubrimos:

  1. Instalación de Nmap y realización de escaneos básicos para comprender su funcionalidad principal
  2. Varios métodos para especificar múltiples objetivos, incluyendo rangos de IP, notación CIDR y listas de objetivos
  3. Cómo interpretar y guardar los resultados del escaneo en diferentes formatos para un análisis posterior
  4. Técnicas de escaneo avanzadas que proporcionan una visión más profunda de los servicios de red y las posibles vulnerabilidades

Estas habilidades forman una base para el reconocimiento de la red y la evaluación de la seguridad. Al escanear eficientemente múltiples direcciones IP, puede mapear rápidamente una red, identificar los servicios en ejecución y descubrir posibles debilidades de seguridad.

Para desarrollar aún más sus habilidades en Nmap, considere explorar:

  • Scripts NSE más especializados para evaluaciones de seguridad enfocadas
  • Integración de Nmap con otras herramientas de seguridad
  • Automatización de escaneos con scripts para la monitorización regular de la seguridad
  • Desarrollo de scripts NSE personalizados para necesidades de escaneo específicas

Recuerde que las herramientas de escaneo de red como Nmap siempre deben usarse de manera responsable y ética, con la autorización adecuada para escanear los sistemas objetivo.