> 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/ctf/metodologias-de-evaluacion-enumeracion-ctf-1.md).

# Metodologías de evaluación: Enumeración CTF 1

## Descripción general

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

***

## Tareas

Se puede acceder a una máquina Linux en **target.ine.local** . Identifique los servicios que se ejecutan en la máquina y capture las banderas. La bandera tiene un formato hash MD5.

* **Bandera 1:** Hay un recurso compartido de Samba que permite acceso anónimo. ¡Me pregunto qué hay ahí!
* **Bandera 2:** Uno de los usuarios de Samba tiene una contraseña incorrecta. ¡Su recurso compartido privado con el mismo nombre que su nombre de usuario está en riesgo!
* **Bandera 3:** Sigue la pista dada en la bandera anterior para descubrir ésta.
* **Bandera 4:** Esta es una advertencia destinada a disuadir a usuarios no autorizados de iniciar sesión.

**Nota:** Las listas de palabras que se encuentran en el siguiente directorio serán útiles:

***

## 🚩 target.ine.local

Flag 1

Usamos nmap para identificar los puertos abiertos en la máquina. Esto nos ayuda a saber qué servicios están disponibles para interactuar o explotar.

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

Con nmap -sV, obtenemos las versiones de los servicios que corren en los puertos abiertos. El puerto 445 indica que está corriendo Samba, el cual permite compartir archivos en red a través del protocolo SMB.

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

Intentamos conectarnos al SMB usando smbclient con una sesión nula (sin usuario ni contraseña), pero no muestra ningún recurso visible. Esto indica que los shares pueden estar ocultos o requieren conocer su nombre.

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

He creado un script bash que automatiza la comprobación de recursos compartidos SMB usando una wordlist.

```bash
#!/bin/bash
# Colores
GREEN="\e[32m"
RED="\e[31m"
YELLOW="\e[33m"
RESET="\e[0m"

# Define el objetivo y la ubicación de la wordlist
TARGET="target.ine.local"
WORDLIST="/root/Desktop/wordlists/shares.txt"

# Verifica si la wordlist existe
if [ ! -f "$WORDLIST" ]; then
    echo -e "${RED}[!] Wordlist no encontrada: $WORDLIST${RESET}"
    exit 1
fi

echo -e "${YELLOW}[*] Escaneando shares SMB en $TARGET...${RESET}"

# Itera sobre cada línea de la wordlist
while IFS= read -r SHARE; do
    echo -e "${YELLOW}[*] Probando share: $SHARE${RESET}"
    smbclient "//$TARGET/$SHARE" -N -c "ls" &>/dev/null

    if [ $? -eq 0 ]; then
        echo -e "${GREEN}[+] Acceso anónimo permitido: $SHARE${RESET}"
    else
        echo -e "${RED}[-] Acceso denegado: $SHARE${RESET}"
    fi
done < "$WORDLIST"
```

El script detecta que el recurso compartido pubfiles permite acceso anónimo. Esto significa que podemos conectarnos sin credenciales

<figure><img src="/files/7TpsTKl7U58xdnHcmO6s" alt=""><figcaption></figcaption></figure>

Usamos smbclient //target.ine.local/pubfiles -N para conectarnos al recurso. Al listar los archivos (ls), encontramos un archivo que contiene la flag1.

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

Flag 2

Utilizamos `enum4linux target.ine.local`, una herramienta que automatiza la enumeración de SMB. Esta identifica cuatro usuarios válidos dentro del sistema.

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

Usamos el módulo `auxiliary/scanner/smb/smb_login` en Metasploit, cargamos los usuarios y una lista de contraseñas, y ejecutamos fuerza bruta para probar combinaciones válidas.

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

Las credenciales `josh:purple` son válidas. Como es común en entornos Windows/Samba, hay un recurso compartido llamado como el usuario (`\\target\josh`). Accedemos a él con `smbclient -U josh //target/josh` e ingresamos su contraseña. Dentro, encontramos la **flag**

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

Flag 3

Nos conectamos al FTP y el mensaje de bienvenida muestra que hay tres cuentas de usuarios que deben cambiar pronto su contraseña, lo que sugiere que son cuentas válidas.

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

Con `hydra -l alice -P /ruta/a/wordlist.txt ftp://target`, lanzamos un ataque de fuerza bruta al servicio FTP. El ataque revela que la contraseña del usuario `alice` es `pretty`.

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

Accedemos con `ftp target`, ingresamos `alice` y su contraseña. Listamos los archivos y encontramos un archivo que contiene la **flag3**, que descargamos con `get`.

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

Leemos el archivo descargado, y vemos el contenido de la **flag3**.

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

Flag 4

Nos conectamos por SSH con las credenciales de `alice` (`ssh alice@target`). Antes de iniciar sesión nos muestra la flag4.

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