Contenido
enéis desplegada una pequeña aplicación PHP (CRUD + login) en un hosting compartido.
En esta práctica vais a poneros en la piel de un analista de ciberseguridad que tiene permiso para auditar solo ese sitio web. El objetivo es:
- Identificar tecnologías y versiones que usa la web (fingerprinting).
- Descubrir rutas y ficheros interesantes (superficie de ataque).
- Detectar posibles debilidades de configuración.
⚠️ Regla de oro: Solo podéis escanear el dominio/URL que os ha dado el profesor. Nada de escanear webs ajenas “por probar”.
1. Preparación del entorno
1.1. Datos que debes tener
Anota en tu cuaderno o documento:
- URL de la aplicación:
Ejemplo:https://grupoX.miapp.ejemplo.com - (Opcional) IP del servidor si el profe la da:
Ejemplo:123.45.67.89
1.2. Herramientas a usar
En un Linux (real o máquina virtual) instalad, si no están:
sudo apt update
# WhatWeb (fingerprinting web)
sudo apt install whatweb -y
# Nikto (escáner de vulnerabilidades web)
sudo apt install nikto -y
# Gobuster (fuerza bruta de directorios)
sudo apt install gobuster -y
# Wordlist básica (si no la tenéis)
sudo apt install wordlists -y
Comprobad que funcionan:
whatweb --version
nikto -Version
gobuster -h
2. Fingerprinting básico del servidor web (WhatWeb + cabeceras)
2.1. Resolver el dominio
- Desde la terminal, comprobad a qué IP resuelve vuestro dominio:
ping -c 3 TU_DOMINIO
Sustituye TU_DOMINIO por tu URL (sin https://).
Ejemplo:
ping -c 3 grupoX.miapp.ejemplo.com
- Anota:
- IP a la que resuelve
- Tiempo de respuesta aproximado
Entrega: captura de pantalla o copia del comando y el resultado.
2.2. Cabeceras HTTP con curl
Queremos ver qué nos cuenta el servidor solo con las cabeceras.
- Ejecuta:
curl -I https://TU_DOMINIO
- Fíjate en:
Server:(Apache, Nginx, etc., ¿con versión?)X-Powered-By:(¿PHP con versión?)- Si hay algo como
Set-Cookie:, etc.
Entrega:
- copia de las cabeceras
- responde brevemente:
- ¿Se está filtrando la versión exacta del servidor o PHP?
2.3. Fingerprinting con WhatWeb
Ahora usamos WhatWeb para identificar tecnologías:
whatweb https://TU_DOMINIO
Si quieres más detalle:
whatweb -v https://TU_DOMINIO
Analiza:
- ¿Detecta CMS (WordPress, etc.)?
- ¿Versiones de Apache/PHP?
- ¿Librerías JS, frameworks?
Entrega:
- salida de WhatWeb (resumen)
- lista de tecnologías detectadas
- marca con un asterisco las que muestren versión concreta, ejemplo:
- PHP 8.1.12 *
- Apache 2.4.54 *
3. Análisis de configuración con Nikto
Nikto es un escáner de vulnerabilidades web orientado a configuración y ficheros por defecto.
3.1. Lanzar un escaneo básico
Ejecuta:
nikto -h https://TU_DOMINIO
Según el hosting puede tardar un poco.
Mientras tanto, ve leyendo las líneas: muchas veces indican ficheros interesantes, redirecciones, opciones inseguras, etc.
3.2. Interpretar resultados
Cuando termine, revisa:
- ¿Detecta archivos o directorios por defecto (ej:
/phpinfo.php,/server-status,/test/)? - ¿Algún mensaje tipo “OSVDB”, “might be vulnerable to…”?
- ¿Alguna recomendación de deshabilitar cosas?
Entrega:
- Lista de 3–5 hallazgos relevantes de Nikto. Para cada uno:
- Qué ha encontrado (ruta / mensaje).
- Por qué podría ser un problema.
- Indica si crees que hay algo que debería deshabilitarse/eliminarse en el servidor.
(Si el hosting está muy capado y Nikto no ve casi nada, eso también es un hallazgo: coméntalo.)
4. Fuerza bruta de rutas y directorios con Gobuster
Aquí empezamos a descubrir “piezas” ocultas de la aplicación: paneles, copias de seguridad, etc.
4.1. Elección de wordlist
Usaremos una wordlist relativamente pequeña para no machacar el hosting.
Por ejemplo:
ls /usr/share/wordlists/dirb/
Una habitual:
/usr/share/wordlists/dirb/common.txt
4.2. Lanzar Gobuster (modo dir)
Comando base:
gobuster dir \
-u https://TU_DOMINIO \
-w /usr/share/wordlists/dirb/common.txt \
-t 30 \
-x php,txt,html
Explicación:
-u: URL objetivo-w: wordlist-t: hilos (no os flipéis, que es un hosting compartido)-x: extensiones a probar (.php,.txt,.html)
4.3. Analizar resultados
Fíjate en entradas con códigos de estado interesantes:
200→ existe y responde bien301/302→ redirecciones403→ existe pero está prohibido (¡ojo, puede haber algo interesante detrás!)
Entrega:
- Lista de rutas interesantes encontradas. Ejemplo:
/admin/(200)/backup/(403)/old/(200)- Para cada una, explica:
- ¿Crees que deberían ser accesibles?
- ¿Podrían contener datos sensibles?
5. Mini-conclusiones de seguridad
Al final de la práctica, responde a estas preguntas en un pequeño informe (1–2 páginas):
- Fingerprinting
- ¿Qué servidor web y versión usa vuestro hosting?
- ¿Qué versión de PHP se expone (si es visible)?
- ¿Se muestran cabeceras innecesarias (X-Powered-By, etc.)?
- Superficie de ataque
- ¿Qué directorios ocultos/localizaciones interesantes habéis encontrado?
- ¿Habéis visto algún archivo de configuración, backup, antiguo…?
- Riesgos
- Señala al menos 3 riesgos potenciales que habéis identificado.
- Para cada uno, describe:
- Cómo lo habéis descubierto (herramienta + comando).
- Qué podría hacer un atacante con ello.
- Recomendaciones
- Escribe 3 medidas que propondrías al responsable del hosting:
- Ejemplos: ocultar versión de servidor, borrar backups públicos, restringir
/admin, etc.
- Ejemplos: ocultar versión de servidor, borrar backups públicos, restringir
- Escribe 3 medidas que propondrías al responsable del hosting:



