# TheWall

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FG1E1ReVYpJVv17CpiCSI%2Fimage.png?alt=media&#x26;token=1e82acc5-7e3a-4510-86c4-1797f7e176ff" alt=""><figcaption></figcaption></figure>

## Fase de reconocimiento

Hago un escaneo de nmap para descubrir los puertos abiertos y encuentro:

* 22 (SSH)
* 80 (HTTP)

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FwMbamc1DkZKMVI7DuKv5%2Fimage.png?alt=media&#x26;token=4e717908-b6db-44f1-a51b-79b3e454132a" alt=""><figcaption></figcaption></figure>

Dentro de la página web nos podemos encontrar lo siguiente:

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2F8IdnKGVserm32V7E6WnK%2Fimage.png?alt=media&#x26;token=265fe6c8-c681-43d7-918e-199b552c1587" alt=""><figcaption></figcaption></figure>

Intento hacer fuzzing con wfuzz, pero por alguna razon que desconozco, cuando le proporciono el parametro -s, no muestra las solicitues. Así que tendré que usar gobuster, y le voy a tener que proporcionar un delay, ya que la pagina detecta cuando hacemos muchas solicitudes 404 de seguido, así que le he puesto un delay de 580ms, a esto se le llama Web Application Firewall (WAF):

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FFeAkBGSMVNlumTRMgiXD%2Fimage.png?alt=media&#x26;token=c962103f-1b0a-4a8b-9340-ef98ee64d245" alt=""><figcaption></figcaption></figure>

## Fase de intrusión

Encuentro el archivo "/includes.php" y tiene toda la pinta de que puede ejecutar comandos por su nombre y extensión, así voy a hacer fuzzing con wfuzz para descubrir el parámetro con el que funciona (Pensé que ejecutaría comandos, pero no es así, lo que hace es listar archivos del sistema):

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FCaWBE3sqH3gWV6LimJnB%2Fimage.png?alt=media&#x26;token=c52a02a2-1b10-44bb-9505-a0f3027e2f26" alt=""><figcaption></figcaption></figure>

Con esto quiero decir que entonces tendríamos que hacer un poisoning de los logs para poder ejecutar comandos, y en mi caso para poder obtener una reverseshell así que voy a hacer fuzzing usando de directorio de LFI que se sitúa en la seclist (SecLists-master/Fuzzing/LFI/LFI-gracefulsecurity-linux.txt):

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FLnyzwzJNnFHGwDJjohqb%2Fimage.png?alt=media&#x26;token=6b62385b-8d2e-4e2c-a97a-4aae50131f2a" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FVY3dKJkZDnw484ByIQbi%2Fimage.png?alt=media&#x26;token=008f5f39-e09e-4b23-980a-fc5972e0327d" alt=""><figcaption><p>El que más me ha llamado la atención</p></figcaption></figure>

Le voy a hacer un curl para que podáis observar con más claridad de que realmente lo que estas haciendo es enviar un header con user-agent, y dentro del user-agent introduces los comandos, y estos comandos se pueden ver reflejados en los logs:

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FlyvdHtxqDRxUXvVvRwoU%2Fimage.png?alt=media&#x26;token=9dd7586e-78bd-4e96-b1c7-9951cb9f5f1b" alt=""><figcaption></figcaption></figure>

Este paso lo intente hacer mediante curl, pero se me hizo imposible, así que utilice burpsuite. Ahora lo que vamos a hacer es mandar una solicitud para poder posteriormente ejecutar comandos de manera más sencilla, es una pequeña línea que va a autorizar ejecutar comandos a cualquier solicitud GET que use el parámetro "XD":

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FXQEirXMnD2B4NF4XbBIP%2Fimage.png?alt=media&#x26;token=f7b6ff4c-8f76-430a-91f0-b1dc4741be77" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FdRbKcaug6sw82UozotPC%2Fimage.png?alt=media&#x26;token=9466a641-18d4-4895-88af-6956aada7f28" alt=""><figcaption></figcaption></figure>

Tras lanzar el ultimo paquete, conseguimos acceso remoto, como siempre lo primero que hacemos es la [depuracion-de-tty](https://burple.gitbook.io/burple/cheats/depuracion-de-tty "mention")

## Escalada de privilegios

En cuanto a la escalada de privilegios, primero nos tendremos que venir a "/home" para ver que usuarios hay en el sistema, dentro de john podemos encontrar que tiene ".ssh" en su interior, y si hacemos un "sudo -l", podemos ver que john tiene permisos de ejecutar exiftool. Así que la idea que se me viene a la cabeza seria crearme un id\_rsa y con exiftool escribir dentro de "/.ssh/authorized\_keys" la key que he me he creado, para así poder iniciar sesión con dicha key. En GTFOBins podemos ver en detalle como se explota el exiftool:

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FL8GeLhtgerJvHzAKPiRN%2Fimage.png?alt=media&#x26;token=e6cfcd48-802e-4cb0-bd74-38d316cc74fd" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FW9HAgEYk2gw3fZoWYQ43%2Fimage.png?alt=media&#x26;token=351b27dd-57f0-4961-bcac-dfdb5be5a98f" alt=""><figcaption></figcaption></figure>

Nos creamos nuestras keys:

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2F2EvglNqFgw8AjsDzPjf9%2Fimage.png?alt=media&#x26;token=72db74f5-471a-4df4-969d-4cf6d013039c" alt=""><figcaption></figcaption></figure>

Os copias vuestra id\_rsa.pub (el .pub indica que es la key publica) y la copias dentro de "/tmp" como "authorized\_keys", luego introducis el siguiente comando y os deberia dejar de entrar sin problemas:

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FKgGJfa7GuOGEiwklvcG7%2Fimage.png?alt=media&#x26;token=60a991a6-9aa6-4e2e-8291-47f452b27d92" alt=""><figcaption></figcaption></figure>

Iniciamos sesión por ssh:

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2F08QurCYQkNGacIEhVUnF%2Fimage.png?alt=media&#x26;token=6e176db8-39c9-4d1b-8474-c24052a64ac9" alt=""><figcaption></figcaption></figure>

Nos pasamos por scp linpeas ya que no hay wget ni curl instalado:

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FeNdpe9E8B555cAI3GzW6%2Fimage.png?alt=media&#x26;token=82f010c8-5a3e-4dcf-bd47-cf3af2400a9b" alt=""><figcaption></figcaption></figure>

Lo más relevante que he encontrado con el linpeas ha sido "tar" con capabilities y unas keys de ssh de root:

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2Fm5NP9fFCjmOuYBZd0k4m%2Fimage.png?alt=media&#x26;token=949b946a-f0e8-4550-a4bb-f680dedb72a1" alt=""><figcaption><p>Capability</p></figcaption></figure>

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FvFMwYLBz6Nr6z37Uivxu%2Fimage.png?alt=media&#x26;token=11fde523-d8b3-470e-833a-c28bd4fa24e0" alt=""><figcaption></figcaption></figure>

La capability que hemos he encontrado es capaz de leer o ejecutar archivos/directorios:

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2F80TfxFrSrErJwrfJAaMz%2Fimage.png?alt=media&#x26;token=657ebf5f-aafa-4785-bcd5-60892850d6da" alt=""><figcaption></figcaption></figure>

Así pues, vamos a obtener la "id\_rsa" privada de root con la capability:

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FkRKlpb4Jncjt84XJCB3S%2Fimage.png?alt=media&#x26;token=53e73db5-6e0f-4995-8079-1c79559a22e4" alt=""><figcaption></figcaption></figure>

Probe con la key de "/etc/ssh" pero no funciono, y me di cuenta que en el directorio "/" existe una "id\_rsa", así que pruebo con esa y logramos el acesso a root!:

<figure><img src="https://2216970731-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgI96Zsgdt6Oh2PlOLDwP%2Fuploads%2FF1GpavBXvtGkwep7Ns0j%2Fimage.png?alt=media&#x26;token=b403e504-3c88-4d04-9946-fec724784893" alt=""><figcaption></figcaption></figure>

## Conclusión

En esta máquina, logramos la intrusión y escalada de privilegios aprovechando varias debilidades:

1. Utilizamos herramientas como **gobuster** y **wfuzz** para identificar directorios y parámetros útiles en el sistema. La estrategia fue añadir un tiempo de espera para hacer que las solicitudes burlan el sistema de Web Applicaction Firewall (WAF).
2. Conseguimos **Ejecución Remota de Comandos (RCE)** al combinar un ataque de **Local File Inclusion (LFI)** con **Log Poisoning**, utilizando un encabezado `User-Agent` malicioso. La herramienta **Burp Suite** fue esencial.
3. Una vez obtenido acceso como el usuario "john", aprovechamos sus permisos de ejecución sobre **exiftool** para insertar nuestra clave SSH en su archivo `authorized_keys`. Posteriormente, con **linpeas** detectamos un **binario con capabilities (tar)**, que nos permitió acceder al archivo privado de clave SSH de root, consiguiendo así por completo al sistema como root.


---

# Agent Instructions: 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:

```
GET https://burple.gitbook.io/burple/hackmyvm/facil/thewall.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
