> For the complete documentation index, see [llms.txt](https://4lec4st.gitbook.io/4lec4st/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://4lec4st.gitbook.io/4lec4st/ejpt-notes/metodologias-de-evaluacion/enumeracion/enumeracion-de-servicios/enumeracion-de-servidores-web.md).

# Enumeración de servidores web

## 📖 ¿Qué es un servidor web?

Un **servidor web** es un software que gestiona solicitudes HTTP y sirve contenido web (HTML, imágenes, scripts, etc.) a los usuarios. Funciona mediante el protocolo **HTTP (Hypertext Transfer Protocol)**, que generalmente opera sobre **el puerto TCP 80** (o **443** para HTTPS).

#### 🔸 Ejemplos comunes de servidores web:

* **Apache** (muy común en sistemas Linux)
* **Nginx** (ligero y de alto rendimiento)
* **Microsoft IIS** (Integrado en Windows Server)

***

## 🎯 Objetivo de la enumeración

El propósito de la enumeración de servidores web es:

* Identificar el **software y versión** del servidor web.
* Obtener y analizar los **encabezados HTTP**.
* Descubrir **archivos/directorios ocultos**.
* Detectar **tecnologías web** usadas (lenguajes, frameworks).
* Buscar configuraciones inseguras (indexación habilitada, métodos HTTP inseguros, etc).

***

## 🧪 Laboratorio Práctico

**Paso 1:** Abra el enlace del laboratorio para acceder a la máquina Kali.

<figure><img src="/files/9meDYluJf8S7a7OmYtOZ" alt=""><figcaption></figcaption></figure>

**Paso 2:** Verifique si la máquina de destino es accesible:

**Dominio:**

```
ping -c 5 victim-1
```

<figure><img src="/files/wb9oUqnHKO9jyvkNSbQB" alt=""><figcaption></figcaption></figure>

El objetivo es alcanzable.

**Paso 3:** Abra la consola del marco Metasploit.

**Dominio:**

```
msfconsole -q
```

<figure><img src="/files/52ZTNmc36tjFK7rHGFYR" alt=""><figcaption></figcaption></figure>

**Paso 4:** Ejecute los módulos auxiliares de Metasploit contra el objetivo uno por uno.

**Módulo 1:** auxiliar/escáner/http/http\_version

**Comandos:**

```
use auxiliary/scanner/http/http_version
set RHOSTS victim-1
run
```

<figure><img src="/files/sXceCho21bGTL46d7eEh" alt=""><figcaption></figcaption></figure>

**Módulo 2:** auxiliar/escáner/http/robots\_txt

**Comandos:**

```
use auxiliary/scanner/http/robots_txt
set RHOSTS victim-1
run
```

<figure><img src="/files/ZTiXo2yi0BDn0iL9GQ9M" alt=""><figcaption></figcaption></figure>

**Módulo 3:** auxiliar/escáner/http/http\_header

**Comandos:**

```
use auxiliary/scanner/http/http_header
set RHOSTS victim-1
run
```

<figure><img src="/files/KLL1dU49L8aF8txC5rea" alt=""><figcaption></figcaption></figure>

**Comandos:**

```
use auxiliary/scanner/http/http_header
set RHOSTS victim-1
set TARGETURI /secure
run
```

<figure><img src="/files/fSIsOClyQFmxP6fdARaX" alt=""><figcaption></figcaption></figure>

**Módulo 4:** auxiliar/scanner/http/brute\_dirs

**Comandos:**

```
use auxiliary/scanner/http/brute_dirs
set RHOSTS victim-1
run
```

<figure><img src="/files/H6w7QB6kRvFWdQytuGqh" alt=""><figcaption></figcaption></figure>

**Módulo 5:** auxiliar/scanner/http/dir\_scanner

**Comandos:**

```
use auxiliary/scanner/http/dir_scanner
set RHOSTS victim-1
set DICTIONARY /usr/share/metasploit-framework/data/wordlists/directory.txt
run
```

<figure><img src="/files/6xSapTTItCHVKbrIgzdv" alt=""><figcaption></figcaption></figure>

**Módulo 6:** auxiliar/escáner/http/dir\_listing

**Comandos:**

```
use auxiliary/scanner/http/dir_listing
set RHOSTS victim-1
set PATH /data
run
```

<figure><img src="/files/opfDfY2NhL5jegSOfirQ" alt=""><figcaption></figcaption></figure>

**Módulo 7:** auxiliar/scanner/http/files\_dir

**Dominio:**

```
use auxiliary/scanner/http/files_dir
set RHOSTS victim-1
set VERBOSE false
run
```

<figure><img src="/files/SuoWaqUvENwQq5KCIyzl" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/DvTgiziHvhYXm0zoXszc" alt=""><figcaption></figcaption></figure>

**Módulo 8:** auxiliar/escáner/http/http\_put

**Comandos:**

```
use auxiliary/scanner/http/http_put
set RHOSTS victim-1
set PATH /data
set FILENAME test.txt
set FILEDATA "Welcome To AttackDefense"
run
```

<figure><img src="/files/g9vDZkWo3ImsfXq12VZK" alt=""><figcaption></figcaption></figure>

Podemos observar que hemos escrito correctamente un archivo en el servidor de destino. Si el archivo ya existe, se sobrescribirá. Usemos wget para descargar el archivo test.txt y verificarlo.

**Comandos:**

```
wget http://victim-1:80/data/test.txt 
cat test.txt
```

<figure><img src="/files/pjrMlPxQqmV16dNmfSp3" alt=""><figcaption></figcaption></figure>

Podemos descargar el archivo text.txt y podemos ver su contenido, es decir "Bienvenido a AttackDefense".

Ahora, usemos el método DELETE y eliminemos el archivo de texto.

**Comandos:**

```
use auxiliary/scanner/http/http_put
set RHOSTS victim-1
set PATH /data
set FILENAME test.txt
set ACTION DELETE
run
```

<figure><img src="/files/DxvoXiU7LTBbyZ6TqY0o" alt=""><figcaption></figcaption></figure>

Intentemos descargar el mismo archivo desde la misma ruta. Esta vez, deberíamos recibir el error 404 (archivo no encontrado) porque lo hemos eliminado.

**Dominio:**

```
wget http://victim-1:80/data/test.txt 
```

<figure><img src="/files/u8OfDdhE3F4awfmTqREt" alt=""><figcaption></figcaption></figure>

**Módulo 9:** auxiliar/escáner/http/http\_login

**Comandos:**

```
use auxiliary/scanner/http/http_login
set RHOSTS victim-1
set AUTH_URI /secure/
set VERBOSE false
run
```

<figure><img src="/files/qjbLlvV2aV4fMB5ifHgf" alt=""><figcaption></figcaption></figure>

**Módulo 10:** auxiliar/escáner/http/apache\_userdir\_enum

**Comandos:**

```
use auxiliary/scanner/http/apache_userdir_enum
set USER_FILE /usr/share/metasploit-framework/data/wordlists/common_users.txt
set RHOSTS victim-1
set VERBOSE false
run
```

<figure><img src="/files/NcFErvai0v2bNBj8rklj" alt=""><figcaption></figcaption></figure>

#### Conclusión

En este laboratorio, aprendimos sobre la enumeración de Apache utilizando los módulos del marco Metasploit.

#### Referencias

1. [Apache](https://httpd.apache.org/)
2. Metasploit Modules:
3. [http\_version](https://www.rapid7.com/db/modules/auxiliary/scanner/http/http_version)
4. [http\_header](https://www.rapid7.com/db/modules/auxiliary/scanner/http/http_header)
5. [robots\_txt](https://www.rapid7.com/db/modules/auxiliary/scanner/http/robots_txt)
6. [brute\_dirs](https://www.rapid7.com/db/modules/auxiliary/scanner/http/brute_dirs)
7. [dir\_scanner](https://www.rapid7.com/db/modules/auxiliary/scanner/http/dir_scanner)
8. [dir\_listing](https://www.rapid7.com/db/modules/auxiliary/scanner/http/dir_listing)
9. [files\_dir](https://www.rapid7.com/db/modules/auxiliary/scanner/http/files_dir)
10. [http\_put](https://www.rapid7.com/db/modules/auxiliary/scanner/http/http_put)
11. [http\_login](https://www.rapid7.com/db/modules/auxiliary/scanner/http/http_login)
12. [apache\_userdir\_enum](https://www.rapid7.com/db/modules/auxiliary/scanner/http/apache_userdir_enum)
