Aprende la sintaxis básica de comandos de Nmap

CybersecurityCybersecurityBeginner
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á la sintaxis básica de comandos de Nmap, una poderosa herramienta de descubrimiento de redes y auditoría de seguridad. Ampliamante utilizada por administradores de sistemas y profesionales de seguridad, Nmap ayuda a escanear redes, detectar puertos abiertos e identificar posibles vulnerabilidades.

Nuestro escenario está situado en el año 2145 en el Puerto Espacial Luna Gateway, el puerto espacial más grande e importante de la Luna. Como líder del equipo de ciberseguridad, su misión es proteger la infraestructura de red del puerto espacial de las amenazas. Con los recientes informes de un aumento de actividades sospechosas, sospecha que los hackers están intentando infiltrarse en los sistemas. Al final de este laboratorio, adquirirá experiencia práctica en el uso de Nmap para el reconocimiento de redes esencial, una habilidad crucial para proteger cualquier red, incluso la de un puerto espacial futurista.

Comprender Nmap y Verificar la Instalación

Nmap, que significa Network Mapper (Mapeador de Redes), es una herramienta de código abierto. En el campo de la seguridad de redes, juega un papel crucial en el descubrimiento de hosts y servicios en una red informática. Piénsalo como un detective que puede averiguar lo que está sucediendo en una red. En nuestro escenario ficticio del Puerto Espacial Luna Gateway, Nmap es extremadamente valioso para salvaguardar la seguridad de su compleja infraestructura de red.

Antes de comenzar a usar Nmap, debemos asegurarnos de que está instalado en nuestro sistema. Así es como puedes verificar su instalación:

  1. Primero, debes abrir una ventana de terminal. En el entorno de LabEx, la terminal generalmente ya está abierta y configurada en el directorio /home/labex/project. La terminal es como un centro de control donde puedes escribir comandos para interactuar con el sistema.

  2. Ahora, ejecutaremos un comando para verificar la versión de Nmap instalada. Escribe el siguiente comando en la terminal y presiona Enter:

    nmap --version

    Este comando le pide al sistema que muestre información sobre la versión de Nmap instalada. La opción --version es una forma común en muchos programas de obtener detalles relacionados con la versión.

  3. Después de ejecutar el comando, tómate un momento para observar la salida. Verás detalles como la versión específica de Nmap, cómo se compiló y otra información relevante. Esto te ayuda a confirmar que Nmap está instalado correctamente y también te da una idea de qué características pueden estar disponibles según la versión.

Configuración de un Servicio de Prueba

Antes de comenzar a practicar con Nmap, necesitas un objetivo para escanear. Imagina Nmap como una herramienta detective en el mundo de la ciberseguridad, y necesitas un sospechoso (el objetivo) para investigar. En este caso, configuraremos un servicio de red simple en tu máquina local utilizando una herramienta llamada netcat (nc). Netcat es una utilidad de red versátil que puede leer y escribir datos a través de conexiones de red.

  1. Primero, verifiquemos que netcat esté instalado en tu sistema. Puedes hacer esto ejecutando el siguiente comando en tu terminal:

    nc -h

    Este comando le pide a netcat que muestre su información de ayuda. Si netcat está instalado, verás una lista de opciones disponibles y cómo usarlas. Si obtienes un error, significa que netcat no está instalado y tendrás que instalarlo antes de continuar.

  2. Ahora, abre una nueva ventana de terminal. Esto es importante porque usaremos la terminal original para otros comandos más adelante, y necesitamos mantener el servicio de netcat en ejecución en una ventana separada. Puedes abrir una nueva ventana de terminal haciendo clic derecho en el área de la terminal y seleccionando "Nueva Terminal" o utilizando el atajo de teclado (generalmente Ctrl+Shift+T).

  3. En esta nueva ventana de terminal, iniciaremos un servicio de red simple que permanecerá abierto. Ejecuta el siguiente comando:

    while true; do nc -n -lvp 7777; done

    Este comando crea un bucle infinito. Cada vez que se cierre una conexión al servicio de netcat, el bucle reinicia netcat, asegurando que el servicio siempre esté disponible para nosotros para escanear. Deberías ver una salida que indique que netcat está escuchando en el puerto 7777.

    • -n: Esta bandera le dice a netcat que utilice direcciones IP directamente en lugar de intentar resolver nombres de host. Acelera el proceso y evita posibles problemas relacionados con DNS.
    • -l: Esta bandera le dice a netcat que entre en modo de escucha. Espera conexiones entrantes en lugar de intentar iniciarlas.
    • -v: Esta bandera habilita la salida detallada. Netcat proporcionará información más detallada sobre lo que está haciendo, lo cual es útil para la depuración y la comprensión de lo que está sucediendo.
    • -p 7777: Esta bandera especifica el número de puerto en el que netcat debe escuchar. En este caso, hemos elegido el puerto 7777.
  4. Mantén esta ventana de terminal abierta. La usaremos para observar las conexiones entrantes cuando escanemos con Nmap en los siguientes pasos. El servicio de netcat en ejecución en esta ventana actuará como nuestro objetivo para los escaneos de Nmap, lo que nos permitirá ver cómo Nmap interactúa con un servicio de red del mundo real.

Realizar un Escaneo Básico con Nmap

Ahora que hemos configurado con éxito un servicio, es hora de usar Nmap para descubrirlo. Nmap es una poderosa herramienta de escaneo de redes que puede ayudarnos a encontrar puertos abiertos y servicios en una máquina objetivo. En este paso, realizaremos un escaneo básico del localhost para encontrar el servicio que acabamos de configurar.

  1. Primero, regresa a tu ventana de terminal original. Asegúrate de que no sea la que está ejecutando netcat. Necesitamos usar esta terminal para ejecutar nuestros comandos de Nmap.

  2. A continuación, ejecuta el siguiente comando de Nmap:

    nmap -v -p 7777 localhost

    Desglosemos este comando para entender qué hace cada parte:

    • nmap: Este es el comando base para ejecutar Nmap. Le dice al sistema que queremos usar la herramienta Nmap para el escaneo de redes.
    • -v: Esta opción habilita la salida detallada. Cuando usamos -v, Nmap nos dará información más detallada sobre el escaneo, como el progreso y detalles adicionales sobre el objetivo.
    • -p 7777: Esta opción le dice a Nmap que escanee solo el puerto 7777. Los puertos son como puertas en una computadora, y diferentes servicios usan diferentes puertos. Al especificar -p 7777, le estamos pidiendo a Nmap que verifique si el puerto 7777 está abierto en la máquina objetivo.
    • localhost: Este es el objetivo que queremos escanear. En este caso, localhost se refiere a tu propia máquina. Es una forma de probar el escaneo de redes en tu entorno local.
  3. Después de ejecutar el comando, observa la salida. Deberías ver algo similar a esto:

    Starting Nmap ( http://nmap.org )
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.000040s latency).
    PORT     STATE SERVICE
    7777/tcp open  cbt

    Esta salida proporciona información importante. Nos dice que Nmap ha iniciado el escaneo y que el objetivo (localhost) está activo y funcionando. La línea 7777/tcp open cbt indica que el puerto 7777 está abierto en el localhost y que el servicio que se ejecuta en este puerto se identifica como cbt.

  4. Para mantener un registro de este escaneo para futuras referencias, guardemos la salida en un archivo. Vuelve a ejecutar el comando con redirección de salida:

    nmap -v -p 7777 localhost > /home/labex/project/nmap_scan_output.txt

    Este comando realiza el mismo escaneo que antes, pero el símbolo > redirige la salida a un archivo llamado nmap_scan_output.txt en el directorio /home/labex/project. De esta manera, podemos acceder fácilmente a los resultados del escaneo más adelante.

  5. Puedes ver el contenido de este archivo usando el comando cat. Ejecuta el siguiente comando:

    cat /home/labex/project/nmap_scan_output.txt

    El comando cat se utiliza para mostrar el contenido de un archivo en la terminal. Al ejecutar este comando, puedes ver la salida del escaneo guardada.

  6. Finalmente, revisa la terminal de netcat. Deberías notar que Nmap intentó conectarse al servicio. Debido al bucle que configuramos en netcat, se habrá cerrado y vuelto a abrir, asegurando que el servicio siga estando disponible para más escaneos. Esto es importante porque nos permite continuar probando y explorando la red usando Nmap.

Explorando la Salida de Nmap

Ahora que hemos realizado con éxito un escaneo básico utilizando Nmap, es hora de examinar más de cerca la salida que Nmap genera. Comprender esta salida es crucial, ya que proporciona información valiosa sobre el sistema objetivo, como puertos abiertos y servicios en ejecución.

  1. Primero, necesitamos abrir el archivo de salida del escaneo de Nmap. Este archivo contiene todos los detalles del escaneo que acabamos de realizar. Para abrirlo, usaremos el editor de texto nano. nano es un editor de texto simple y fácil de usar que nos permite ver y editar archivos de texto con facilidad. Ejecuta el siguiente comando en tu terminal:

    nano /home/labex/project/nmap_scan_output.txt

    Este comando abrirá el archivo especificado en el editor de texto nano.

  2. Una vez abierto el archivo, examina su contenido. Notarás que el archivo se divide en varias secciones, cada una de las cuales proporciona diferentes tipos de información:

    • Informe de escaneo de Nmap: Esta sección muestra el objetivo del escaneo. En nuestro caso, el objetivo es localhost, que se refiere a la máquina local en la que estamos trabajando actualmente.
    • Estado del host: Esta parte indica si el host (el sistema objetivo) está activo y funcionando. También proporciona información sobre la latencia del host, que es el tiempo que tarda una señal en viajar desde nuestra máquina al objetivo y de regreso.
    • Tabla de puertos: Esta tabla muestra el estado del o los puertos escaneados. Nos dice si un puerto está abierto, cerrado o filtrado. Además, muestra el servicio que Nmap cree que podría estar en ejecución en ese puerto.
  3. Puedes notar que Nmap identifica el servicio en el puerto 7777 como "cbt". Sin embargo, es importante tener en cuenta que esta es solo la mejor suposición de Nmap basada en las asignaciones de puertos comunes. Para puertos no estándar como el 7777, esta identificación puede no ser siempre precisa.

  4. Cuando hayas terminado de examinar el archivo, puedes salir del editor de texto nano presionando Ctrl+X.

  5. Ahora, probemos un escaneo un poco más completo. Usaremos un nuevo comando que incluye opciones adicionales para recopilar más información sobre el objetivo. Ejecuta el siguiente comando en tu terminal:

    nmap -v -p 7777 -sV localhost > /home/labex/project/nmap_service_scan.txt

    Esto es lo que significa cada parte del comando:

    • -v: Esta opción habilita el modo detallado, lo que significa que Nmap proporcionará información más detallada sobre el proceso de escaneo.
    • -p 7777: Esto especifica que queremos escanear solo el puerto 7777.
    • -sV: Esta bandera le dice a Nmap que explore los puertos abiertos para determinar el servicio y su versión que se ejecutan en esos puertos.
    • localhost: Este es el objetivo de nuestro escaneo, que es la máquina local.
    • > /home/labex/project/nmap_service_scan.txt: Esto redirige la salida del escaneo al archivo especificado.
  6. Después de ejecutar el escaneo, queremos ver el contenido de este nuevo archivo. Para hacer esto, usaremos el comando cat, que se utiliza para mostrar el contenido de un archivo en la terminal. Ejecuta el siguiente comando:

    cat /home/labex/project/nmap_service_scan.txt

    Deberías ver información adicional sobre el puerto 7777 en la salida. Incluso si Nmap no puede determinar el servicio exacto que se ejecuta en el puerto, aún proporcionará una salida más detallada en comparación con el escaneo básico.

  7. Mientras revisas la salida, busca líneas como:

    PORT     STATE SERVICE VERSION
    7777/tcp open  cbt?

    Esta línea indica que Nmap detectó un puerto 7777 abierto. Sin embargo, el signo de interrogación después de "cbt" sugiere que Nmap no está seguro de la clasificación del servicio. Significa que Nmap no pudo identificar definitivamente el servicio que se ejecuta en este puerto.

Realizar un escaneo de toda la red

En un escenario del mundo real en el Puerto Espacial Luna Gateway, necesitarías escanear múltiples hosts en la red. Esto es importante porque te ayuda a entender los dispositivos conectados a la red y sus puertos abiertos, lo cual es crucial para la seguridad de la red. Simulemos esto escaneando un rango de direcciones IP.

  1. Primero, averiguemos nuestra dirección IP. Tu dirección IP es como la "dirección de casa" de tu red, que identifica de manera única tu dispositivo en la red. Para encontrarla, ejecutaremos el siguiente comando:

    ip addr show | grep inet

    La parte ip addr show del comando enumera todas las interfaces de red y sus direcciones IP asociadas en tu dispositivo. El | es una tubería (pipe), que toma la salida del comando ip addr show y la pasa al comando grep inet. El comando grep inet luego filtra la salida para mostrar solo las líneas que contienen la palabra "inet", que son las líneas con direcciones IP.

    Salida de muestra:

    inet 127.0.0.1/8 scope host lo
    inet 172.18.0.3/16 brd 172.18.255.255 scope global eth1

    127.0.0.1/8 es la dirección de bucle interno (loopback address), que no es útil para nuestro propósito. Así que podemos ignorarla. 172.18.0.3/16 es la dirección IP de la interfaz de red, que es útil para nuestro propósito. Así que podemos usar esta dirección IP en los siguientes pasos.

  2. Ahora, escaniemos un rango de direcciones IP alrededor de la nuestra. Escanear un rango de direcciones IP te ayuda a descubrir otros dispositivos en la misma red. Si tu IP es 172.18.0.3, podrías escanear 172.18.0.1 - 10. Reemplaza el rango de IP en el siguiente comando con uno que incluya tu IP:

    sudo nmap -v -p 7777 172.18.0.1-10 > /home/labex/project/network_scan.txt

    El comando sudo se utiliza para ejecutar el siguiente comando con privilegios de administrador, que a menudo son necesarios para el escaneo de redes. nmap es una poderosa herramienta de escaneo de redes. La opción -v significa "verbose" (detallado), lo que significa que proporcionará información más detallada sobre el escaneo. La opción -p 7777 especifica que queremos escanear el puerto 7777 en las direcciones IP de destino. 172.18.0.1 - 10 es el rango de direcciones IP que queremos escanear. El símbolo > redirige la salida del comando nmap al archivo /home/labex/project/network_scan.txt.

    Este comando escanea las primeras 10 direcciones IP en la red 172.18.0.0 en busca del puerto 7777.

  3. Veamos los resultados del escaneo:

    cat /home/labex/project/network_scan.txt

    El comando cat se utiliza para mostrar el contenido de un archivo. En este caso, mostrará los resultados del escaneo de red que guardamos en el archivo network_scan.txt. Deberías ver una lista de direcciones IP, con información sobre el puerto 7777 para cada una.

  4. En un escenario del mundo real, este tipo de escaneo te ayudaría a identificar todos los dispositivos en la red con un puerto en particular abierto, lo cual podría ser crucial para mantener la seguridad de la red del Puerto Espacial Luna Gateway. Al saber qué dispositivos tienen un puerto específico abierto, puedes determinar si hay algún riesgo de seguridad potencial o puntos de acceso no autorizados en la red.

Resumen

En este laboratorio, has aprendido la sintaxis básica de comandos de Nmap en el contexto de la seguridad de la infraestructura de red del Puerto Espacial Luna Gateway. Primero, verificaste la instalación de Nmap y configuraste un servicio de prueba con netcat. Luego, realizaste escaneos básicos en localhost, aprendiste a interpretar la salida de Nmap y la guardaste para un análisis posterior.

También avanzaste hacia técnicas más complejas, como la detección de la versión del servicio, que revela detalles sobre los servicios en los puertos abiertos. Finalmente, simulaste un escaneo de red completa, mostrando cómo Nmap puede examinar múltiples hosts. Estas habilidades son fundamentales para el reconocimiento de redes y la auditoría de seguridad, cruciales para identificar riesgos en las operaciones del puerto espacial.

Recuerda, utiliza Nmap de manera responsable y solo en redes autorizadas. El escaneo no autorizado puede ser visto como un ataque y puede tener consecuencias legales. A medida que sigas aprendiendo, piensa en expandir estas técnicas básicas de Nmap y combinarlas con otras herramientas para una estrategia de seguridad integral en entornos complejos como el Puerto Espacial Luna Gateway.