Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
apache-web-log-analysis-lab — Laboratorio de Blue Team enfocado en analizar logs de acceso web de Apache para detectar fuerza bruta de directorios y actividad de escaneo web. | Kitploit
Herramientas/GitHubGitHub/pedrofbrm/apache-web-log-analysis-lab
Seguridad WebAprendizaje y EducaciónAnálisis de RegistrosLabs y Práctica
GitHubpedrofbrm/apache-web-log-analysis-lab

apache-web-log-analysis-lab

Laboratorio de Blue Team enfocado en analizar logs de acceso web de Apache para detectar fuerza bruta de directorios y actividad de escaneo web.

Ver Repositorio
3hace 4 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Laboratorio de Análisis de Registros Web Apache

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.


Objetivo

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.


Entorno

" | sudo tee /var/www/html/admin/index.html echo "" | sudo tee /var/www/html/login/index.html " | sudo tee /var/www/html/admin/index.html echo "" | sudo tee /var/www/html/login/index.html
ComponenteDetalles
VM atacanteKali Linux
VM objetivoDebian 13
RedRed NAT (VirtualBox)
IP atacante10.0.2.5
IP objetivo10.0.2.15
Servidor webApache 2.4.67
Fuentes de registro/var/log/apache2/access.log, /var/log/apache2/error.log
Puerto HTTP80

Pasos Realizados

1. Validación del Servicio Apache

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

root@kitploit:~
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


3. Prueba de conectividad

Se verificó la conectividad de red entre la máquina atacante Kali y el objetivo Debian.```bash ping -c 4 10.0.2.15

root@kitploit:~
**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.


5. Configuración del contenido web

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 "

Admin Panel

Login Page

root@kitploit:~
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:

  • Servidor: Apache/2.4.67 (Debian)
  • Encabezado faltante: X-Frame-Options — protección contra clickjacking ausente
  • Encabezado faltante: X-Content-Type-Options — protección contra MIME sniffing ausente
  • Fuga de ETag: El servidor podría filtrar números de inodo a través de ETags (CVE-2003-1418)
  • Métodos permitidos: GET, POST, OPTIONS, HEAD
  • Directorios interesantes encontrados: /admin/, /backup/, /login/
  • Confirmado: /admin/index.html — Página de inicio de sesión de administración accesible
  • Solicitudes totales: 8102 en 17 segundos

7. Escaneo con Dirb

Ejecutó Dirb para realizar fuerza bruta de directorios contra el servidor web objetivo.```bash dirb http://10.0.2.15

root@kitploit:~
**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

root@kitploit:~
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.


9. Patrón de escaneo por IP de origen

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

root@kitploit:~
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 CodeSignificadoCount
200OK — recurso encontrado y servido177
403Prohibido — el recurso existe pero acceso denegado26
404No encontrado — el recurso no existe21740

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.


11. Solicitudes Totales por IP del Atacante

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

root@kitploit:~
**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"

root@kitploit:~
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

root@kitploit:~
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:

Intentos de Path Traversal (Directory Traversal)

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._)

root@kitploit:~
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

Intentos de Acceso a Archivos Protegidos

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

root@kitploit:~
#### 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)

Análisis

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.

Fase 1 — Escaneo de vulnerabilidades (Nikto, 21:14 a 21:18)

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.

Fase 2 — Enumeración de directorios (Dirb, 21:19 a 21:21)

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.

Evaluación combinada

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.


Indicadores clave

IndicadorValor
IP del atacante10.0.2.5
IP objetivo10.0.2.15
Puerto objetivo80 (HTTP)
Servidor webApache 2.4.67 (Debian)
Herramientas identificadasNikto v2.5.0, Dirb v2.22
Total de solicitudes del atacante21.962
Respuestas HTTP 200177
Respuestas HTTP 40326
Respuestas HTTP 40421.740
Directorios descubiertos/admin/, /backup/, /login/
Intentos de path traversalMúltiples (todos bloqueados)
Métodos HTTP no válidos probadosTRACK, DEBUG, SEARCH, INDEX
Archivos sensibles buscados/etc/passwd, /etc/shadow, .htpasswd, .htaccess
Explotación exitosaNinguna
Ventana de tiempo21:14 a 21:21 (2026-05-06)

Recomendaciones defensivas

Con base en los hallazgos, se recomiendan los siguientes controles:

  • Añadir cabeceras de seguridad a la configuración de Apache: X-Frame-Options, X-Content-Type-Options, Content-Security-Policy
  • Deshabilitar las cabeceras ETag para evitar la fuga de información de inodos
  • Restringir los métodos HTTP permitidos solo a GET, POST y HEAD
  • Deshabilitar el listado de directorios para todos los directorios, especialmente /backup/
  • Restringir el acceso a /server-status solo a localhost
  • Implementar limitación de tasa para bloquear IPs que generen solicitudes excesivas por segundo
  • Implementar un WAF (Firewall de Aplicaciones Web) para detectar y bloquear patrones de path traversal
  • Monitorear continuamente error.log en busca de eventos AH10244 (ruta URI no válida)
  • Eliminar o restringir el acceso a directorios sensibles (/admin/, /backup/) de la exposición pública
  • Ocultar la versión de Apache de las cabeceras de respuesta HTTP (ServerTokens Prod, ServerSignature Off)

Conclusión

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.


Herramientas utilizadas

  • Kali Linux
  • Debian 13
  • Apache 2.4.67
  • Nikto v2.5.0
  • Dirb v2.22
  • grep, wc, cat


Laboratorio de Análisis de Registros de Apache 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.


Objetivo

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.


Entorno

ComponenteDetalles
VM AtacanteKali Linux
VM ObjetivoDebian 13
RedRed NAT (VirtualBox)
IP del Atacante10.0.2.5
IP del Objetivo10.0.2.15
Servidor webApache 2.4.67
Fuentes de registro/var/log/apache2/access.log, /var/log/apache2/error.log
Puerto HTTP80

Pasos Realizados

1. Validación del Servicio Apache

Confirmado que el servidor Apache estaba activo y en ejecución en la máquina objetivo.```bash sudo systemctl status apache2 --no-pager

root@kitploit:~
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


3. Prueba de Conectividad

Verificada la conectividad de red entre Kali y Debian.```bash ping -c 4 10.0.2.15

root@kitploit:~
**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.


5. Creación de Contenido de Prueba

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 "

Admin Panel

Login Page

root@kitploit:~
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:

  • Servidor: Apache/2.4.67 (Debian)
  • Cabecera ausente: X-Frame-Options — protección contra clickjacking ausente
  • Cabecera ausente: X-Content-Type-Options — protección contra MIME sniffing ausente
  • Fuga de ETag: El servidor puede filtrar números de inodo a través de ETags (CVE-2003-1418)
  • Métodos permitidos: GET, POST, OPTIONS, HEAD
  • Directorios interesantes encontrados: /admin/, /backup/, /login/
  • Confirmado: /admin/index.html — página de admin accesible públicamente
  • Total de solicitudes: 8102 en 17 segundos

7. Escaneo con Dirb

Ejecutado Dirb para realizar fuerza bruta de directorios contra el servidor web objetivo.```bash dirb http://10.0.2.15

root@kitploit:~
**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

root@kitploit:~
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.


9. Padrão de Scan por IP de Origem

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

root@kitploit:~
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 HTTPSignificadoCantidad
200OK — recurso encontrado y entregado177
403Prohibido — recurso existe pero acceso denegado26
404No encontrado — recurso no existe21.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.


11. Total de Solicitudes por IP del Atacante

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

root@kitploit:~
**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"

root@kitploit:~
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

root@kitploit:~
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:

Intentos de Path Traversal (Directory Traversal)

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._)

root@kitploit:~
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

Intentos de Acceso a Archivos Protegidos

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

root@kitploit:~
#### 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)

Análisis

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.

Fase 1 — Escaneo de Vulnerabilidades (Nikto, 21:14 a 21:18)

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.

Fase 2 — Enumeración de Directorios (Dirb, 21:19 a 21:21)

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.

Evaluación Combinada

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.


Indicadores Principales

IndicadorValor
IP del atacante10.0.2.5
IP del objetivo10.0.2.15
Puerto objetivo80 (HTTP)
Servidor webApache 2.4.67 (Debian)
Herramientas identificadasNikto v2.5.0, Dirb v2.22
Total de solicitudes del atacante21.962
Respuestas HTTP 200177
Respuestas HTTP 40326
Respuestas HTTP 40421.740
Directorios descubiertos/admin/, /backup/, /login/
Intentos de path traversalMúltiples (todos bloqueados)
Métodos HTTP inválidos probadosTRACK, DEBUG, SEARCH, INDEX
Archivos sensibles atacados/etc/passwd, /etc/shadow, .htpasswd, .htaccess
Explotación exitosaNinguna
Ventana de tiempo21:14 a 21:21 (2026-05-06)

Recomendaciones Defensivas

Basado en los hallazgos, se recomiendan los siguientes controles:

  • Agregar cabeceras de seguridad en la configuración de Apache: X-Frame-Options, X-Content-Type-Options, Content-Security-Policy
  • Deshabilitar cabeceras ETag para evitar fuga de información de inodo
  • Restringir los métodos HTTP permitidos únicamente a GET, POST y HEAD
  • Deshabilitar listado de directorios en todos los directorios, especialmente /backup/
  • Restringir el acceso a /server-status solo a localhost
  • Implementar limitación de velocidad (rate limiting) para bloquear IPs que generen solicitudes excesivas por segundo
  • Implementar WAF (Web Application Firewall) para detectar y bloquear patrones de path traversal
  • Monitorear error.log continuamente en busca de eventos AH10244 (URI path inválido)
  • Eliminar o restringir el acceso público a directorios sensibles (/admin/, /backup/)
  • Ocultar la versión de Apache en las cabeceras de respuesta HTTP (ServerTokens Prod, ServerSignature Off)

Conclusión

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.


Herramientas Utilizadas

  • Kali Linux
  • Debian 13
  • Apache 2.4.67
  • Nikto v2.5.0
  • Dirb v2.22
  • grep, wc, cat
Descargar herramienta