Introducción
Bienvenido a este laboratorio sobre enumeración de servidores web y acceso básico a archivos. En este ejercicio, aprenderá técnicas fundamentales de reconocimiento web utilizadas para descubrir e interactuar con servicios web.
En este laboratorio, simulará un escenario básico de reconocimiento web. Comenzará realizando reconocimiento en un sistema objetivo para confirmar que está en línea e identificar los servicios en ejecución. Utilizando la herramienta nmap, descubrirá un servidor web y enumerará su versión. Luego, usará el comando curl para acceder a un archivo de bandera (flag) que se ha colocado en el servidor web.
Al finalizar, comprenderá cómo:
- Verificar la conectividad de red usando
ping. - Usar
nmappara escanear servicios web y realizar enumeración. - Comprender las técnicas básicas de reconocimiento web.
- Usar
curlpara acceder a archivos en un servidor web y recuperar una bandera (flag).
Comencemos.
Verificar Conectividad con el Objetivo mediante Ping
En este paso, comenzará confirmando que el sistema objetivo es accesible desde su máquina. El comando ping es una utilidad estándar para probar la conectividad de red. Envía paquetes ICMP Echo Request a un host y espera respuestas. Este es el primer y más básico paso en cualquier tarea de reconocimiento de red.
Su entorno incluye un sistema objetivo accesible con el nombre de host target.
Ejecute el siguiente comando en la terminal para enviar cuatro paquetes a target:
ping -c 4 target
Debería ver una salida que confirme que se enviaron cuatro paquetes y se recibieron cuatro, lo que indica una conexión estable. La dirección IP puede variar, pero el resultado debería mostrar una pérdida de paquetes del 0%.
PING target (172.17.0.2) 56(84) bytes of data.
64 bytes from target (172.17.0.2): icmp_seq=1 ttl=64 time=0.105 ms
64 bytes from target (172.17.0.2): icmp_seq=2 ttl=64 time=0.069 ms
64 bytes from target (172.17.0.2): icmp_seq=3 ttl=64 time=0.068 ms
64 bytes from target (172.17.0.2): icmp_seq=4 ttl=64 time=0.067 ms
--- target ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3075ms
rtt min/avg/max/mdev = 0.067/0.077/0.105/0.016 ms
Con la conectividad confirmada, está listo para proceder con el escaneo del objetivo.
Escanear Puertos Abiertos con Nmap
En este paso, utilizará nmap para escanear el objetivo en busca de puertos abiertos e identificar los servicios que se ejecutan en ellos. Nmap es una herramienta potente para la exploración de redes y la auditoría de seguridad. Este escaneo le ayudará a encontrar posibles puntos de entrada, como un servidor web.
Ejecutaremos un escaneo dirigido al puerto 80, el puerto estándar para el tráfico HTTP. También utilizaremos scripts para recopilar más información sobre el servicio.
Ejecute el siguiente comando nmap en su terminal:
nmap -sV -p 80 --script http-enum target
Analicemos este comando:
-sV: Habilita la detección de versiones, que intenta determinar la versión del servicio que se ejecuta en el puerto.-p 80: Especifica que solo queremos escanear el puerto 80.--script http-enum: Ejecuta un script que enumera directorios y archivos en el servidor web.target: El nombre de host de nuestra máquina objetivo.
La salida se parecerá a esto:
Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-18 09:40 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00018s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.41 ((Unix))
|_http-server-header: Apache/2.4.41 (Unix)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.32 seconds
Los resultados del escaneo confirman que el puerto 80/tcp está abierto y ejecutando Apache httpd 2.4.41. Este servidor web está alojando archivos a los que podemos acceder en el siguiente paso.
Conectar al Objetivo vía HTTP
En este paso, interactuará con el servidor web utilizando curl para acceder a los archivos. curl es una herramienta de línea de comandos para transferir datos con URLs.
Primero, hagamos una solicitud estándar a la página principal del servidor web para ver cómo se ve.
curl http://target
El servidor debería responder con el contenido de la página predeterminada de Apache.
<html>
<body>
<h1>It works!</h1>
</body>
</html>
Ahora, accedamos al archivo flag que se colocó en el directorio raíz del servidor web. Si bien el archivo es directamente accesible en esta configuración, demostremos cómo accedería típicamente a él:
curl http://target/flag.txt
Este comando recuperará el archivo flag directamente de la raíz de documentos del servidor web.
Explorar Sistema Objetivo y Localizar Flag
En este paso final, recuperará y verá la flag. La salida del comando curl anterior debería haber mostrado la flag directamente en su terminal.
La salida esperada del comando es el contenido del archivo flag:
labex{p4th_tr4v3rs4l_w1zardry}
Si la salida es larga o desea guardarla para más tarde, puede redirigir la salida del comando curl a un archivo. Esta es una práctica común cuando se trabaja con archivos más grandes.
Ejecute el comando nuevamente, pero esta vez guarde el resultado en un archivo llamado flag.txt:
curl http://target/flag.txt > flag.txt
Ahora, puede ver el contenido del archivo descargado usando el comando cat:
cat flag.txt
La terminal mostrará la flag:
labex{p4th_tr4v3rs4l_w1zardry}
¡Felicitaciones! Ha identificado con éxito un servidor web, accedido al archivo flag y capturado la flag. Copie el valor de la flag para completar el laboratorio.
Resumen
En este laboratorio, completó con éxito un ejercicio básico de reconocimiento web. Aprendió y practicó las siguientes habilidades:
- Reconocimiento: Utilizó
pingpara verificar que el objetivo estaba en línea y accesible. - Enumeración: Utilizó
nmapcon escaneo de versiones (-sV) y scripting (--script http-enum) para identificar un puerto HTTP abierto y la versión específica del servidor web Apache. - Acceso a Archivos: Utilizó
curlpara acceder a archivos en el servidor web. - Recuperación de Flag: Recuperó con éxito el archivo flag del servidor web.
Este ejercicio demuestra técnicas básicas de reconocimiento web que son fundamentales para comprender cómo funcionan los servidores web y cómo interactuar con ellos de forma programática. Estas habilidades son esenciales para el desarrollo web, la administración de sistemas y las pruebas de seguridad.



