Usar Nmap para Escanear Puertos de Red Comunes

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á cómo utilizar Nmap para escanear puertos de red comunes. El escaneo de puertos es una técnica crucial en la seguridad de redes, que ayuda a identificar los puertos abiertos en un sistema objetivo. Estos puertos abiertos pueden ser puntos de entrada potenciales para los atacantes, por lo que es una habilidad esencial para los administradores de redes y los profesionales de seguridad.

Al dominar Nmap, una poderosa herramienta de escaneo de redes de código abierto, puede descubrir servicios activos en una red, evaluar vulnerabilidades de seguridad y mantener la integridad de sus sistemas.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") nmap/NmapGroup -.-> nmap/common_ports("Common Ports Scanning") 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/service_detection("Service Detection") subgraph Lab Skills nmap/installation -.-> lab-415920{{"Usar Nmap para Escanear Puertos de Red Comunes"}} nmap/common_ports -.-> lab-415920{{"Usar Nmap para Escanear Puertos de Red Comunes"}} nmap/save_output -.-> lab-415920{{"Usar Nmap para Escanear Puertos de Red Comunes"}} nmap/port_scanning -.-> lab-415920{{"Usar Nmap para Escanear Puertos de Red Comunes"}} nmap/scan_types -.-> lab-415920{{"Usar Nmap para Escanear Puertos de Red Comunes"}} nmap/target_specification -.-> lab-415920{{"Usar Nmap para Escanear Puertos de Red Comunes"}} nmap/service_detection -.-> lab-415920{{"Usar Nmap para Escanear Puertos de Red Comunes"}} end

Comprender los puertos de red e instalar un servidor web

Antes de comenzar a escanear puertos, es fundamental entender qué son los puertos de red y por qué son importantes en el campo de la ciberseguridad. Los puertos de red juegan un papel vital para permitir la comunicación entre diferentes aplicaciones y servicios dentro de una red informática. Actúan como puertas de enlace que permiten que los datos fluyan hacia dentro y hacia fuera de un sistema, lo que los convierte en un concepto esencial para cualquier persona interesada en la seguridad de redes.

¿Qué son los puertos de red?

Los puertos de red son puntos finales virtuales para la comunicación en una red informática. Piénsalos como puertas a través de las cuales diferentes aplicaciones y servicios pueden enviar y recibir datos. Permiten que múltiples aplicaciones y servicios compartan recursos de red en el mismo sistema sin interferir entre sí. Los puertos se identifican por números que van desde 0 hasta 65535, y diferentes rangos de estos números están designados para fines específicos:

  • Puertos 0 - 1023: Estos son puertos bien conocidos reservados para servicios estándar. Por ejemplo, HTTP (utilizado para la navegación web) normalmente utiliza el puerto 80, FTP (para la transferencia de archivos) utiliza el puerto 21 y SSH (para el acceso remoto seguro) utiliza el puerto 22.
  • Puertos 1024 - 49151: Estos son puertos registrados para aplicaciones específicas. Los desarrolladores de software pueden registrar un número de puerto en particular para que lo utilice su aplicación.
  • Puertos 49152 - 65535: Estos son puertos dinámicos o privados. Son utilizados por las aplicaciones cuando necesitan establecer una conexión temporal.

Configurar un servidor web para el escaneo

Para practicar el escaneo de puertos, primero configuraremos un servidor web en nuestra máquina local. Un servidor web es un programa que utiliza HTTP (Protocolo de Transferencia de Hipertexto) para servir archivos que forman páginas web a los usuarios. Cuando un usuario escribe una dirección web en su navegador, el navegador envía una solicitud al servidor web, y el servidor responde enviando las páginas web adecuadas. Por defecto, los servidores web se ejecutan en el puerto 80.

  1. Abra una ventana de terminal en el entorno de la máquina virtual (VM) de LabEx. La terminal es una interfaz basada en texto que le permite interactuar con el sistema operativo escribiendo comandos. Debería estar en el directorio predeterminado /home/labex/project. Para confirmar su directorio actual, puede utilizar el siguiente comando:

    pwd

    El comando pwd significa "print working directory" (imprimir directorio de trabajo). Cuando ejecute este comando, le mostrará la ruta del directorio actual en el que se encuentra. Debería ver una salida como esta:

    /home/labex/project
  2. Instale el servidor web Apache2 utilizando el siguiente comando:

    sudo apt update && sudo apt install apache2 -y

    El comando sudo se utiliza para ejecutar comandos con privilegios administrativos. apt update actualiza la información de los paquetes en su sistema, asegurándose de que tenga la información más reciente sobre los paquetes de software disponibles. apt install apache2 -y instala el servidor web Apache2. La opción -y responde automáticamente "sí" a cualquier solicitud durante el proceso de instalación. Verá mucha salida a medida que progresa la instalación, lo que muestra los pasos que el sistema está realizando para instalar el software.

  3. Inicie el servicio de Apache2:

    sudo service apache2 start

    Después de instalar el servidor web Apache2, debe iniciar su servicio. El comando service se utiliza para administrar los servicios del sistema. En este caso, estamos iniciando el servicio de Apache2 para que pueda comenzar a aceptar solicitudes entrantes.

  4. Verifique que Apache2 se esté ejecutando correctamente:

    sudo service apache2 status

    Para asegurarse de que el servicio de Apache2 se esté ejecutando como se espera, puede utilizar la opción status con el comando service. Esto le mostrará el estado actual del servicio de Apache2. Debería ver una salida que indique que Apache2 está activo (en ejecución), similar a:

    * apache2 is running
  5. También puede verificar que el servidor web sea accesible creando una nueva pestaña de "Servicio web". Haga clic en el símbolo + en la pestaña superior del entorno virtual, seleccione la opción "Servicio web" e ingrese el puerto 80. Esto intentará conectarse al servidor web que se está ejecutando en el puerto 80. Si todo está configurado correctamente, debería mostrar la página de bienvenida predeterminada de Apache2.

Ahora que tenemos un servidor web en funcionamiento en nuestro sistema, se ha abierto el puerto 80 para la comunicación. En el siguiente paso, utilizaremos Nmap para descubrir este puerto abierto.

Introducción a Nmap y realización de un escaneo de puertos comunes

Ahora que hemos configurado con éxito un servidor web, es hora de aprender cómo utilizar Nmap para descubrir qué puertos están abiertos en nuestro sistema. Comprender los puertos abiertos es crucial en la seguridad de redes, ya que los puertos abiertos pueden ser puntos de entrada potenciales para los atacantes. Al utilizar Nmap, podemos identificar estos puertos y tomar las medidas de seguridad adecuadas.

¿Qué es Nmap?

Nmap, abreviatura de Network Mapper (Mapeador de Redes), es una herramienta gratuita y de código abierto bien conocida que se utiliza para la detección de redes y la auditoría de seguridad. Tiene una amplia gama de aplicaciones en el campo de la seguridad de redes:

  • Descubrir hosts y servicios en una red: Nmap puede ayudarte a averiguar qué dispositivos están conectados a una red y qué servicios están ofreciendo. Por ejemplo, puede detectar si hay un servidor de archivos, un servidor web o un servidor de correo en la red.
  • Crear un inventario de los sistemas que se ejecutan en una red: Puedes utilizar Nmap para crear una lista de todos los sistemas en una red, incluyendo sus direcciones IP y los servicios que están ejecutando. Este inventario es útil para que los administradores de redes gestionen y mantengan la red.
  • Comprobar qué puertos están abiertos en los hosts objetivos: Los puertos son como puertas de un ordenador. Un puerto abierto significa que un servicio está escuchando y listo para aceptar conexiones. Nmap puede escanear un host objetivo para averiguar qué puertos están abiertos.
  • Identificar el sistema operativo y las versiones de los servicios de los hosts de red: Saber el sistema operativo y las versiones de los servicios que se ejecutan en un host puede ayudar a los profesionales de seguridad a determinar si hay alguna vulnerabilidad conocida que los atacantes podrían explotar.

Escaneo de puertos comunes con Nmap

Nmap ofrece una variedad de opciones de escaneo. Para aquellos que están empezando, la opción de escaneo rápido (-F) es muy útil. Por defecto, Nmap escanea 1000 puertos, lo que puede llevar mucho tiempo. La opción -F reduce el número de puertos a escanear a los 100 puertos más comunes, lo que hace que el escaneo sea mucho más rápido.

Realicemos un escaneo rápido en nuestra máquina local para encontrar el servidor web que acabamos de configurar:

  1. Abre tu terminal. En la terminal, escribirás un comando para interactuar con el sistema operativo. Escribe el siguiente comando y presiona Enter:

    nmap -F localhost

    Desglosemos este comando:

    • nmap: Esta es la herramienta de escaneo que estamos utilizando. Es el comando principal que le dice al sistema que inicie un escaneo de red.
    • -F: Esta opción habilita el modo de escaneo rápido. Limita el escaneo a los 100 puertos más comunes, lo que te ahorra tiempo.
    • localhost: Este es el objetivo que estamos escaneando. localhost se refiere a tu máquina local, que tiene la dirección IP 127.0.0.1.
  2. Después de ejecutar el comando, verás una salida similar a esta:

    Starting Nmap 7.80 ( https://nmap.org ) at 2023-XX-XX XX:XX UTC
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000097s latency).
    Not shown: 96 closed ports
    PORT   STATE SERVICE
    80/tcp open  http
    
    Nmap done: 1 IP address (1 host up) scanned in X.XX seconds

    Esta salida proporciona información importante:

    • El escaneo se realizó en tu máquina local, que tiene la dirección IP 127.0.0.1.
    • El puerto 80 está abierto y está ejecutando el servicio HTTP. Este es el servidor web Apache que instalamos anteriormente, ya que, por defecto, Apache escucha en el puerto 80.
    • Los otros 96 puertos comunes están cerrados. No se muestran en detalle en la salida.
  3. Si quieres información más detallada, como la versión del servicio que se ejecuta en los puertos abiertos, puedes realizar un escaneo más detallado. Utiliza el siguiente comando:

    nmap -sV -F localhost

    La opción -sV en este comando intenta averiguar la versión de los servicios que se ejecutan en los puertos abiertos. La salida será más detallada:

    Starting Nmap 7.80 ( https://nmap.org ) at 2023-XX-XX XX:XX UTC
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000097s latency).
    Not shown: 96 closed ports
    PORT   STATE SERVICE VERSION
    80/tcp open  http    Apache httpd 2.4.X
    
    Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
    Nmap done: 1 IP address (1 host up) scanned in X.XX seconds

    Esta salida confirma que nuestro servidor web Apache se está ejecutando en el puerto 80 y también nos dice la versión del servidor HTTP Apache.

Comprender los resultados

Los resultados del escaneo muestran que el puerto 80 está abierto y está ejecutando el servicio HTTP. Esto es lo que esperábamos, ya que instalamos e iniciamos el servidor web Apache, que, por defecto, escucha en el puerto 80. En una situación real, saber qué puertos están abiertos es muy importante para los profesionales de seguridad:

  1. Identificar posibles vulnerabilidades de seguridad: Diferentes servicios que se ejecutan en puertos abiertos pueden tener vulnerabilidades conocidas. Al saber qué puertos están abiertos y qué servicios se ejecutan en ellos, los profesionales de seguridad pueden comprobar si hay algún riesgo de seguridad.
  2. Asegurarse de que solo se estén ejecutando los servicios necesarios: Tener servicios innecesarios en ejecución en puertos abiertos puede aumentar la superficie de ataque. Al identificar los puertos abiertos, los profesionales de seguridad pueden asegurarse de que solo se estén ejecutando los servicios que realmente son necesarios.
  3. Verificar que las configuraciones del firewall estén funcionando como se espera: Los firewalls se utilizan para controlar el tráfico de red entrante y saliente. Al escanear los puertos abiertos, los profesionales de seguridad pueden comprobar si el firewall está bloqueando los puertos que deben estar bloqueados y permitiendo los que deben estar abiertos.

Generación de informes de escaneo de Nmap y comprensión de las implicaciones de seguridad

En el campo de la seguridad de redes, documentar tus hallazgos es un paso crucial. Nmap ofrece capacidades integradas de generación de informes que pueden ayudarnos a registrar los resultados de los escaneos de manera más efectiva. En este paso, aprenderemos cómo generar informes de Nmap, analizar los resultados y discutir las implicaciones de seguridad de los puertos abiertos. Finalmente, detendremos adecuadamente los servicios que iniciamos para este laboratorio para garantizar la seguridad del sistema.

Uso de Nmap para generar informes

Nmap puede mostrar directamente los resultados de los escaneos en varios formatos de informe, incluyendo texto plano, XML, JSON y más. Esto es más eficiente y preciso que crear informes manualmente. Utilicemos las opciones de salida de Nmap para generar un informe:

  1. Ejecuta un escaneo de Nmap con opciones de salida:
nmap -F -sV localhost -oN /home/labex/project/nmap_report.txt

En este comando:

  • La opción -F realiza un escaneo rápido (escanea solo los 100 puertos más comunes)
  • -sV intenta determinar la versión de los servicios que se ejecutan en los puertos abiertos
  • -oN /home/labex/project/nmap_report.txt guarda la salida en formato de texto plano en el archivo especificado
  1. Visualiza el informe generado:
cat /home/labex/project/nmap_report.txt

Verás un informe que contiene información completa del escaneo, incluyendo:

  • Fecha y hora del escaneo
  • Información del objetivo
  • Lista de puertos abiertos
  • Servicios y versiones que se ejecutan en cada puerto abierto

Más opciones de formatos de informe

Nmap admite múltiples formatos de salida adecuados para diferentes propósitos:

  • -oX filename - Salida en formato XML, adecuado para el procesamiento automatizado
  • -oG filename - Salida en formato Grepable, conveniente para buscar con grep
  • -oJ filename - Salida en formato JSON, adecuado para aplicaciones modernas
  • -oA filename - Salida en todos los formatos (Normal, XML y Grepable) simultáneamente

Por ejemplo, para generar un informe en formato XML:

nmap -F -sV localhost -oX /home/labex/project/nmap_report.xml

Comprensión de las implicaciones de seguridad de los resultados del escaneo

A partir de nuestro informe de escaneo, podemos ver que el puerto 80/tcp está abierto y ejecutando un servicio HTTP (servidor web Apache). Esto tiene varias implicaciones de seguridad importantes:

  1. Posible punto de entrada de ataques: Los puertos abiertos son como puertas en un edificio. Cada puerto abierto puede ser potencialmente una forma para que los atacantes entren en tu sistema.

  2. Riesgos de vulnerabilidad de servicios: Los servicios que se ejecutan en puertos abiertos pueden tener fallas de seguridad que los atacantes podrían explotar.

  3. Canal de comunicación que requiere monitoreo: Los puertos abiertos se utilizan para la comunicación, y debes monitorear la actividad en estos puertos para detectar cualquier comportamiento inusual.

Para garantizar la seguridad de los puertos, debes seguir estas mejores prácticas:

  • Mantén abiertos solo los puertos necesarios: Los puertos abiertos innecesarios aumentan la superficie de ataque de tu sistema.
  • Actualiza regularmente los servicios que utilizan estos puertos: Las actualizaciones a menudo incluyen parches de seguridad que solucionan vulnerabilidades.
  • Implementa reglas de firewall para restringir el acceso: Los firewalls pueden ayudar a controlar quién puede acceder a tu sistema a través de puertos específicos.
  • Monitorea la actividad de los puertos en busca de patrones inusuales: Al monitorear la actividad, puedes detectar y responder a posibles amenazas de manera oportuna.

Limpieza del laboratorio

Ahora que hemos completado nuestro ejercicio de escaneo, es hora de detener el servidor web Apache. Dejar los servicios en ejecución cuando no son necesarios puede plantear riesgos de seguridad, por lo que la limpieza adecuada es importante.

  1. Detén el servicio Apache:
sudo service apache2 stop
  1. Verifica que el servicio se haya detenido:
sudo service apache2 status

Deberías ver una salida que indique que Apache2 no está en ejecución, como:

* apache2 is not running
  1. Confirma que el puerto 80 está cerrado:
nmap -F localhost

La salida debe mostrar que el puerto 80 está cerrado o no se enumera en los puertos abiertos. Este proceso de limpieza es crucial en escenarios del mundo real para garantizar que los servicios no sigan en ejecución cuando no son necesarios, lo que puede plantear riesgos de seguridad.

Resumen

En este laboratorio, has aprendido los fundamentos del escaneo de puertos de red utilizando Nmap, una poderosa herramienta de código abierto en seguridad de redes. Has adquirido experiencia práctica en la comprensión de los puertos de red, la configuración de un servidor web con un puerto abierto, el uso de Nmap para escanear puertos comunes, la interpretación de los resultados del escaneo, la documentación de los hallazgos en un informe de seguridad y el apagado adecuado de los servicios.

Estas habilidades son la piedra angular de la evaluación de seguridad de redes. Son cruciales para los profesionales de seguridad informática, administración de redes y gestión de sistemas. Dominar el escaneo de puertos ayuda a identificar las vulnerabilidades de la red y a proteger los sistemas de accesos no autorizados.