# File

### 🔍 RECONOCIMIENTO

En primer lugar, tras conectarnos a la máquina, utilizamos el comando:

```bash
ping -c 1 172.17.0.2
```

para verificar la conectividad de red.

<figure><img src="/files/4V5ioaMv7PVyzER8h4Gz" alt=""><figcaption></figcaption></figure>

A continuación, realizamos el comando:

```bash
nmap -sVC -p- -n --min-rate 5000 172.17.0.2
```

para realizar un escaneo de puertos y servicios detallado en la dirección IP.

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

Como podemos observar durante el escaneo que el **puerto 21** perteneciente al **servicio FTP** y el **puerto 80** perteneciente al **servicio HTTP** están abiertos por lo que a continuación se indagará más.&#x20;

### 🔎 **EXPLORACIÓN**

Se utiliza el comando:

```bash
sudo nmap -sCV -p21,80 -v 172.17.0.2
```

para obtener más información sobre esos puertos específicamente.

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

Como vemos que tenemos un archivo y que tenemos acceso de manera anónima con FTP lo aprovechamos por si contiene algo relevante.

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

Vemos el contenido y parece ser una cadena correspondiente a un hash por lo que la decodificamos.

```bash
echo "53dd9c6005f3cdfc5a69c5c07388016d" > hash
john --format=raw-md5 hash
```

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

Si ingresamos la IP nos sale la página por defecto de Apache.

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

Ahora buscaremos directorios y archivos con la herramienta **Gobuster** a través de:

```bash
gobuster dir -u http://172.17.0.2/ -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt -x html,txt,php,xml
```

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

### 🚀 **EXPLOTACIÓN**

Hay un archivo y un directorio que nos da pistas que se puede hacer una Reverse Shell. Hay que usar un archivo con extensión `.phar`.

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

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

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

Nos ponemos en escucha.

```bash
nc -nlvp 443
```

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

Hacemos el [tratamiento de la TTY](https://invertebr4do.github.io/tratamiento-de-tty/#) para trabajar más cómodos.

### 🔐 **PRIVILEGIOS**

Al estar dentro y ejecutar:

```bash
whoami
```

aún no somos **root**, por lo que hacemos:

```bash
sudo -l
```

para ver si hay algo para explotar. No tenemos permisos **SUDO**.

Obtenemos la contraseña de fernando con esta herramienta de nuestro Mario. Nos logueamos.

{% @github-files/github-code-block url="<https://github.com/Maalfer/Sudo_BruteForce>" %}

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

Realizamos estaganografía.

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

<figure><img src="/files/8WCrliCfqImffi3Q21Ui" alt=""><figcaption></figcaption></figure>

Al ser un hash lo crackeamos con esta página [CrackStation](https://crackstation.net/).

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

Es la contraseña de mario por lo que nos logueamos. Tiene permisos SUDO con julen [awk](https://gtfobins.github.io/gtfobins/awk/#sudo).

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

Ahora tenemos permisos SUDO con [env ](https://gtfobins.github.io/gtfobins/env/#sudo)con el usario iker.

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

Ahora tenemos permisos SUDO para ejecutar con python un archivo.

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

Lo borramos y creamos con el mismo nombre pero con distinto contenido.

```bash
import os
os.system("/bin/bash")
```

Lo ejecutamos.

```bash
sudo /usr/bin/python3 /home/iker/geo_ip.py
```

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


---

# 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://beafn28.gitbook.io/beafn28/writeups/dockerlabs/file.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.
