Introducción
En este laboratorio, aprenderás a utilizar Nmap, una potente herramienta de escaneo de redes, en varios niveles de verbosidad. Nmap es la opción predilecta de los expertos en seguridad para descubrir hosts y servicios en redes informáticas. Dominar las opciones de verbosidad de Nmap te permite regular la información mostrada durante los escaneos, lo cual es esencial para un análisis de red y una resolución de problemas eficientes.
A lo largo del laboratorio, configurarás un servidor local para practicar el escaneo. También explorarás cómo los diferentes niveles de verbosidad afectan los resultados del escaneo y la información presentada.
Configuración de tu entorno para el escaneo de redes
En este paso, vamos a configurar un servidor web local en tu máquina. Este servidor actuará como nuestro objetivo para el escaneo con Nmap. Nmap es una potente herramienta de escaneo de redes utilizada en ciberseguridad para descubrir hosts y servicios en una red informática. Al tener un servidor local, puedes practicar el uso de Nmap de forma segura sin afectar redes del mundo real.
Comprensión de los servidores HTTP
Antes de crear el servidor, comprendamos qué es un servidor HTTP. HTTP significa Protocolo de Transferencia de Hipertexto (HyperText Transfer Protocol). Es el protocolo que utiliza tu navegador web para comunicarse con los sitios web. Un servidor HTTP es una aplicación de software que puede entender URLs (direcciones web) y el protocolo HTTP. Cuando escribes una dirección web en tu navegador, este envía una solicitud HTTP al servidor HTTP correspondiente, el cual devuelve la página web solicitada. Para nuestro laboratorio, crearemos un servidor HTTP sencillo utilizando Python, un lenguaje de programación popular y fácil de aprender.
Creación del servidor HTTP
Primero, debemos asegurarnos de que estás en el directorio de trabajo correcto. El directorio de trabajo es como una carpeta donde se ejecutarán tus comandos. En este caso, queremos estar en el directorio /home/labex/project. Para navegar a este directorio, utiliza el siguiente comando:
cd /home/labex/project
Ahora que estamos en el lugar correcto, utilizaremos el módulo de servidor HTTP integrado de Python para crear un servidor web sencillo. Configuraremos este servidor para que escuche en el puerto 8080. Un puerto es como una puerta en una computadora a través de la cual el tráfico de red puede entrar o salir. Los diferentes servicios utilizan diferentes puertos. Escribe el siguiente comando:
python -m http.server --bind 127.0.0.1 8080 &
Analicemos lo que hace este comando:
python -m http.server: Esta parte inicia el módulo de servidor HTTP integrado de Python. Le indica a Python que ejecute la funcionalidad del servidor HTTP.--bind 127.0.0.1: Esto hace que el servidor escuche en la dirección de bucle invertido (loopback) IPv4 que Nmap escanea paralocalhosten este entorno.8080: Esto especifica que el servidor debe escuchar en el puerto 8080. Esto significa que cualquier solicitud HTTP entrante en este puerto será manejada por nuestro servidor.&: Poner un ampersand al final del comando ejecuta el servidor en segundo plano. Esto es útil porque te permite continuar usando la terminal para otros comandos mientras el servidor está en marcha.
Después de ejecutar el comando, deberías ver una salida similar a esta:
Serving HTTP on 127.0.0.1 port 8080 (http://127.0.0.1:8080/) ...
Esta salida indica que tu servidor HTTP se está ejecutando y está listo para aceptar conexiones en el puerto 8080. Con este servidor activo y funcionando, ahora tenemos un objetivo que podemos escanear usando Nmap en los siguientes pasos.
Verificación de que el servidor HTTP se está ejecutando
Es importante confirmar que tu servidor realmente se está ejecutando correctamente. Para hacer esto, podemos usar el siguiente comando:
ss -tulwn | grep 8080
El comando ss se utiliza para mostrar estadísticas de sockets. Las opciones -tulwn le indican a ss que muestre la información de los sockets TCP, UDP, en escucha (listening) y numéricos. El símbolo | es una tubería (pipe), que toma la salida del comando ss y la pasa al comando grep. El comando grep busca entonces la cadena 8080 en la salida. Si el servidor se está ejecutando, este comando debería mostrar una salida que indique que algo está escuchando en el puerto 8080, lo que confirma que tu servidor HTTP está activo y listo para el escaneo con Nmap.
Comprensión de los conceptos básicos de Nmap y la verbosidad predeterminada
En este paso, con nuestro servidor de destino en funcionamiento, es hora de empezar a explorar Nmap y sus niveles de verbosidad. Nmap, abreviatura de Network Mapper, es un potente escáner de seguridad. Su propósito principal es ayudarte a descubrir hosts y servicios en una red informática. Esto es crucial en ciberseguridad, ya que te permite comprender la disposición de la red e identificar posibles riesgos de seguridad.
¿Qué es la verbosidad de Nmap?
En Nmap, la verbosidad determina cuánta información se muestra durante un escaneo. Dependiendo de cuán detallados quieras que sean los resultados de tu escaneo, puedes elegir diferentes niveles de verbosidad. Aquí tienes un desglose de los niveles de verbosidad comunes:
- Nivel 0: Este es el nivel predeterminado. Te ofrece la salida estándar, que proporciona la información básica sobre el escaneo.
- Nivel 1: Al utilizar la opción
-v, puedes obtener más detalles en la salida del escaneo. - Nivel 2: Usar la opción
-vvte dará información aún más detallada.
Realización de un escaneo con verbosidad predeterminada (Nivel 0)
Comencemos realizando nuestro primer escaneo utilizando el nivel de verbosidad predeterminado de Nmap. Esto nos dará una comprensión básica del tipo de información que podemos obtener sin añadir verbosidad adicional.
nmap -p 8080 localhost > /home/labex/project/verbosity-0.txt
Analicemos este comando:
nmap: Este es el comando para invocar la herramienta de escaneo Nmap. Le indica a tu sistema que use Nmap para el escaneo de red.-p 8080: Esta opción le indica a Nmap que centre el escaneo únicamente en el puerto 8080. Los puertos son como puertas en una computadora, y los diferentes servicios utilizan puertos distintos. Al especificar el puerto 8080, solo nos interesa el servicio que se ejecuta en ese puerto en particular.localhost: Esto indica que estamos escaneando la máquina local. En otras palabras, estamos comprobando los servicios que se ejecutan en la misma computadora donde estamos ejecutando el comando Nmap.> /home/labex/project/verbosity-0.txt: Esta parte del comando redirige la salida del escaneo a un archivo llamadoverbosity-0.txtubicado en el directorio/home/labex/project. Guardar la salida en un archivo nos permite revisarla más tarde.
Ahora, veamos los resultados del escaneo:
cat /home/labex/project/verbosity-0.txt
Después de ejecutar este comando, deberías ver una salida similar a la siguiente:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-08-10 15:30 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
PORT STATE SERVICE
8080/tcp open http-proxy
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
Comprendamos qué significa esta salida:
- Cuándo comenzó el escaneo: La primera línea nos indica la hora exacta en que comenzó el escaneo de Nmap. Esto es útil para llevar un registro de cuándo se recopiló la información.
- El objetivo del escaneo: Muestra que estábamos escaneando
localhost, que tiene la dirección IP127.0.0.1. - Estado del host: Indica que el host está activo (up) y responde, con una latencia muy baja de
0.000097segundos. - Estado del puerto: Nos dice que el puerto 8080 está en estado
open(abierto), lo que significa que hay un servicio escuchando en ese puerto. - Servicio en ejecución: Sugiere que el servicio probable que se ejecuta en el puerto 8080 es
http-proxy. - Estadísticas de finalización del escaneo: La última línea nos da información sobre cuánto tiempo tomó el escaneo, que en este caso fue de
0.05segundos.
El nivel predeterminado proporciona información esencial, pero carece de detalles profundos. En los siguientes pasos, exploraremos cómo los niveles de verbosidad más altos pueden brindarnos información más detallada sobre el escaneo.
Aumento de la verbosidad con la opción -v
En el mundo del escaneo de redes, obtener información detallada es crucial. En este paso, aprenderemos a obtener detalles más profundos de Nmap aumentando el nivel de verbosidad. La verbosidad en Nmap se refiere a la cantidad de información que muestra durante un escaneo. La opción -v, que establece el nivel de verbosidad en 1, nos proporciona información adicional que puede ser extremadamente útil para el análisis de redes.
Ejecución de un escaneo con mayor verbosidad
Comencemos ejecutando un escaneo con mayor verbosidad. Utilizaremos el siguiente comando:
nmap -p 8080 localhost -v > /home/labex/project/verbosity-1.txt
Analicemos este comando:
nmapes el comando para invocar la herramienta de escaneo Nmap. Nmap es una herramienta potente y ampliamente utilizada para la exploración de redes y la auditoría de seguridad.-p 8080le indica a Nmap que escanee solo el puerto 8080. Los puertos son como puertas en una red, y al especificar un puerto, centramos nuestro escaneo en un servicio en particular que pueda estar ejecutándose en él.localhostindica que nos estamos enfocando en la máquina local. Esto es útil para realizar pruebas y comprender cómo funciona Nmap en tu propio sistema.-vaumenta el nivel de verbosidad a 1. Esto significa que Nmap mostrará más información sobre el proceso de escaneo.> /home/labex/project/verbosity-1.txtredirige la salida del escaneo a un archivo llamadoverbosity-1.txten el directorio/home/labex/project. Guardar la salida en un archivo nos permite revisarla más tarde.
Ahora, veamos los resultados de nuestro escaneo:
cat /home/labex/project/verbosity-1.txt
Cuando ejecutes este comando, deberías ver una salida más detallada similar a esta:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-08-10 15:35 UTC
Initiating Ping Scan at 15:35
Scanning localhost (127.0.0.1) [2 ports]
Completed Ping Scan at 15:35, 0.00s elapsed (1 total hosts)
Initiating Connect Scan at 15:35
Scanning localhost (127.0.0.1) [1 port]
Discovered open port 8080/tcp on 127.0.0.1
Completed Connect Scan at 15:35, 0.00s elapsed (1 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000089s latency).
PORT STATE SERVICE
8080/tcp open http-proxy
Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds
Comprensión de la información adicional
Con el nivel de verbosidad 1, la salida proporciona una gran cantidad de detalles adicionales. Esto es lo que puedes ver:
- El proceso de escaneo se divide en etapas. Por ejemplo, hay un escaneo de ping (Ping Scan) y un escaneo de conexión (Connect Scan). El escaneo de ping se utiliza para comprobar si un host es accesible, mientras que el escaneo de conexión intenta establecer una conexión con un puerto específico.
- Se proporciona información de tiempo para cada etapa. Esto te ayuda a comprender cuánto tiempo tomó cada parte del escaneo.
- Puedes ver el momento exacto en que se descubrió el puerto abierto. Esto es importante ya que te da una línea de tiempo clara del escaneo.
- También se muestran los archivos de datos que Nmap utilizó durante el escaneo. Estos archivos contienen información sobre servicios, puertos y otros datos relacionados con la red que Nmap utiliza para realizar sus escaneos.
Esta información adicional es muy útil porque te permite:
- Comprender cómo Nmap realiza sus escaneos. Al ver las diferentes etapas y el orden en que ocurren, puedes obtener una mejor comprensión del proceso de escaneo.
- Conocer la línea de tiempo exacta de los eventos durante el escaneo. Esto puede ser útil para la resolución de problemas o para comprender el comportamiento de una red.
- Determinar cuándo se descubrieron puertos y servicios específicos. Esto es crucial para las evaluaciones de seguridad y la gestión de redes.
Comparación de los niveles de verbosidad
Para ver con mayor claridad la diferencia entre un escaneo normal y un escaneo con mayor verbosidad, compararemos los dos archivos de salida. Utiliza el siguiente comando:
diff /home/labex/project/verbosity-0.txt /home/labex/project/verbosity-1.txt
El comando diff compara el contenido de dos archivos y muestra las diferencias entre ellos. La salida de este comando demostrará cómo el aumento del nivel de verbosidad proporciona una mayor perspectiva del proceso de escaneo. Esta información adicional puede ser particularmente útil cuando estás solucionando problemas de red o realizando evaluaciones de seguridad detalladas.
Niveles de verbosidad adicionales
Nmap no se detiene en el nivel de verbosidad 1. Soporta niveles de verbosidad aún mayores:
-vvestablece el nivel de verbosidad en 2.-vvvestablece el nivel de verbosidad en 3.
A medida que aumentas el nivel de verbosidad, Nmap proporcionará información cada vez más detallada sobre el proceso de escaneo. Esto puede ser muy útil cuando necesitas profundizar en la red y comprender cada aspecto del escaneo.
Exploración de niveles de verbosidad más altos y aplicaciones prácticas
En este paso, profundizaremos en las capacidades de Nmap. Comenzaremos utilizando un nivel de verbosidad aún mayor, lo que nos dará información más detallada durante el proceso de escaneo. Luego, aprenderemos sobre las aplicaciones prácticas de las diferentes configuraciones de verbosidad, para que sepas cuándo usar cada nivel en escenarios del mundo real.
Ejecución de un escaneo con la máxima verbosidad
Ejecutemos un escaneo con el nivel de verbosidad 2. En Nmap, podemos establecer el nivel de verbosidad usando la opción -vv. El nivel de verbosidad 2 proporcionará una cantidad significativa de información detallada sobre el escaneo. Aquí está el comando para ejecutar el escaneo:
nmap -p 8080 localhost -vv > /home/labex/project/verbosity-2.txt
En este comando, -p 8080 le indica a Nmap que escanee el puerto 8080. localhost es el objetivo que estamos escaneando, que se refiere a la máquina local. La opción -vv aumenta la verbosidad al nivel 2. El símbolo > redirige la salida del escaneo al archivo /home/labex/project/verbosity-2.txt.
Ahora, examinemos los resultados del escaneo. Podemos usar el comando cat para mostrar el contenido del archivo:
cat /home/labex/project/verbosity-2.txt
Cuando mires la salida, notarás que contiene detalles técnicos aún más detallados sobre el proceso de escaneo. Estos detalles incluyen:
- Información de tiempos más profunda: Esto te ayuda a comprender cuánto tiempo tomaron las diferentes partes del escaneo.
- Información de depuración (debugging) adicional: Puede ser útil si algo sale mal durante el escaneo.
- Información de protocolos más detallada: Esto te brinda una mejor comprensión de los protocolos de red involucrados en el escaneo.
Aplicaciones prácticas de los diferentes niveles de verbosidad
Los diferentes niveles de verbosidad son útiles en diferentes escenarios. Echemos un vistazo a cada nivel y sus aplicaciones prácticas:
Nivel predeterminado (0):
- El nivel de verbosidad predeterminado es ideal para escaneos rápidos. Cuando solo necesitas información básica sobre el objetivo, como si un puerto específico está abierto o cerrado, este nivel es suficiente.
- También es útil para comprobaciones rutinarias y mapeo de redes simple. Por ejemplo, si deseas verificar rápidamente el estado básico de los puertos de un servidor, puedes usar el nivel predeterminado.
- Un caso de uso de ejemplo es comprobar si puertos específicos están abiertos en un servidor. Puedes obtener una visión general rápida sin perderte en demasiados detalles.
Nivel de verbosidad 1 (-v):
- Este nivel es útil para un análisis más detallado. Proporciona más información que el nivel predeterminado, lo que te ayuda a comprender mejor la línea de tiempo del escaneo.
- Si estás solucionando problemas de conectividad, la información adicional en este nivel puede ser muy útil. Puedes ver qué partes del escaneo están tardando más o si hay algún error.
- Un caso de uso de ejemplo es la solución de problemas de conectividad. Puedes utilizar los detalles adicionales para averiguar qué podría estar causando el problema.
Niveles de verbosidad más altos (-vv, -vvv):
- Estos niveles son ideales para análisis en profundidad y depuración. Proporcionan la máxima cantidad de información, lo cual es muy útil para auditorías de seguridad.
- Cuando estás realizando una evaluación de seguridad detallada o necesitas comprender exactamente cómo interactúa el escaneo con el objetivo, los niveles de verbosidad más altos son la mejor opción.
- Un caso de uso de ejemplo son las evaluaciones de seguridad detalladas o cuando necesitas entender exactamente cómo el escaneo interactúa con el objetivo. Puedes obtener una vista integral del proceso de escaneo.
Combinación de la verbosidad con otras opciones de Nmap
Las opciones de verbosidad se pueden combinar con otras opciones de Nmap para realizar escaneos más potentes. Probemos un escaneo más avanzado usando el siguiente comando:
nmap -p 8080 -sV localhost -v > /home/labex/project/advanced-scan.txt
Analicemos este comando:
-p 8080especifica que queremos escanear el puerto 8080.-sVhabilita la detección de versiones. Esta opción intenta determinar la versión del servicio que se ejecuta en el puerto escaneado.-vaumenta la verbosidad al nivel 1, por lo que obtendremos información más detallada sobre el proceso de escaneo.- El símbolo
>redirige la salida del escaneo al archivo/home/labex/project/advanced-scan.txt.
Ahora, veamos los resultados del escaneo:
cat /home/labex/project/advanced-scan.txt
Notarás que la adición de -sV proporciona información sobre la versión del servicio que se ejecuta en el puerto 8080. Al mismo tiempo, la opción -v garantiza que obtengas información detallada sobre el proceso de escaneo, lo que facilita el análisis de los resultados.
Limpieza
Antes de finalizar este experimento, necesitamos apagar correctamente el servidor HTTP que creamos anteriormente. Podemos usar el siguiente comando para hacerlo:
pkill -f "python -m http.server"
Este comando termina el proceso del servidor HTTP de Python que se ejecuta en el puerto 8080. Es importante realizar una limpieza adecuada para evitar conflictos o problemas de uso de recursos en el futuro.
Resumen
En este laboratorio, has aprendido a utilizar eficazmente los niveles de verbosidad de Nmap para controlar la información mostrada durante los escaneos de red. Comenzando con la configuración básica de un servidor HTTP local, exploraste cómo los diferentes niveles de verbosidad impactan en las salidas de los escaneos de Nmap.
Descubriste que el nivel de verbosidad predeterminado (0) ofrece detalles esenciales sobre los puertos y servicios abiertos. El uso de la opción -v aumenta la verbosidad, ofreciendo más perspectivas sobre el proceso de escaneo. Los niveles más altos como -vv y -vvv proporcionan información técnica detallada para un análisis en profundidad. Las opciones de verbosidad también se pueden combinar con otras técnicas de Nmap para un análisis de red más potente. Estas habilidades son cruciales para los administradores de red y los profesionales de la seguridad, ya que les permiten recopilar datos de red de manera eficiente y adaptar los escaneos a tareas específicas.



