# ConsoleLog

### 🔍 **RECONOCIMIENTO**

En primer lugar, tras conectarnos a la máquina, utilizamos el comando:

```bash
ping -c 1 172.17.0.2
```

para verificar la conectividad de red.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FLjuBWqmLSOXoVQCCxtbc%2Fimage.png?alt=media&#x26;token=b7c5d402-6af8-4e4a-8a3b-32956670362a" alt=""><figcaption></figcaption></figure>

A continuación, se realiza el comando:

```bash
nmap -p- --open -sT --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG allPorts
```

para realizar un escaneo de puertos y servicios detallado en la dirección IP.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FkdRdgtN70GAQ6aGAGBeB%2Fimage.png?alt=media&#x26;token=ab07fb93-379d-46bf-b9d1-6dd02f687f5a" alt=""><figcaption></figcaption></figure>

Como podemos observar durante el escaneo, el puerto **80** perteneciente al servicio **HTTP**, el puerto **3000** perteneciente al servicio **PPP** y el puerto **5000** perteneciente al servicio **UPnP** están abiertos, por lo que se procederá a indagar más.

### 🔎 **EXPLORACIÓN**

Se utiliza el comando:

```bash
sudo nmap -sCV -p80,3000,5000 -v 172.17.0.2
```

para obtener más información sobre esos puertos específicamente.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FlysYcZYzBQmJr3ouMd4r%2Fimage.png?alt=media&#x26;token=59cb82ef-e0c1-4500-9473-d2153809a359" alt=""><figcaption></figcaption></figure>

Seguimos indagando más sobre los puertos y ahora exploramos el servicio **HTTP**. Se ingresó la dirección IP en el navegador, lo que llevó a que la página web aparezca bienvenida.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F8HPKkEvUPRz5mRXXVWLB%2Fimage.png?alt=media&#x26;token=255ce866-1024-4074-8787-b719ba9d8a76" alt=""><figcaption></figcaption></figure>

De primeras, no se nos muestra nada, por lo que revisamos el código fuente por si hay alguna información oculta relevante.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FJ2PnU56mR6bzZyxjWqLA%2Fimage.png?alt=media&#x26;token=e6b336bd-6091-4169-b221-729c076d9b95" alt=""><figcaption></figcaption></figure>

Después de revisar el código, notamos que se hace referencia a un archivo llamado `authentication.js`. Al examinar este archivo, encontramos el siguiente contenido:

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FBy4MIJ3r5381Fne8VS37%2Fimage.png?alt=media&#x26;token=34a0e601-a8cf-4766-9d2f-1978e6673487" alt=""><figcaption></figcaption></figure>

Ahora buscaremos directorios con la herramienta **Gobuster** a través de:&#x20;

```bash
gobuster dir -u http://172.17.0.2/ -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FAkkMlMZRPg6X8MkGOtcD%2Fimage.png?alt=media&#x26;token=b0a37365-4f94-4b3d-b683-78ec934e275c" alt=""><figcaption></figcaption></figure>

Al acceder al directorio `/backend`, encontramos que hay varios archivos disponibles.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2Fsb2h1qZELNUQDMyhoQ6S%2Fimage.png?alt=media&#x26;token=0f706ee5-a612-4567-b314-ad6ea250d08c" alt=""><figcaption></figcaption></figure>

Dentro de los archivos, hay uno llamado `server.js`. Este archivo parece configurar un servidor que escucha peticiones POST en la ruta `/recurso/` y devuelve una contraseña si el token proporcionado es válido.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FlKj21kg4MJbWhQSc4lmU%2Fimage.png?alt=media&#x26;token=7dbbf5ba-7b67-44c5-b317-c5f6e08c11b4" alt=""><figcaption></figcaption></figure>

Podemos verificar esto utilizando `curl`. Al enviar una petición POST a esta ruta, podemos ver la contraseña si el token proporcionado es correcto; de lo contrario, se recibirá un mensaje diferente. Usamos el siguiente comando para hacer la prueba:

```bash
curl -X POST http://172.17.0.2:3000/recurso/ -H "Content-Type: application/json" -d '{"token": "tokentraviesito"}'
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FlaIlEc7O4m4aoQn5Tzp8%2Fimage.png?alt=media&#x26;token=a0be5301-1f63-4940-ad62-5b1dedb0db6d" alt=""><figcaption></figcaption></figure>

### 🚀 **EXPLOTACIÓN**

Con la información obtenida anteriormente, realizamos el comando:

```bash
hydra -L /opt/SecLists/Usernames/xato-net-10-million-usernames.txt -p lapassworddebackupmaschingonadetodas ssh://172.17.0.2:5000 -t 64
```

que utiliza la herramienta **Hydra** para realizar un ataque de fuerza bruta contra el servicio **SSH** de una máquina con la IP **172.17.0.2** para obtener el usuario con esa contraseña.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FmzyRbndmjLwBwJRqR0AP%2Fimage.png?alt=media&#x26;token=aa18964f-8b92-40e9-9b84-37b1b4f0202e" alt=""><figcaption></figcaption></figure>

Al realizar el ataque de fuerza bruta, hemos descubierto el **usuario** de esa contraseña. Sabiendo esto, nos conectamos a través de **SSH** al usuario con el comando:

```bash
ssh lovely@172.17.0.2 -p 5000
```

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FlJo9daIRLddy8DWQuKbH%2Fimage.png?alt=media&#x26;token=b7d8ead7-0f5c-4756-8efc-161a4f4d0efa" alt=""><figcaption></figcaption></figure>

### 🔐 **PRIVILEGIOS**

Al estar dentro y ejecutar:

```bash
whoami
```

aún no somos **root**, por lo que hacemos:

```bash
sudo -l
```

para ver si hay algo para explotar.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FTN7PSDihwD2j3jvju2Zv%2Fimage.png?alt=media&#x26;token=5cf87165-2058-4874-bfaf-15879f35bb5e" alt=""><figcaption></figcaption></figure>

Nos dirigimos al directorio raíz y buscamos archivos con permisos SUID. Encontramos que el archivo `nano` tiene estos permisos.

```bash
cd /
find \-perm -4000 -user root 2>/dev/null
```

Revisando podemos observar que podemos abusar de este permiso [SUID](https://gtfobins.github.io/gtfobins/nano/#limited-suid) pero es limitado.

Al revisar los permisos **SUID**, notamos que aunque podemos explotar el permiso de `nano`, está limitado en su funcionalidad. Por lo tanto, investigamos si solo hay el usuario `lovely` o si existen otros usuarios. Al examinar el archivo `/etc/passwd`, descubrimos que hay un usuario adicional.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2F1DwYuEqrATffPiARf59X%2Fimage.png?alt=media&#x26;token=0ffc268d-802f-45c0-9a05-2bc3fe6236c1" alt=""><figcaption></figcaption></figure>

Antes de seguir explorando otras formas de escalar privilegios, recordemos que tenemos la capacidad de ejecutar comandos como `root` usando `nano`. Esto nos permite editar el archivo `/etc/passwd` y eliminar la `x` para permitir el acceso sin necesidad de credenciales.

<figure><img src="https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FV2pScvHPwAmWKc2HmI2Y%2Fimage.png?alt=media&#x26;token=cdb3ea00-68d1-45a7-aaf0-045dd456f6be" alt=""><figcaption></figcaption></figure>

Después de realizar esta modificación, podremos acceder como `root` sin necesidad de credenciales. Con esto, hemos completado el acceso a la máquina.

![](https://469389308-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbKXfRjFOYJgGlV1An6Cf%2Fuploads%2FKVQy8BOjhFxYm7cwZhnh%2Fimage.png?alt=media\&token=6857ad0f-ec2c-49af-b433-a5d58f628ddc)<br>
