> For the complete documentation index, see [llms.txt](https://shinki-organization.gitbook.io/dw/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://shinki-organization.gitbook.io/dw/write-ups/quickstart/maquinas-faciles/reflection-write-up.md).

# Reflection write-up

## **Verificamos conexión con la máquina víctima**

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

## **Realizamos un escaneo de los puertos abiertos de la máquina víctima**

Utilizamos **nmap** para realizar un escaneo de los puertos abiertos de la máquina víctima con el siguiente comando:

```bash
sudo nmap -p- -sCVS --min-rate=5000 -vvv -O -Pn -n 172.17.0.2
```

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

Esto nos indica que el puerto 22 (SSH) y el puerto 80 (HTTP) están abiertos. Así que ingresamos la IP de la máquina víctima en el navegador y nos encontramos con un laboratorio de XSS.

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

## **Primer laboratorio**

Para este primer laboratorio lo primero que vamos a probar es a poner una palabra, por ejemplo shinki, y vamos a ver como se refleja en el código fuente.

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

Al escribir **shinki**, vemos que aparece dentro de una etiqueta `<dir>`. Ahora vamos a probar si podemos inyectar etiquetas HTML, como por ejemplo un encabezado `<h1>`.

```html
<h1>Hola shinki :)</h1>
```

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

Y vemos como se inyecta la etiqueta correctamente. Así que ahora vamos a escribir lo siguiente en el formulario para que nos salga una alerta cuando la imagen no se pueda mostrar correctamente:

```html
<img src=xxx onerror=alert('Hackeado!')>
```

<figure><img src="/files/10Dzd7BrzXmj9O7IVOHA" alt=""><figcaption></figcaption></figure>

Y vemos que funciona sin problemas.

## **Segundo laboratorio**

En el segundo laboratorio el proceso sería igual que en el anterior ya que si nos fijamos lo que enviamos lo almacena de la misma manera, la única diferencia sería que en este caso la inyecciones de etiquetas que hagamos se guardarán en la página y luego se mostraran a otros usuarios. Pero realmente lo que está pasando es que se guarda en la caché personal, una manera de comprobar esto sería poniendo la misma URL en el navegador en modo incógnito, por tanto esto se consideraría más bien un Self-XSS .

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

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

Un ejemplo donde se podría encontrar la vulnerabilidad de Stored XSS sería en un blog o cualquier red social donde por ejemplo se guarden comentarios.

## **Tercer laboratorio**

En este tercer laboratorio nos encontramos con un formulario con opciones, así que primero vamos a poner las opciones y ver como si se imprime en pantalla.

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

Vemos que se imprime en pantalla y que además los valores aparecen en la URL. Así que vamos a usar **Burpsuite** para encodear lo siguiente (puedes usar cualquier otra opción).

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

Ahora vamos a copiar `%3c%68%31%3e%53%68%69%6e%6b%69%3c%2f%68%31%3e` en una opción de la URL y vamos a ver como se muestra.

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

Y vemos que nos deja inyectar etiquetas html. Así que ahora haremos lo mismo con el siguiente payload:

```html
<img src=xxx onerror=alert("Hackeado!")>
```

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

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

Y ya habríamos acabado con este laboratorio.

## **Cuarto laboratorio**

En este laboratorio lo que hay que hacer es poner el la URL el parámetro `?data` como se nos indica. Así que vamos a probar a poner lo siguiente en la URL:

```url
172.17.0.2/laboratorio4/?data=Hola
```

<figure><img src="/files/8KCtWSkWg10ELXJ5HqGI" alt=""><figcaption></figcaption></figure>

Y vemos que se refleja en la página. Así que ahora vamos a hacer lo mismo pero está vez con la etiqueta :

```url
172.17.0.2/laboratorio4/?data=<img src=xxx onerror=alert("Hackeado!") onmouseover=alert("Hackeado!")>
```

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

Y ya habríamos acabado con todos los laboratorios.

## **Escalada de privilegios**

Una vez que hayamos completado todos los laboratorios, debemos hacer clic en la opción **"Clic aquí cuando hayas completado los laboratorios"**. Esto nos mostrará las credenciales del servicio SSH, cuyo usuario es `balu` y la contraseña `balulero`.

Una vez dentro ejecutamos el comando `find / -perm -4000 2>/dev/null` el cual nos indica que podemos ejecutar el binario `env` como el propietario, así que ejecutamos el siguiente comando para obtener un shell con privilegios elevados.

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

```bash
/usr/bin/env /bin/bash -p
```

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

Y ya habríamos acabado con la máquina.
