> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/es/writeups-ctf/hackthebox/linux-easy/greenhorn-hackthebox-writeup.md).

# Resolución de HackTheBox Greenhorn

{% embed url="<https://app.hackthebox.com/machines/GreenHorn>" %}

{% hint style="warning" %}
**Habilidades:**

* Descubriendo contraseñas incrustadas en repositorios Git
* Contraseñas SHA-512 sin hash
* Explotación de Pluck
* Descifrando contraseñas pixeladas (usando DEPIX)
  {% endhint %}

## Reconocimiento <a href="#reconnaissance" id="reconnaissance"></a>

**Configuración del espacio de trabajo:**

Configura el espacio de trabajo creando tres carpetas para almacenar contenido importante, exploits y resultados de reconocimiento de Nmap.

<figure><img src="/files/37ce1652c119a27ad65fea3aec3f0b9129c697b1" alt="" width="563"><figcaption></figcaption></figure>

**Comprobación de conectividad VPN**

Comprueba la conectividad VPN para asegurar una comunicación estable con la máquina objetivo.

<figure><img src="/files/dfd2a5fbf150321e93ee374b9f711e4ac8118ec7" alt="" width="563"><figcaption></figcaption></figure>

**Descubrimiento de puertos abiertos con Nmap:**

Enumera los puertos abiertos y exporta los resultados al archivo "allPorts" en el directorio de Nmap:

```bash
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 10.10.11.25 -oG allPorts
```

<figure><img src="/files/175275a260fd07343ce876a897f29e8ce1a0a2ac" alt=""><figcaption></figcaption></figure>

**Análisis de puertos abiertos con extractPorts:**

Usa la función extractPorts para mostrar los puertos abiertos en un formato conciso y copiarlos al portapapeles (22,80,3000)

<figure><img src="/files/d5f9b107c4fbdc69b073872d62e7561ee8940367" alt="" width="563"><figcaption></figcaption></figure>

**Escaneo de versiones de puertos con Nmap:**

Usa Nmap para escanear las versiones de los servicios y guardar la salida en el archivo "targeted":

```bash
nmap -sCV -p80,22,3000 10.10.11.25 -oN targeted
```

<figure><img src="/files/71087f64ddc4c08e571552f878b450f2c4b1105b" alt=""><figcaption></figcaption></figure>

Para resolver nombres de dominio en direcciones IP mediante DNS, inserta el nombre de dominio asociado con su dirección IP en el `/etc/hosts` archivo.

<figure><img src="/files/17726199c69fe1f841bc6a4b3391fb36a6e4a5bd" alt="" width="563"><figcaption></figcaption></figure>

### **Descubrimiento de contraseñas:**

En el puerto 3000 encontramos un servicio expuesto similar a Git, parecido a GitHub, pero destinado al uso corporativo interno

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

Procedemos a crear una cuenta

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

Entre los archivos del proyecto encontramos un archivo que contiene una contraseña en "`pass.php`":

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

```
d5443aef1b64544f3685bf112f6c405218c573c7279a831b1fe9612e3a4d770486743c5580556c0d838b51749de15530f87fb793afdcc689b6b39024d7790163
```

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

Este hash está en SHA512. Después de descifrarlo, obtenemos la contraseña **`iloveyou1`**.

{% embed url="<https://10015.io/tools/sha512-encrypt-decrypt>" %}

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

## Vulnerabilidad de Pluck CMS

En el puerto 80 encontramos un servicio web Pluck.

<figure><img src="/files/66834ed8074a1a6ebb41a470e3c3cf11f6484a65" alt=""><figcaption></figcaption></figure>

El `login.php` el archivo requiere una contraseña para acceder a la interfaz del administrador.

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

El gestor de contenidos tiene una versión `4.7.18`, vulnerable a ejecución remota de código (RCE).

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

{% embed url="<https://github.com/Rai2en/CVE-2023-50564_Pluck-v4.7.18_PoC>" %}

### Fase de explotación:

1. Clona el repositorio que contiene el script de exploit:

```bash
git clone https://github.com/Rai2en/CVE-2023-50564_Pluck-v4.7.18_PoC.git
cd CVE-2023-50564_Pluck-v4.7.18_PoC
```

2. Modificamos el `poc.py` script con la dirección IP del servidor y la contraseña "*iloveyou1*".

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

2. A continuación, crea un `payload.zip` archivo que contenga la carga maliciosa, con los campos `<your_ip>` y puerto ajustados para que coincidan con nuestro listener.

<figure><img src="/files/de6ee9a2bf9c360849dc02982a2bdd6245fc60aa" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="/files/f6460a4eeedb47cb255925bce92a5f606b30d31e" alt="" width="512"><figcaption></figcaption></figure>

5. Ejecutamos el script de explotación:

```bash
python poc.py

/home/jordan/......./payload.zip
```

<figure><img src="/files/7465413c090bd9ce535c4063a2cd7f55cdf8132d" alt=""><figcaption></figcaption></figure>

Al mismo tiempo, abrimos una sesión en escucha en el puerto `4444` con Netcat y obtenemos acceso al servidor como usuario `www-data`.

<figure><img src="/files/6663588781d568042942c2ad7cc61b5f569afad5" alt=""><figcaption></figcaption></figure>

Al inspeccionar el `/etc/passwd` archivo, descubrimos el usuario "junior". Logramos conectarnos con la contraseña **iloveyou1**:

<figure><img src="/files/14c80e5ef7c8ddeadaa362684c36781f3ce2f62e" alt=""><figcaption></figcaption></figure>

### Flag de user.txt obtenida:

<figure><img src="/files/c3768ca1b638ea0b406515db07f0675f5e8fc249" alt="" width="563"><figcaption></figcaption></figure>

## Escalada de privilegios

1. Localizamos el archivo PDF: `Usando OpenVAS.pdf`.
2. Transfiere el archivo usando Python 3 ejecutando:

```bash
python3 -m http.server 1234
```

<figure><img src="/files/611916f111453533d38c4e0865608832eb7097a9" alt="" width="563"><figcaption></figcaption></figure>

3. Descargamos el archivo PDF con el siguiente comando:

<pre class="language-bash"><code class="lang-bash"><strong>wget http://10.10.11.25:1234/Using%20OpenVAS.pdf
</strong></code></pre>

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

Al abrir este archivo, descubrimos la contraseña pixelada de la cuenta de administrador

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

### Descifrado de la contraseña:

Para descifrar la contraseña oculta, usamos el software Depix:

{% embed url="<https://github.com/spipm/Depix>" %}

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

```bash
git clone https://github.com/spipm/Depix
cd Depix
```

A continuación, ejecutamos el comando:

```bash
python3 depix.py /
    -p pixel.png /
    -s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png /
    -o /home/jordan/Desktop/password.png
```

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

La contraseña descifrada es:

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

`sidefromsidetheothersidesidefromsidetheotherside`

Iniciamos sesión como usuario root con esta contraseña.

<figure><img src="/files/6728cd69dc1c09adbfbeca3d54ae03ca653dce86" alt="" width="554"><figcaption></figcaption></figure>

### Flag de root :)

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

<figure><img src="/files/6711636bb81e7fdada4dc9fa54e91bad70ccd625" alt="" width="563"><figcaption></figcaption></figure>


---

# 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://hacking-notes.jord4n.pro/es/writeups-ctf/hackthebox/linux-easy/greenhorn-hackthebox-writeup.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.
