# BaseME

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

## Fase de reconocimiento

### Nmap

Hacemos un escaneo de nmap que nos releva que los puertos 22 (SSH) y 80 (HTTP) se encuentran abiertos:

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

En la página web encontramos una base64 ([Cyberchef](https://gchq.github.io/CyberChef/)) y una lista de nombres:

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

Lo que entiendo con el mensaje es que hay que pasar a base64 todas las contraseñas incluyendo el usuario lucas y hacer un ataque de fuerza bruta, pero al parecer no van por ahí los tiros:

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

## Fase de intrusión

### Bash

Ahora voy a hacer una lista con todas las palabras de la lista del código fuente y voy a hacer fuzzing con ellas, lo intente pero no era por ahí el camino, así que voy a probar con un diccionario normal. Para ello voy a hacer un pequeño script en bash que automatice el proceso:

```bash
while read line; do echo "$line" | base64 >> archivo_codificado.txt; done < archivo_entrada.txt
```

### Gobuster

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

Los archivos encontrados se llaman sin codificar id\_rsa y robots.txt, su interior conteniene:

<figure><img src="/files/1OcNKC9D26tieXqR6LqW" alt=""><figcaption></figcaption></figure>

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

No encuentro nada...

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

yyyyyyy bingo!

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

Intento iniciar sesión por el puerto SSH y el usuario lucas con la private key pero nos pide la key del id\_rsa, vamos a tratar de conseguir la contraseña usando ssh2john y john. Primero intente con el rockyou pero tardaba lo suyo, y recordé aquella wordlist de base64 que hice previamente basándome en el comentario de HTML de la web, así que la uso y rápidamente da con la contraseña valida!

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

## Escalada de privilegios

Una vez dentro del sistema, reviso los permisos SUID y vemos que podemos ejecutar como cualquier usuario /usr/bin/base64, parece que el tipo que hizo esta máquina tiene un serio problema con el base64 jajajajjaj...

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

En fin, nos vamos a GTFOBins y vemos que podemos leer archivos, así que vamos a intentar listar la id\_rsa de root:

<figure><img src="/files/0CJFzOhInUTxkLFk6Aoi" alt=""><figcaption></figcaption></figure>

Iniciamos sesión con la id\_rsa obtenida y somos root!

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

## Conclusión

Esta máquina ha sido más tipo puzle que una situación realista, pero ha sido divertida y hemos refrescado conceptos como de bash.


---

# 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/baseme.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.
