> For the complete documentation index, see [llms.txt](https://wiki.securiters.com/securiters-wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.securiters.com/securiters-wiki/write-ups/proving-grounds/pwned1.md).

# Pwned1

Write-up de la máquina Pwned1 de Proving Grounds #writeup #walkthrough

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FZZKEOELg4GYr67JDIW8T%2FSQL%20injection%20vulnerability%20in%20WHERE%20clause%20allowing%20retrieval%20of%20hidden%20data%20(14).png?alt=media&amp;token=2d7f8cc3-3c58-487b-b156-c34b04b1975b" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FIeiig1Yd53nLFBv3p9v5%2Fimage.png?alt=media&amp;token=2d936723-7e32-4c18-953e-8e890119f403" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fvo2UQFBcs48mswGvnHRT%2Fimage.png?alt=media&amp;token=0493fa33-ea56-48db-83e7-d299974440d8" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FggvplXKXv6m5Xi2iaeQV%2Fimage.png?alt=media&amp;token=7e3b33f2-3b59-4f8b-a1f7-bcc9f699d352" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FnrZYiGqtM4i7GmxKf8kq%2Fimage.png?alt=media&amp;token=8de7301e-0376-40a8-95d8-5203c6caa10a" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fwd72dKxEIcqnl5Y0CCyU%2Fimage.png?alt=media&amp;token=240ba932-493a-416b-856a-82d2cfd522e4" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FqfiZdOYESdQa8FaKCTH9%2Fimage.png?alt=media&amp;token=5bf115a8-b407-43db-b77c-3ee0b73e4440" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FuVqW68ogRBWQWuYruYSd%2Fimage.png?alt=media&amp;token=0c3154ad-1500-4b48-9324-60305c34549e" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FEuF4GlKkwtcaZSG1vlug%2Fimage.png?alt=media&amp;token=e01fd3bd-d224-4f49-b137-a7460534d657" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FPGec6EO4f7r5lDUnri1x%2Fimage.png?alt=media&amp;token=95df0ab5-8fb2-4870-a550-bc7012994df7" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FWKfxEBNWkQZVszjGNZgs%2Fimage.png?alt=media&amp;token=50836c40-8fb5-40a2-8dde-a4d33616df5d" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F0osHtAmWMXtSDeGALPyF%2Fimage.png?alt=media&amp;token=a90376c7-f8ff-4c97-95de-256433e4814e" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FJoAinNjq9rT6lkaIHuVm%2Fimage.png?alt=media&amp;token=9dd98258-e92c-4c01-b25e-df24c541ce48" alt=""><figcaption><p>Clave privada</p></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FG0dLFgD6LbSvHGMG5R0Z%2Fimage.png?alt=media&amp;token=57b5595d-f626-4657-8fba-9b729134a9b8" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F7G8svfFlDuib9RHfCtrz%2Fimage.png?alt=media&amp;token=58d8ab02-ea97-41df-9673-f64b32a65481" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FBWXuErmU15791kBN4TkV%2Fimage.png?alt=media&amp;token=ebfb56ea-ea47-4817-abad-f37014bd67f7" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F9Bvky8tzrvTWZsilMGOT%2Fimage.png?alt=media&amp;token=ea94e80b-092b-457b-9ee9-e6fb8ae38e05" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FsvaG93IqkjnF4Ve0ecE9%2Fimage.png?alt=media&amp;token=1beccac2-a4d9-4363-97d1-6eb2f7fcf56f" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FpGdpQekuKxq9SkMTkAkC%2Fimage.png?alt=media&amp;token=58d1a493-08e4-41bb-b040-b0a0a8f2acde" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F2v1HcOGfWDllCIVsyRwM%2Fimage.png?alt=media&amp;token=f35278d6-a68d-49ea-9c38-129f9efbb40d" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F4FLjXKXTuMfD5asXJ5g3%2Fimage.png?alt=media&amp;token=e35e8345-2746-41e0-86c4-d49e519ed43d" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FEpt1JwtQbANzahMGtb3E%2Fimage.png?alt=media&amp;token=cdf1f8a8-16c2-495b-9e6a-c0ad6d2b7ef8" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FlPgLzuhuYAxX0e5oHuUt%2Fimage.png?alt=media&amp;token=91f41685-f756-4b5c-a644-83d9f3a4ceea" alt=""><figcaption></figcaption></figure>

Ya tendríamos finalizado el CTF Pwned1.

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