# Mirai

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F0xAz4z0EtOqPQ3YgWspE%2FMirai.png?alt=media&#x26;token=c269a8bb-6fed-408e-8248-8cad01a35d9d" alt=""><figcaption></figcaption></figure>

## Enumeración

### Enumeración de puertos

Comenzamos la resolución de la máquina Mirai, enumerando que servicios tiene abiertos. Comenzamos con una enumeración rápida de servicios.

```
nmap -p- --open -Pn --min-rate 500 10.10.10.48
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FLDUbhQu3Ew3WpoTaAPU5%2Fimage.png?alt=media&#x26;token=05280a40-c318-4689-b308-25d9cd6c703e" alt=""><figcaption></figcaption></figure>

La máquina Mirai tiene abiertos los puertos 22, 53, 80, 1968, 32400 y 32469. El siguiente paso será la enumeración detallada de estos servicios.

```
nmap -p22,53,80,1968,32400,32469 -sVC -Pn -n 10.10.10.48
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FmCKDdnHNE6B2p7yf7rnj%2Fimage.png?alt=media&#x26;token=62e1f0c8-c014-4105-ae75-732ac36371b1" alt=""><figcaption></figcaption></figure>

VERSIONES

* Puerto 22 -> SSH -> OpenSSH 6.7
* Puerto 53 -> DNS -> dnsmasq 2.76
* Puerto 80 -> HTTP -> lighttpd 1.4.35
* Puerto 1968 -> UPNP -> Platinum UPnP 1.0.5.13
* Puerto 32400 -> HTTP -> Plex Media Server httpd
* Puerto 32469 -> UPNP -> Platinum UPnP 1.0.5.13

### Enumeración Web

En esta máquina se están ejecutando dos servicios Web, en los puertos 80 y 32400. Veamos el contenido de ambos servicios.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FJI4O8aVeVptW4y7p1qN0%2Fimage.png?alt=media&#x26;token=7f0b352b-1b9c-43ba-9ba5-dbdce403ead7" alt=""><figcaption></figcaption></figure>

En el sitio Web al que podemos acceder a través del puerto 32400 encontramos un formulario de inicio de sesión.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FXaEP3xrxqrjUfRbpMisH%2Fimage.png?alt=media&#x26;token=3752ac0a-081c-45f4-84bd-ffc51746b388" alt=""><figcaption></figcaption></figure>

En el puerto 80, no vemos contenido.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FvhE9Aq3yPI43C6yhkvlF%2Fimage.png?alt=media&#x26;token=7b55a9b9-4c9c-4496-8732-a761d334aaf1" alt=""><figcaption></figcaption></figure>

Tampoco en el código fuente. Vamos con la enumeración de directorios.

```
dirsearch -u http://10.10.10.48 -i 200,301
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Faxs7yZr2HwcNCzYuLROW%2Fimage.png?alt=media&#x26;token=343e89fa-7e3a-490a-b785-6b23f3e64d8f" alt=""><figcaption></figcaption></figure>

Encontramos un directorio "admin" en el sitio Web que encontramos en el puerto 80. Veamos su contenido.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FSQeeJn0bgZQzcoyGbFyG%2Fimage.png?alt=media&#x26;token=a9613bf8-f041-482e-af64-616a808c4171" alt=""><figcaption></figcaption></figure>

Probamos las credenciales por defecto para una aplicación "raspberry" pero no son válidas.

## Explotación

Las credenciales por defecto, no nos permiten acceder a la plataforma Web pero vamos a tratar de probarlas para el servicio SSH que tiene la máquina disponible.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fw2FHlyozTksoOtEKC5ey%2Fimage.png?alt=media&#x26;token=62824e63-6722-4ce7-b329-305ce2bc947b" alt=""><figcaption></figcaption></figure>

Obtenemos acceso al sistema con el usuario "pi".

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FpAT96cwd3DNch7fbi5gm%2Fimage.png?alt=media&#x26;token=a5d8a3f7-dd53-4ea6-959a-d6b19806beed" alt=""><figcaption></figcaption></figure>

El siguiente paso será buscar la flag user.txt

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FZ8cnN1OMgBbd5g1ktuSw%2Fimage.png?alt=media&#x26;token=166d0724-bba0-4755-8ade-2b00d8572f64" alt=""><figcaption></figcaption></figure>

## Elevación de privilegios

Comenzamos enumerando vectores de elevación de privilegios con sudo -l y sudo -i.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F0wJfxtQpAlXQUx4e6JAr%2Fimage.png?alt=media&#x26;token=dc613566-6c0c-413b-8d57-e35d16f50cad" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F8Vt61YCrak2d5IsIyj0o%2Fimage.png?alt=media&#x26;token=eeb102e2-ae11-4109-9eb4-04aac1e30732" alt=""><figcaption></figcaption></figure>

Y ya seriamos usuario con privilegios "root" en el sistema. Ahora vamos a buscar la flag root.txt

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fd5oIzZ3biQHvoEAOajey%2Fimage.png?alt=media&#x26;token=8223a148-d2bc-4fd5-bcb2-09f818e84610" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FMH8PcMAEl90VLGLBltn9%2Fimage.png?alt=media&#x26;token=d439e47b-90f9-4704-8b61-6c28b720eeaf" alt=""><figcaption></figcaption></figure>

Pero la máquina nos acaba de trolear. Parece que debemos buscar la flag root real en algún dispositivo conectado al sistema. Vamos a comenzar enumerando los dispositivos enumerados al sistema.

```
df
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FsvLevh7vEiwWxfWOmTHa%2Fimage.png?alt=media&#x26;token=5dccb53c-082d-47e9-b52d-85ac782191ee" alt=""><figcaption></figcaption></figure>

Vemos que existe un dispositivo /media/usbstick. Vamos a ver que contiene este dispositivo encontrado.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fumblz1ZraXa3sytgsGJU%2Fimage.png?alt=media&#x26;token=6d0e3e27-e5e2-4f88-8212-82b48d94bc48" alt=""><figcaption></figcaption></figure>

En el mensaje leemos que los archivos han sido eliminados de la unidad USB, pero ¿y si no se hubiesen borrado totalmente? Vamos a utilizar el comando strings para buscar información oculta dentro de esta unidad.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FeIdcnb8jswaMSpgjhfKH%2Fimage.png?alt=media&#x26;token=bab98bb5-af48-40f0-9267-8daaf3d3db94" alt=""><figcaption></figcaption></figure>

Esta línea con caracteres alfanuméricos podría ser la flag que estamos buscando.

Video resolución Twitch:

{% embed url="<https://www.youtube.com/watch?ab_channel=Securiters&v=057RswFNCL0>" %}
