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:
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.Ahora, ejecutaremos un comando para verificar la versión de Nmap instalada. Escribe el siguiente comando en la terminal y presiona Enter:
nmap --versionEste comando le pide al sistema que muestre información sobre la versión de Nmap instalada. La opción
--versiones una forma común en muchos programas de obtener detalles relacionados con la versión.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.
Configurar 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.
Primero, verifiquemos que netcat esté instalado en tu sistema. Puedes hacer esto ejecutando el siguiente comando en tu terminal:
nc -hEste 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.
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).
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; doneEste 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.
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 de 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.
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.
A continuación, ejecuta el siguiente comando de Nmap:
nmap -v -p 7777 localhostDesglosemos 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,localhostse refiere a tu propia máquina. Es una forma de probar el escaneo de redes en tu entorno local.
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 cbtEsta 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 cbtindica que el puerto 7777 está abierto en el localhost y que el servicio que se ejecuta en este puerto se identifica comocbt.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.txtEste comando realiza el mismo escaneo que antes, pero el símbolo
>redirige la salida a un archivo llamadonmap_scan_output.txten el directorio/home/labex/project. De esta manera, podemos acceder fácilmente a los resultados del escaneo más adelante.Puedes ver el contenido de este archivo usando el comando
cat. Ejecuta el siguiente comando:cat /home/labex/project/nmap_scan_output.txtEl comando
catse utiliza para mostrar el contenido de un archivo en la terminal. Al ejecutar este comando, puedes ver la salida del escaneo guardada.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.
Explorar 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.
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.nanoes 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.txtEste comando abrirá el archivo especificado en el editor de texto
nano.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.
- Informe de escaneo de Nmap: Esta sección muestra el objetivo del escaneo. En nuestro caso, el objetivo es
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.
Cuando hayas terminado de examinar el archivo, puedes salir del editor de texto
nanopresionandoCtrl+X.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.txtEsto 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.
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.txtDeberí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.
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.
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 inetLa parte
ip addr showdel 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 comandoip addr showy la pasa al comandogrep inet. El comandogrep inetluego 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 eth1127.0.0.1/8es la dirección de bucle interno (loopback address), que no es útil para nuestro propósito. Así que podemos ignorarla.172.18.0.3/16es 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.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.txtEl comando
sudose utiliza para ejecutar el siguiente comando con privilegios de administrador, que a menudo son necesarios para el escaneo de redes.nmapes una poderosa herramienta de escaneo de redes. La opción-vsignifica "verbose" (detallado), lo que significa que proporcionará información más detallada sobre el escaneo. La opción-p 7777especifica que queremos escanear el puerto 7777 en las direcciones IP de destino.172.18.0.1 - 10es el rango de direcciones IP que queremos escanear. El símbolo>redirige la salida del comandonmapal 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.
Veamos los resultados del escaneo:
cat /home/labex/project/network_scan.txtEl comando
catse utiliza para mostrar el contenido de un archivo. En este caso, mostrará los resultados del escaneo de red que guardamos en el archivonetwork_scan.txt. Deberías ver una lista de direcciones IP, con información sobre el puerto 7777 para cada una.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.



