Use Nmap to Scan Common Network Ports

NmapBeginner
Practicar Ahora

Introducción

En este laboratorio aprenderá a usar Nmap para analizar los puertos de red más comunes. El análisis de puertos es una técnica fundamental en seguridad de redes que permite identificar los puertos abiertos en un sistema objetivo. Estos puertos pueden convertirse en posibles puntos de entrada para los atacantes, por lo que esta técnica es esencial para administradores de redes y profesionales de seguridad.

Al dominar Nmap, una potente herramienta de código abierto para analizar redes, podrá detectar los servicios activos de una red, evaluar vulnerabilidades de seguridad y mantener la integridad de sus sistemas.

Comprender los puertos de red e instalar un servidor web

En este paso aprenderá qué son los puertos de red y por qué son importantes para la ciberseguridad. Los puertos de red permiten la comunicación entre distintas aplicaciones y servicios dentro de una red informática. Funcionan como puertas por las que entran y salen datos de un sistema, por lo que son un concepto fundamental para cualquier persona interesada en la seguridad de redes.

¿Qué son los puertos de red?

Los puertos de red son puntos de conexión virtuales que permiten la comunicación en una red informática. Puede imaginarlos como puertas por las que distintas aplicaciones y servicios envían y reciben datos. Gracias a ellos, varias aplicaciones y servicios pueden compartir los recursos de red de un mismo sistema sin interferir entre sí. Los puertos se identifican mediante números del 0 al 65535, agrupados en rangos destinados a usos específicos:

  • Puertos 0 - 1023: son puertos conocidos y están reservados para servicios estándar. Por ejemplo, HTTP (utilizado para navegar por la web) suele usar el puerto 80; FTP (para transferir archivos), el puerto 21; y SSH (para el acceso remoto seguro), el puerto 22.
  • Puertos 1024 - 49151: son puertos registrados para aplicaciones específicas. Los desarrolladores de software pueden registrar un número de puerto para que lo use su aplicación.
  • Puertos 49152 - 65535: son puertos dinámicos o privados. Las aplicaciones los usan cuando necesitan establecer una conexión temporal.

Configurar un servidor web para analizar puertos

Para practicar el análisis de puertos, primero configurará un servidor web en la máquina local. Un servidor web es un programa que utiliza HTTP (Protocolo de transferencia de hipertexto) para entregar a los usuarios los archivos que componen las páginas web. Cuando un usuario escribe la dirección de un sitio web en el navegador, este envía una solicitud al servidor web, que responde enviando las páginas correspondientes. De forma predeterminada, los servidores web utilizan el puerto 80.

Abra una ventana de terminal en el entorno de la máquina virtual de LabEx. La terminal es una interfaz de texto que permite interactuar con el sistema operativo mediante comandos. Debería encontrarse en el directorio predeterminado /home/labex/project. Para comprobar cuál es su directorio actual, ejecute:

pwd

El comando pwd significa «print working directory» (mostrar el directorio de trabajo). Al ejecutarlo, muestra la ruta del directorio actual. Debería obtener un resultado similar a este:

/home/labex/project

Instale el servidor web Apache2:

sudo apt update && sudo apt install apache2 -y

El comando sudo ejecuta comandos con privilegios administrativos. apt update actualiza la información de los paquetes del sistema y apt install apache2 -y instala el servidor web Apache2. La opción -y responde automáticamente «sí» a las solicitudes de confirmación durante la instalación.

Inicie el servicio Apache2:

sudo service apache2 start

El comando service permite administrar los servicios del sistema. En este caso, inicia Apache2 para que pueda recibir solicitudes entrantes.

Compruebe que Apache2 se está ejecutando correctamente:

sudo service apache2 status

La opción status muestra el estado actual del servicio Apache2. Debería ver un resultado similar a este:

* apache2 is running

También puede comprobar que se puede acceder al servidor web creando una pestaña nueva de tipo "Web Service". Haga clic en el símbolo + de la barra de pestañas de la máquina virtual, seleccione "Web Service" e introduzca el puerto 80. Si todo está configurado correctamente, aparecerá la página de bienvenida predeterminada de Apache2.

Ahora que el servidor web está en ejecución, el sistema tiene abierto el puerto 80 para la comunicación. En el siguiente paso usará Nmap para detectar este puerto abierto.

Introducción a Nmap y análisis de los puertos más comunes

En este paso usará Nmap para averiguar qué puertos están abiertos en el sistema del servidor web que configuró. Conocer los puertos abiertos es fundamental para la seguridad de redes, ya que pueden convertirse en posibles puntos de entrada para los atacantes. Nmap permite identificarlos para que pueda tomar las medidas de seguridad adecuadas.

¿Qué es Nmap?

Nmap, abreviatura de Network Mapper, es una conocida herramienta gratuita y de código abierto para descubrir redes y realizar auditorías de seguridad. Tiene muchos usos en el ámbito de la seguridad de redes:

  • Detectar hosts y servicios de una red: Nmap permite averiguar qué dispositivos están conectados a una red y qué servicios ofrecen. Por ejemplo, puede detectar si hay un servidor de archivos, un servidor web o un servidor de correo.
  • Crear un inventario de los sistemas conectados a una red: Puede usar Nmap para elaborar una lista de todos los sistemas de una red, incluidas sus direcciones IP y los servicios que ejecutan. Este inventario ayuda a los administradores de redes a gestionar y mantener la red.
  • Comprobar qué puertos están abiertos en los hosts objetivo: Los puertos son como puertas de un equipo. Un puerto abierto indica que hay un servicio a la escucha, preparado para aceptar conexiones. Nmap puede analizar un host objetivo para detectar qué puertos están abiertos.
  • Identificar el sistema operativo y las versiones de los servicios de los hosts de una red: Conocer el sistema operativo y las versiones de los servicios que ejecuta un host puede ayudar a los profesionales de seguridad a determinar si existen vulnerabilidades conocidas que los atacantes podrían aprovechar.

Analizar los puertos más comunes con Nmap

Nmap ofrece varias opciones de análisis. Para quienes empiezan, la opción de análisis rápido (-F) resulta muy útil. De forma predeterminada, Nmap analiza 1000 puertos, lo que puede llevar bastante tiempo. La opción -F limita el análisis a los 100 puertos más comunes y, por tanto, lo hace mucho más rápido.

Realice un análisis rápido de la máquina local para encontrar el servidor web que acaba de configurar:

Abra la terminal y ejecute un análisis rápido del sistema local:

nmap -F localhost

Este comando consta de tres partes:

  • nmap: inicia la herramienta de análisis de redes.
  • -F: activa el modo de análisis rápido y limita el análisis a los 100 puertos más comunes.
  • localhost: indica que el objetivo es la máquina local, cuya dirección IP es 127.0.0.1.

Al ejecutar el comando, verá un resultado similar a este:

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

Este resultado proporciona información importante:

  • El análisis se realizó en la máquina local, cuya dirección IP es 127.0.0.1.
  • El puerto 80 está abierto y ejecuta el servicio HTTP. Se trata del servidor web Apache que instaló anteriormente, ya que Apache escucha de forma predeterminada en el puerto 80.
  • Los demás puertos comunes están cerrados y no se muestran en detalle.

Para obtener información más detallada, incluidas las versiones de los servicios que se ejecutan en los puertos abiertos, ejecute:

nmap -sV -F localhost

La opción -sV detecta las versiones de los servicios que se ejecutan en los puertos abiertos. El resultado incluirá más detalles:

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

Este resultado confirma que el servidor web Apache se está ejecutando en el puerto 80 e identifica su versión.

Interpretar los resultados

Los resultados del análisis muestran que el puerto 80 está abierto y ejecuta el servicio HTTP. Es lo esperado, porque instaló e inició el servidor web Apache, que escucha de forma predeterminada en el puerto 80. En situaciones reales, conocer los puertos abiertos es muy importante para los profesionales de seguridad:

  • Identificar posibles vulnerabilidades de seguridad: Los distintos 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 existen riesgos.
  • Asegurarse de que solo se ejecuten los servicios necesarios: Los servicios innecesarios que se ejecutan en puertos abiertos pueden ampliar la superficie de ataque. Al identificar los puertos abiertos, los profesionales de seguridad pueden comprobar que solo se ejecuten los servicios que realmente se necesitan.
  • Verificar que las reglas del firewall funcionen como se espera: Los firewalls controlan el tráfico de red entrante y saliente. Analizar los puertos abiertos ayuda a confirmar que el firewall bloquea y permite el tráfico de los puertos previstos.

Documentar los resultados del análisis y sus implicaciones de seguridad

En el ámbito de la seguridad de redes, documentar los hallazgos es fundamental. Nmap incluye funciones para generar informes que permiten registrar los resultados del análisis de forma más eficaz. En este paso aprenderá a generar informes de Nmap, analizar los resultados y examinar las implicaciones de seguridad de los puertos abiertos. Por último, detendrá correctamente los servicios que inició para este laboratorio y así mantendrá la seguridad del sistema.

Generar informes con Nmap

Nmap puede guardar directamente los resultados del análisis en varios formatos de informe, como texto sin formato, XML, JSON y otros. Esto es más eficaz y preciso que crear los informes manualmente. Use las opciones de salida de Nmap para generar un informe:

Ejecute un análisis 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 análisis rápido (solo analiza los 100 puertos más comunes).
  • La opción -sV intenta determinar las versiones de los servicios que se ejecutan en los puertos abiertos.
  • -oN /home/labex/project/nmap_report.txt guarda la salida en texto sin formato en el archivo especificado.

Consulte el informe generado:

cat /home/labex/project/nmap_report.txt

Verá un informe con toda la información del análisis, incluidos estos datos:

  • La fecha y la hora del análisis.
  • La información del objetivo.
  • La lista de puertos abiertos.
  • Los servicios y sus versiones en cada puerto abierto.

Otras opciones de formato para los informes

Nmap admite varios formatos de salida, adecuados para distintos fines:

  • -oX filename - Genera la salida en formato XML, adecuado para el procesamiento automatizado.
  • -oG filename - Genera la salida en formato Grepable, práctico para buscar con grep.
  • -oJ filename - Genera la salida en formato JSON, adecuado para aplicaciones modernas.
  • -oA filename - Genera la salida en todos los formatos a la vez (Normal, XML y Grepable).

Por ejemplo, para generar un informe en formato XML:

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

Comprender las implicaciones de seguridad de los resultados

El informe del análisis muestra que el puerto 80/tcp está abierto y ejecuta un servicio HTTP (el servidor web Apache). Esto tiene varias implicaciones de seguridad importantes:

  • Posible punto de entrada para ataques: Los puertos abiertos son como puertas de un edificio. Cada puerto abierto puede convertirse en una posible vía de entrada para los atacantes.
  • Riesgo de vulnerabilidades en los servicios: Los servicios que se ejecutan en puertos abiertos pueden tener fallos de seguridad que los atacantes podrían aprovechar.
  • Canal de comunicación que requiere supervisión: Los puertos abiertos se utilizan para comunicarse; es necesario supervisar su actividad para detectar comportamientos inusuales.

Para proteger los puertos, siga estas prácticas recomendadas:

  • Mantenga abiertos solo los puertos necesarios: los puertos abiertos innecesarios amplían la superficie de ataque del sistema.
  • Actualice con regularidad los servicios que usan estos puertos: las actualizaciones suelen incluir parches de seguridad que corrigen vulnerabilidades.
  • Implemente reglas de firewall para restringir el acceso: los firewalls ayudan a controlar quién puede acceder al sistema a través de determinados puertos.
  • Supervise la actividad de los puertos para detectar patrones inusuales: así podrá detectar posibles amenazas y responder a ellas a tiempo.

Limpieza del laboratorio

Ahora que ha terminado el ejercicio de análisis, detenga el servidor web Apache. Dejar en ejecución servicios que no se necesitan puede suponer riesgos de seguridad, por lo que es importante limpiar el entorno correctamente.

Detenga el servicio Apache:

sudo service apache2 stop

Compruebe que el servicio se haya detenido:

sudo service apache2 status

Debería ver un resultado que indique que Apache2 no se está ejecutando, por ejemplo:

* apache2 is not running

Confirme que el puerto 80 esté cerrado:

nmap -F localhost

La salida debería indicar que el puerto 80 está cerrado o que no figura entre los puertos abiertos. Este proceso de limpieza es fundamental en situaciones reales: permite asegurarse de que los servicios no sigan ejecutándose cuando ya no se necesitan, lo que podría suponer un riesgo de seguridad.

Resumen

En este laboratorio ha aprendido los fundamentos del análisis de puertos de red con Nmap, una potente herramienta de código abierto para la seguridad de redes. Ha practicado cómo funcionan los puertos de red, cómo configurar un servidor web con un puerto abierto, cómo usar Nmap para analizar los puertos más comunes, cómo interpretar los resultados, cómo documentar los hallazgos en un informe de seguridad y cómo detener correctamente los servicios.

Estas habilidades son fundamentales para evaluar la seguridad de redes. Son esenciales para profesionales de seguridad informática, administración de redes y gestión de sistemas. Dominar el análisis de puertos ayuda a identificar vulnerabilidades de red y a proteger los sistemas frente a accesos no autorizados.