# Pwned1

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

### Enumeración

#### Servicios abiertos

Comenzamos enumerando los servicios abiertos en la máquina objetivo.

```
nmap -p- --open --min-rate 500 -Pn -n -vvv 192.168.51.95
```

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

La máquina Pwned1 tiene tres puertos abiertos: 21, 22 y 80. El siguiente paso será el escaneo en profundidad de los tres servicios descubiertos.

```
nmap -p22,80 -Pn -n -sVC -vvv 192.168.51.95
```

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

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

Servicios abiertos:

* Puerto 21 -> FTP -> vsftpd 3.0.3
* Puerto 22 -> SSH -> OpenSSH 7.9
* Puerto 80 -> HTTP -> Apache httpd 2.4.38

#### Enumeración Web

En el puerto 80 se está ejecutando un servicio Web. Vamos a ver el contenido en el navegador y al mismo tiempo vamos a enumerar la existencia de directorios y archivos interesantes.&#x20;

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

Vemos el mensaje de que han hackeado el sitio Web pero poca más información podemos extraer.&#x20;

```
feroxbuster -u http://192.168.51.95/ -s200,301 -x html,txt,php
```

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

Obtenemos como resultado interesante la existencia de un archivo robots.txt. Veamos su contenido.

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

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

Vemos dos directorios en el archivo robots.txt. Un directorio /nothing que no contiene información alguna y un directorio /hidden\_text donde obtenemos una lista, parece que de directorios. Vamos a descargarla para utilizarla con feroxbuster y volver a fuzzear el sitio Web.

```
feroxbuster -u http://192.168.51.95/ -s200,301 -x html,txt,php -w secret.dic
```

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

Obtenemos un resultado, /pwned.vuln/. Veamoslo.

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

Llegamos a un formulario de inicio de sesión. Probamos varias credenciales por defecto sin obtener resultado alguno. Podemos ver el código fuente por si hubiese información interesante.&#x20;

<figure><img src="/files/9TjEsZpVSvTfIpFsGZKY" alt=""><figcaption><p>ftpuser:<em>B0ss_Pr</em>!<em>ncesS</em></p></figcaption></figure>

Tenemos unas posibles credenciales para un servicio FTP (recordamos que este servicio está disponible). Vamos a tratar de iniciar sesión en el servidor FTP.

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

Login existoso en el servidor FTP. Dentro tenemos un directorio /share que contiene dos archivos, id\_rsa y note.txt. Vamos a descargar estos archivos en nuestra máquina de ataque.&#x20;

<figure><img src="/files/CVZxSXIGuYuLuVZSXV0o" alt=""><figcaption><p>Clave privada</p></figcaption></figure>

<figure><img src="/files/x0sgWHNWQlPq26HGm7b9" alt=""><figcaption><p>Posible nombre de usuario</p></figcaption></figure>

### Explotación

Durante la enumeración descubrimos un directorio abierto que contenia una clave privada y una nota donde se indicaba un posible nombre de usuario. Vamos a tratar de iniciar sesión utilizando el servicio SSH que se está ejecutando en el puerto 22.

```
chmod 600 id_rsa
ssh ariana@192.168.51.95 -i id_rsa
```

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

Una vez logramos vulnerar la máquina víctima, el siguiente paso será buscar la flag local.txt.

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

### Pivotando de usuaria "ariana" a "selena"

Comenzamos realizando las diferentes enumeraciones que nos pueden permitir obtener privilegios "root". Obtenemos un resultado interesante ejecutando `sudo -l`

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

Vamos a ejecutar este archivo que nos indica que podemos ejecutar como sudo sin contraseña.

`sudo -u selena /home/messenger.sh`

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

```
selena
/bin/bash (para generar una shell)
id
python3 -c 'import pty; pty.spawn("/bin/bash")' (tty interactiva)
```

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

### Elevación de privilegios

Volvemos a enumerar posibles maneras de elevar privilegios. Lanzamo el comando "id" y listamos que la usuario "selena" pertenece al grupo "Docker". Posteriormente revisamos las imágenes de docker que tenemos disponibles y ejecutamos el comando que nos permitirá escalar privilegios con un shell como "root". &#x20;

```
id
docker images
```

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

Obtenemos una imagen de docker con un nombre un poco sospechoso, "privesc". Buscamos en [GTFOBins](https://gtfobins.github.io/gtfobins/docker/#shell) las posibles formas de elevar privilegios con las herramientas que tenemos hasta el momento.

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

```
docker run -v /:/mnt --rm -it alpine chroot /mnt sh
```

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

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

Ya tendríamos finalizado el CTF Pwned1.

{% embed url="<https://www.youtube.com/watch?v=Ma6lCRZvGdw>" %}


---

# 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://wiki.securiters.com/securiters-wiki/write-ups/proving-grounds/pwned1.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.
