
Laboratorio de Blue Team enfocado en analizar logs de acceso web de Apache para detectar fuerza bruta de directorios y actividad de escaneo web.
Laboratorio del Equipo Azul enfocado en analizar registros del servidor HTTP Apache para detectar actividad de escaneo web, enumeración de directorios e intentos de path traversal.
Instalar y exponer un servidor web Apache en un entorno de laboratorio aislado, simular escaneo web automatizado utilizando herramientas estándar de la industria, y analizar los registros generados desde la perspectiva del Equipo Azul — identificando patrones de ataque, firmas de herramientas e indicadores de actividad de reconocimiento malicioso.
| Componente | Detalles |
|---|
| VM atacante | Kali Linux |
| VM objetivo | Debian 13 |
| Red | Red NAT (VirtualBox) |
| IP atacante | 10.0.2.5 |
| IP objetivo | 10.0.2.15 |
| Servidor web | Apache 2.4.67 |
| Fuentes de registro | /var/log/apache2/access.log, /var/log/apache2/error.log |
| Puerto HTTP | 80 |
Se confirmó que el servidor HTTP Apache estaba activo y en ejecución en la máquina objetivo.```bash sudo systemctl status apache2 --no-pager
Resultado: `active (running)` since Wed 2026-05-06 21:09:17. Apache 2.4.67 (Debian), Main PID 3164, 55 tasks active.
---
### 2. Identificación de la IP del objetivo
Se identificó la dirección IP de la máquina Debian objetivo.```bash
ip a
IP objetivo: 10.0.2.15/24 — interfaz enp0s3
Se verificó la conectividad de red entre la máquina atacante Kali y el objetivo Debian.```bash ping -c 4 10.0.2.15
**Resultado:** 4 paquetes transmitidos, 4 recibidos, 0% de pérdida. RTT min/avg/max: 0.495/1.288/2.139ms.
---
### 4. Prueba de Apache desde el navegador
Se accedió al servidor Apache desde el navegador de Kali para confirmar la disponibilidad del servicio HTTP.```
http://10.0.2.15
Resultado: Página predeterminada de Apache2 Debian cargada exitosamente — confirmando que el servidor web era accesible y respondía a solicitudes HTTP.
Se crearon directorios y páginas de prueba en el servidor objetivo para simular una estructura de aplicación web realista.```bash sudo mkdir -p /var/www/html/admin sudo mkdir -p /var/www/html/backup sudo mkdir -p /var/www/html/login echo "
Directorios creados: `/admin`, `/backup`, `/login`
---
### 6. Escaneo Nikto
Se ejecutó Nikto contra el servidor web objetivo para simular un escaneo automatizado de vulnerabilidades.```bash
nikto -h http://10.0.2.15
Nikto v2.5.0 — Hora de inicio: 2026-05-06 20:16:56 — Hora de finalización: 20:17:13 (17 segundos)
Hallazgos reportados por Nikto:
X-Frame-Options — protección contra clickjacking ausenteX-Content-Type-Options — protección contra MIME sniffing ausente/admin/, /backup/, /login//admin/index.html — Página de inicio de sesión de administración accesibleEjecutó Dirb para realizar fuerza bruta de directorios contra el servidor web objetivo.```bash dirb http://10.0.2.15
**DIRB v2.22 — Inicio: Wed May 6 20:19:50 2026 — Fin: 20:19:59 2026 (9 segundos)**
Wordlist utilizada: `/usr/share/dirb/wordlists/common.txt` — 4612 palabras probadas
Directorios y archivos encontrados:
| URL | Código | Tamaño |
| --------------------------------- | ------ | ------ |
| http://10.0.2.15/index.html | 200 | 10703 |
| http://10.0.2.15/server-status | 403 | 314 |
| http://10.0.2.15/admin/ | 200 | — |
| http://10.0.2.15/admin/index.html | 200 | 21 |
| http://10.0.2.15/backup/ | 200 | — |
| http://10.0.2.15/login/ | 200 | — |
| http://10.0.2.15/login/index.html | 200 | 20 |
**Advertencia:** el listado del directorio `/backup/` está habilitado — no hay archivo de índice presente, el contenido del directorio es directamente navegable.
**Total descargado:** 13836 bytes — **Encontrados:** 4 recursos
---
### 8. Análisis del Registro de Acceso
Se inspeccionaron las entradas del registro de acceso en bruto para identificar el patrón de ataque.```bash
sudo cat /var/log/apache2/access.log
Ejemplos de entradas de la fase de escaneo Nikto (21:18:32):``` 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.tar.bz2 HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10_0_2_15.gz HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.sql HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.zip HTTP/1.1" 404 527
Entradas de muestra de la fase de escaneo de Dirb (21:21:34):```
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/xsql HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/xxx HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/zimbra HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/zoom HTTP/1.1" 404 472
Patrón observado: Cientos de solicitudes secuenciales dentro del mismo segundo, todas apuntando a rutas inexistentes — consistente con comportamiento de escaneo automatizado.
Se filtraron todas las entradas del registro de acceso que se originaban desde la IP del atacante.```bash sudo grep "10.0.2.5" /var/log/apache2/access.log | head -30
Patrones adicionales observados:
- Nikto intentó acceder a archivos de respaldo usando la IP del servidor como nombre de archivo (p. ej., `10.0.2.15.tar.bz2`, `10.0.2.15.sql`, `10.0.2.15.zip`)
- Dirb iteró a través de listas de palabras ordenadas alfabéticamente apuntando a cada directorio descubierto
- Ambas herramientas generaron solicitudes a velocidad de máquina — múltiples entradas por segundo desde el mismo rango de puertos de origen
---
### 10. Distribución de Códigos de Estado HTTP
Contó las solicitudes por código de respuesta HTTP para cuantificar la superficie de ataque.```bash
sudo grep " 200 " /var/log/apache2/access.log | wc -l
sudo grep " 403 " /var/log/apache2/access.log | wc -l
sudo grep " 404 " /var/log/apache2/access.log | wc -l
| HTTP Code | Significado | Count |
|---|---|---|
| 200 | OK — recurso encontrado y servido | 177 |
| 403 | Prohibido — el recurso existe pero acceso denegado | 26 |
| 404 | No encontrado — el recurso no existe | 21740 |
Total de errores 404: 21,740 — la abrumadora mayoría de las solicitudes apuntaban a rutas que no existen, lo cual es la característica definitoria del forzado bruto automatizado de directorios.
Se contaron todas las entradas del registro de acceso que se originan del atacante.```bash sudo grep "10.0.2.5" /var/log/apache2/access.log | wc -l
**Solicitudes totales desde 10.0.2.5: 21,962**
---
### 12. Identificación de firmas de herramientas
Se buscaron firmas específicas de escáneres en el registro de acceso.
#### Firma de Nikto```bash
sudo grep "nikto" /var/log/apache2/access.log | head -5
Resultado:``` 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "PUT /nikto-test-pk9VPSjF.html HTTP/1.1" 405 590 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
Nikto creó un archivo de prueba (`nikto-test-pk9VPSjF.html`) mediante una solicitud PUT para verificar los permisos de escritura en el servidor.
#### Firma de Dirb```bash
sudo grep "DirBuster\|dirb" /var/log/apache2/access.log | head -5
Resultado:``` 10.0.2.5 - - [06/May/2026:21:21:26 -0300] "GET /dirb HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:26 -0300] "GET /dirbmark HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:29 -0300] "GET /admin/dirb HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:29 -0300] "GET /admin/dirbmark HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:32 -0300] "GET /login/dirb HTTP/1.1" 404 472
El propio nombre de Dirb aparece en la lista de palabras que utiliza, dejando una clara firma en los registros.
---
### 13. Análisis de Registros de Errores
Se inspeccionó el registro de errores de Apache en busca de eventos de seguridad del lado del servidor desencadenados por el escaneo.```bash
sudo cat /var/log/apache2/error.log
Eventos críticos encontrados:
Nikto intentó acceder a archivos sensibles del sistema atravesando límites de directorios:``` [client 10.0.2.5] AH10244: invalid URI path (/../../../../../../../../../../../../etc/shadow) [client 10.0.2.5] AH10244: invalid URI path (/../../../../../../../../../../etc/passwd) [client 10.0.2.5] AH10244: invalid URI path (/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/windows/win.ini) [client 10.0.2.5] AH10244: invalid URI path (/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd) [client 10.0.2.5] AH10244: invalid URI path (/../../../../../../../../../boot.ini) [client 10.0.2.5] AH10244: invalid URI path (/../../../../winnt/repair/sam._)
Objetivos incluidos: `/etc/passwd`, `/etc/shadow`, `boot.ini`, `win.ini`, Windows SAM database — todos los objetivos clásicos de path traversal.
#### Métodos HTTP no válidos
Nikto probó métodos HTTP no estándar para identificar configuraciones incorrectas:```
[client 10.0.2.5] AH00135: Invalid method in request DIWHWPJH / HTTP/1.1
[client 10.0.2.5] AH00135: Invalid method in request DEBUG / HTTP/1.1
[client 10.0.2.5] AH00135: Invalid method in request TRACK / HTTP/1.0
[client 10.0.2.5] AH00135: Invalid method in request SEARCH / HTTP/1.1
[client 10.0.2.5] AH00135: Invalid method in request INDEX / HTTP/1.1
Ambas herramientas intentaron acceder a archivos de configuración protegidos por Apache:``` [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/.htpasswd [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/.htaccess [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/server-status [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/admin/.htpasswd [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/login/.htpasswd
#### Salto de ruta específico de VMware
Nikto también probó la exposición de la infraestructura de VMware:```
[client 10.0.2.5] AH10244: invalid URI path (/sdk/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/etc/vmware/hostd/vmInventory.xml)
Los registros de acceso y error revelaron un patrón de ataque automatizado en dos fases originado desde una única dirección IP (10.0.2.5) dirigido al servidor web Apache en el puerto 80.
Nikto realizó 8.102 solicitudes en 17 segundos, probando vulnerabilidades web conocidas, cabeceras de seguridad faltantes, métodos HTTP peligrosos y vectores de path traversal. El registro de errores capturó múltiples intentos de acceder a /etc/passwd, /etc/shadow, boot.ini y archivos SAM de Windows, todos bloqueados por la validación de URI de Apache. Nikto también intentó una solicitud PUT para crear un archivo de prueba en el servidor, confirmando que estaba probando permisos de escritura.
Dirb probó 4.612 palabras de su lista de palabras común contra la raíz y cada subdirectorio descubierto. Esto generó la mayor parte de los 21.740 errores 404 observados. Dirb identificó exitosamente /admin/, /backup/ y /login/ como directorios válidos. Se encontró que el directorio /backup/ tenía el listado de directorios habilitado, una mala configuración significativa que permitiría a un atacante navegar directamente por su contenido.
La concentración de 21.962 solicitudes HTTP desde una única IP de origen en aproximadamente 7 minutos, combinada con la presencia de intentos de path traversal, métodos HTTP no válidos y firmas específicas de herramientas tanto en los registros de acceso como en los de error, constituye evidencia clara de actividad automatizada de reconocimiento web.
No se observó explotación exitosa. Todos los intentos de path traversal fueron rechazados por el motor de validación de URI de Apache. El acceso a archivos protegidos (.htpasswd, .htaccess, server-status) fue denegado por la configuración del servidor.
| Indicador | Valor |
|---|---|
| IP del atacante | 10.0.2.5 |
| IP objetivo | 10.0.2.15 |
| Puerto objetivo | 80 (HTTP) |
| Servidor web | Apache 2.4.67 (Debian) |
| Herramientas identificadas | Nikto v2.5.0, Dirb v2.22 |
| Total de solicitudes del atacante | 21.962 |
| Respuestas HTTP 200 | 177 |
| Respuestas HTTP 403 | 26 |
| Respuestas HTTP 404 | 21.740 |
| Directorios descubiertos | /admin/, /backup/, /login/ |
| Intentos de path traversal | Múltiples (todos bloqueados) |
| Métodos HTTP no válidos probados | TRACK, DEBUG, SEARCH, INDEX |
| Archivos sensibles buscados | /etc/passwd, /etc/shadow, .htpasswd, .htaccess |
| Explotación exitosa | Ninguna |
| Ventana de tiempo | 21:14 a 21:21 (2026-05-06) |
Con base en los hallazgos, se recomiendan los siguientes controles:
X-Frame-Options, X-Content-Type-Options, Content-Security-Policy/backup//server-status solo a localhosterror.log en busca de eventos AH10244 (ruta URI no válida)/admin/, /backup/) de la exposición públicaServerTokens Prod, ServerSignature Off)Este laboratorio demostró cómo las herramientas de escaneo web automatizadas dejan patrones distintivos e identificables tanto en los registros de acceso como en los de error de Apache. Al correlacionar el volumen de errores 404, la presencia de intentos de path traversal en error.log, las solicitudes de métodos HTTP no válidos y las firmas específicas de herramientas en las rutas de solicitud y cadenas de agente de usuario, fue posible reconstruir la línea de tiempo completa del ataque e identificar las herramientas utilizadas, sin ningún conocimiento previo de las acciones del atacante.
El ejercicio refuerza la importancia de la monitorización de registros del servidor web, la configuración de cabeceras de seguridad y los controles de acceso a directorios como prácticas fundamentales del Equipo Azul para infraestructuras expuestas a la web.
Laboratorio del Equipo Azul centrado en analizar registros del servidor Apache para detectar escaneos web, enumeración de directorios e intentos de path traversal.
Instalar y exponer un servidor web Apache en un entorno de laboratorio aislado, simular escaneos automatizados utilizando herramientas ampliamente usadas en pruebas de seguridad, y analizar los registros generados desde una perspectiva del Equipo Azul, identificando patrones de ataque, firmas de herramientas e indicadores de actividad de reconocimiento malicioso.
| Componente | Detalles |
|---|---|
| VM Atacante | Kali Linux |
| VM Objetivo | Debian 13 |
| Red | Red NAT (VirtualBox) |
| IP del Atacante | 10.0.2.5 |
| IP del Objetivo | 10.0.2.15 |
| Servidor web | Apache 2.4.67 |
| Fuentes de registro | /var/log/apache2/access.log, /var/log/apache2/error.log |
| Puerto HTTP | 80 |
Confirmado que el servidor Apache estaba activo y en ejecución en la máquina objetivo.```bash sudo systemctl status apache2 --no-pager
Resultado: `active (running)` desde Wed 2026-05-06 21:09:17. Apache 2.4.67 (Debian), PID principal 3164, 55 tareas activas.
---
### 2. Identificación de la IP del Objetivo
Identificada la dirección IP de la máquina Debian objetivo.```bash
ip a
IP del objetivo: 10.0.2.15/24 — interfaz enp0s3
Verificada la conectividad de red entre Kali y Debian.```bash ping -c 4 10.0.2.15
**Resultado:** 4 paquetes transmitidos, 4 recibidos, 0% de pérdida. RTT min/avg/max: 0.495/1.288/2.139 ms.
---
### 4. Prueba de Apache en el Navegador
Se accedió al servidor Apache desde el navegador de Kali para confirmar la disponibilidad del servicio HTTP.```
http://10.0.2.15
Resultado: Página predeterminada de Apache2 Debian cargada con éxito — confirmando que el servidor web era accesible y respondía a solicitudes HTTP.
Creados directorios y páginas de prueba en el servidor objetivo para simular una estructura de aplicación web realista.```bash sudo mkdir -p /var/www/html/admin sudo mkdir -p /var/www/html/backup sudo mkdir -p /var/www/html/login echo "
Directorios creados: `/admin`, `/backup`, `/login`
---
### 6. Escaneo con Nikto
Ejecutado Nikto contra el servidor web objetivo para simular un escaneo automatizado de vulnerabilidades.```bash
nikto -h http://10.0.2.15
Nikto v2.5.0 — Inicio: 2026-05-06 20:16:56 — Fin: 20:17:13 (17 segundos)
Hallazgos reportados por Nikto:
X-Frame-Options — protección contra clickjacking ausenteX-Content-Type-Options — protección contra MIME sniffing ausente/admin/, /backup/, /login//admin/index.html — página de admin accesible públicamenteEjecutado Dirb para realizar fuerza bruta de directorios contra el servidor web objetivo.```bash dirb http://10.0.2.15
**DIRB v2.22 — Inicio: Wed May 6 20:19:50 2026 — Fin: 20:19:59 2026 (9 segundos)**
Wordlist utilizada: `/usr/share/dirb/wordlists/common.txt` — 4612 palabras probadas
Directorios y archivos encontrados:
| URL | Código | Tamaño |
| --------------------------------- | ------ | ------- |
| http://10.0.2.15/index.html | 200 | 10703 |
| http://10.0.2.15/server-status | 403 | 314 |
| http://10.0.2.15/admin/ | 200 | — |
| http://10.0.2.15/admin/index.html | 200 | 21 |
| http://10.0.2.15/backup/ | 200 | — |
| http://10.0.2.15/login/ | 200 | — |
| http://10.0.2.15/login/index.html | 200 | 20 |
**Advertencia:** El directorio `/backup/` está con listado habilitado — sin archivo de índice, el contenido del directorio puede ser navegado directamente.
**Total descargado:** 13836 bytes — **Encontrados:** 4 recursos
---
### 8. Análisis del Log de Acceso
Inspeccionadas las entradas brutas del log de acceso para identificar el patrón de ataque.```bash
sudo cat /var/log/apache2/access.log
Entradas de la fase de escaneo de Nikto (21:18:32):``` 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.tar.bz2 HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10_0_2_15.gz HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.sql HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.zip HTTP/1.1" 404 527
Entradas de la fase de escaneo de Dirb (21:21:34):```
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/xsql HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/xxx HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/zimbra HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/zoom HTTP/1.1" 404 472
Padrão observado: Centenas de requisições sequenciais dentro do mesmo segundo, todas direcionadas a caminhos inexistentes — comportamento consistente com varredura automatizada.
Filtradas todas as entradas do log de acesso originadas do IP do atacante.```bash sudo grep "10.0.2.5" /var/log/apache2/access.log | head -30
Patrones adicionales observados:
- Nikto intentó acceder a archivos de respaldo usando la IP del servidor como nombre de archivo (ej: `10.0.2.15.tar.bz2`, `10.0.2.15.sql`, `10.0.2.15.zip`)
- Dirb iteró por listas de palabras en orden alfabético apuntando a cada directorio descubierto
- Ambas herramientas generaron peticiones a velocidad de máquina — múltiples entradas por segundo en el mismo rango de puerto de origen
---
### 10. Distribución de Códigos de Estado HTTP
Se contabilizaron las peticiones por código de respuesta HTTP para cuantificar la superficie de ataque.```bash
sudo grep " 200 " /var/log/apache2/access.log | wc -l
sudo grep " 403 " /var/log/apache2/access.log | wc -l
sudo grep " 404 " /var/log/apache2/access.log | wc -l
| Código HTTP | Significado | Cantidad |
|---|---|---|
| 200 | OK — recurso encontrado y entregado | 177 |
| 403 | Prohibido — recurso existe pero acceso denegado | 26 |
| 404 | No encontrado — recurso no existe | 21.740 |
Total de errores 404: 21.740 — la abrumadora mayoría de las solicitudes fueron dirigidas a rutas inexistentes, lo cual es la característica definitoria de la fuerza bruta automatizada de directorios.
Contabilizadas todas las entradas del registro de acceso originadas por el atacante.```bash sudo grep "10.0.2.5" /var/log/apache2/access.log | wc -l
**Total de solicitudes de 10.0.2.5: 21.962**
---
### 12. Identificación de Firma de las Herramientas
Buscadas firmas específicas de los escáneres en el registro de acceso.
#### Firma del Nikto```bash
sudo grep "nikto" /var/log/apache2/access.log | head -5
Resultado:``` 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "PUT /nikto-test-pk9VPSjF.html HTTP/1.1" 405 590 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
Nikto creó un archivo de prueba (`nikto-test-pk9VPSjF.html`) mediante una solicitud PUT para verificar los permisos de escritura en el servidor.
#### Firma de Dirb```bash
sudo grep "DirBuster\|dirb" /var/log/apache2/access.log | head -5
Resultado:``` 10.0.2.5 - - [06/May/2026:21:21:26 -0300] "GET /dirb HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:26 -0300] "GET /dirbmark HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:29 -0300] "GET /admin/dirb HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:29 -0300] "GET /admin/dirbmark HTTP/1.1" 404 472 10.0.2.5 - - [06/May/2026:21:21:32 -0300] "GET /login/dirb HTTP/1.1" 404 472
O próprio nome do Dirb aparece na wordlist que ele utiliza, deixando uma assinatura clara nos logs.
---
### 13. Análisis del Log de Errores
Inspeccionado el log de errores de Apache para identificar eventos de seguridad generados por el escaneo.```bash
sudo cat /var/log/apache2/error.log
Eventos críticos encontrados:
Nikto intentó acceder a archivos sensibles del sistema traspasando los límites de directorio:``` [client 10.0.2.5] AH10244: invalid URI path (/../../../../../../../../../../../../etc/shadow) [client 10.0.2.5] AH10244: invalid URI path (/../../../../../../../../../../etc/passwd) [client 10.0.2.5] AH10244: invalid URI path (/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/windows/win.ini) [client 10.0.2.5] AH10244: invalid URI path (/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd) [client 10.0.2.5] AH10244: invalid URI path (/../../../../../../../../../boot.ini) [client 10.0.2.5] AH10244: invalid URI path (/../../../../winnt/repair/sam._)
Los objetivos incluyeron: `/etc/passwd`, `/etc/shadow`, `boot.ini`, `win.ini`, base de datos SAM de Windows — todos objetivos clásicos de path traversal.
#### Métodos HTTP Inválidos
Nikto probó métodos HTTP no estándar para identificar configuraciones incorrectas:```
[client 10.0.2.5] AH00135: Invalid method in request DIWHWPJH / HTTP/1.1
[client 10.0.2.5] AH00135: Invalid method in request DEBUG / HTTP/1.1
[client 10.0.2.5] AH00135: Invalid method in request TRACK / HTTP/1.0
[client 10.0.2.5] AH00135: Invalid method in request SEARCH / HTTP/1.1
[client 10.0.2.5] AH00135: Invalid method in request INDEX / HTTP/1.1
Ambas herramientas intentaron acceder a archivos de configuración protegidos por Apache:``` [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/.htpasswd [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/.htaccess [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/server-status [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/admin/.htpasswd [client 10.0.2.5] AH01630: client denied by server configuration: /var/www/html/login/.htpasswd
#### Path Traversal Específico para VMware
Nikto también probó exposición de infraestructura VMware:```
[client 10.0.2.5] AH10244: invalid URI path (/sdk/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/etc/vmware/hostd/vmInventory.xml)
Los registros de acceso y de errores revelaron un patrón de ataque automatizado en dos fases, originado desde una única dirección IP (10.0.2.5) dirigido al servidor Apache en el puerto 80.
Nikto realizó 8.102 solicitudes en 17 segundos, probando vulnerabilidades web conocidas, cabeceras de seguridad ausentes, métodos HTTP peligrosos y vectores de path traversal. El registro de errores registró múltiples intentos de acceso a /etc/passwd, /etc/shadow, boot.ini y a la base de datos SAM de Windows — todos bloqueados por la validación de URI de Apache. Nikto también intentó una solicitud PUT para crear un archivo de prueba en el servidor, confirmando que estaba verificando permisos de escritura.
Dirb probó 4.612 palabras de su wordlist común contra el directorio raíz y cada subdirectorio descubierto. Esto generó la mayor parte de los 21.740 errores 404 observados. Dirb identificó con éxito /admin/, /backup/ y /login/ como directorios válidos. El directorio /backup/ se encontró con listado habilitado — una configuración incorrecta significativa que permitiría a un atacante navegar por su contenido directamente.
La concentración de 21.962 solicitudes HTTP desde una única IP de origen en aproximadamente 7 minutos, combinada con la presencia de intentos de path traversal, solicitudes con métodos HTTP inválidos y firmas específicas de herramientas en los registros de acceso y de errores, constituye evidencia clara de actividad automatizada de reconocimiento web.
No se observó ninguna explotación exitosa. Todos los intentos de path traversal fueron rechazados por el mecanismo de validación de URI de Apache. El acceso a archivos protegidos (.htpasswd, .htaccess, server-status) fue denegado por la configuración del servidor.
| Indicador | Valor |
|---|---|
| IP del atacante | 10.0.2.5 |
| IP del objetivo | 10.0.2.15 |
| Puerto objetivo | 80 (HTTP) |
| Servidor web | Apache 2.4.67 (Debian) |
| Herramientas identificadas | Nikto v2.5.0, Dirb v2.22 |
| Total de solicitudes del atacante | 21.962 |
| Respuestas HTTP 200 | 177 |
| Respuestas HTTP 403 | 26 |
| Respuestas HTTP 404 | 21.740 |
| Directorios descubiertos | /admin/, /backup/, /login/ |
| Intentos de path traversal | Múltiples (todos bloqueados) |
| Métodos HTTP inválidos probados | TRACK, DEBUG, SEARCH, INDEX |
| Archivos sensibles atacados | /etc/passwd, /etc/shadow, .htpasswd, .htaccess |
| Explotación exitosa | Ninguna |
| Ventana de tiempo | 21:14 a 21:21 (2026-05-06) |
Basado en los hallazgos, se recomiendan los siguientes controles:
X-Frame-Options, X-Content-Type-Options, Content-Security-Policy/backup//server-status solo a localhosterror.log continuamente en busca de eventos AH10244 (URI path inválido)/admin/, /backup/)ServerTokens Prod, ServerSignature Off)Este laboratorio demostró cómo las herramientas de escaneo web automatizado dejan patrones distintivos e identificables en los registros de acceso y de errores de Apache. Al correlacionar el volumen de errores 404, la presencia de intentos de path traversal en el error.log, solicitudes con métodos HTTP inválidos y firmas específicas de herramientas en las rutas de solicitud y cadenas de user-agent, fue posible reconstruir la línea de tiempo completa del ataque e identificar las herramientas utilizadas — sin ningún conocimiento previo de las acciones del atacante.
El ejercicio refuerza la importancia del monitoreo de registros de servidores web, configuración de cabeceras de seguridad y controles de acceso a directorios como prácticas fundamentales de Blue Team para infraestructura expuesta a la web.