Swiss DockerLabs (Intermediate)

Instalación

Cuando obtenemos el .zip nos lo pasamos al entorno en el que vamos a empezar a hackear la maquina y haremos lo siguiente.

unzip swiss.zip

Nos lo descomprimira y despues montamos la maquina de la siguiente forma.

bash auto_deploy.sh swiss.tar

Info:

                            ##        .         
                      ## ## ##       ==         
                   ## ## ## ##      ===         
               /""""""""""""""""\___/ ===       
          ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~
               \______ o          __/           
                 \    \        __/            
                  \____\______/               
                                          
  ___  ____ ____ _  _ ____ ____ _    ____ ___  ____ 
  |  \ |  | |    |_/  |___ |__/ |    |__| |__] [__  
  |__/ |__| |___ | \_ |___ |  \ |___ |  | |__] ___] 
                                         
                                     

Estamos desplegando la máquina vulnerable, espere un momento.

Máquina desplegada, su dirección IP es --> 172.17.0.2

Presiona Ctrl+C cuando termines con la máquina para eliminarla

Por lo que cuando terminemos de hackearla, le damos a Ctrl+C y nos eliminara la maquina para que no se queden archivos basura.

Escaneo de puertos

Info:

Vemos que hay 2 puertos abiertos, si entramos en la pagina que hay alojada en el puerto 80 veremos una pagina aparentemente normal, por lo que vamos a realizar un poco de fuzzing, pero si lo hacemos con gobuster no vamos a ver muchos resultados ya que algo lo esta bloqueando, pero si investigamos y le damos a Sobre Mi vemos en la URL que nos lleva a un index.php, ya que como tiene una extension .php vamos a probar a realizar un poco de fuzzing con la extension por si tuviera alguna vulnerabilidad de un LFI.

FFUF

Info:

Vemos que encontramos un parametro llamado file el cual es vulnerable a un LFI, por lo que probaremos a realizar lo siguiente:

Info:

Vemos que funciona correctamente, vamos a comprobar si se pudieran utilizar wrappers junto con este LFI para poder ejecutar codigo de forma remota y no solo leer archivos.

Escalate user www-data

Wrappers de LFI

URL = Generated Payload Code GitHub

Si queremos por ejemplo crear un parametro llamado cmd que ejecute cualquier comando que le pongamos, seria de la siguiente forma...

Info:

Copiamos eso y lo metemos despues del igual de la siguiente manera...

Info:

Vemos que funciona, por lo que ahora vamos a intentar crearnos una reverse shell de la siguiente forma:

Primero nos pondremos a la escucha:

Ahora ejecutaremos el siguiente comando para crearnos la shell:

Y si volvemos donde tenemos la escucha veremos lo siguiente:

Ahora tendremos que sanitizar la shell.

Sanitización de shell (TTY)

Escalate user

Si nos vamos a la siguiente ruta:

Vemos un archivo bastante interesante llamado sendinv2 que contiene un texto compilado, pero hay partes medio legibles, pero si utilizamos la herramienta strings podremos ver la siguiente parte bastante interesante:

Info:

Vemos que se esta intentando conectar a la IP denominada 172.17.0.188, por lo que vamos añadirnos esa IP a nuestro host para ver que podemos recibir o que esta enviando.

Ahora haremos lo siguiente, nos pondremos a la escucha a la espera de recibir paquetes de red con el siguiente comando:

Y en la maquina victima ejecutaremos el binario para ver que recibimos:

Ahora si volvemos a donde tenemos la escucha de paquetes veremos todo este trafico:

Vemos esta linea de aqui:

Estamos viendo que se esta intentando conectar por el puerto 7777 mediante UDP, por lo que nosotros vamos a estar escuchando por ese puerto pero por UDP a ver que nos llega:

Ahora si volvemos a ejecutar el binario, en la escucha veremos lo siguiente:

Vemos que nos esta llegando un mensaje en Base32 y despues en Base64, si lo decodificamos veremos lo siguiente:

Vemos que obtenemos unas credenciales, por lo que nos conectaremos por ssh.

SSH

Metemos como contraseña dropchostop453SJF y veremos que estamos dentro.

Escalate Privileges

Si vemos a que grupos pertenecemos, veremos lo siguiente:

Info:

Vemos que pertenecemos a un grupo llamado editor bastante interesante, por lo que vamos a ver si ese grupo esta sujeto algun archivo de la siguiente forma:

Info:

Vemos que esta sujeto a ese archivo y podremos editarlo, si vemos que contiene:

Vemos que no hace gran cosa, pero vamos a ver que procesos se esta ejecutando:

Info:

Vemos que root esta ejecutando /home/cristal/systm.sh y si leemos que hace este script:

Vemos que esta compilando el archivo /home/cristal/systm.c y lo esta llamado /home/cristal/syst, seguidamente lo ejecuta, por lo que vamos a realizar lo siguiente:

Lo guardamos, esperamos unos segundos y si hacemos sudo -l veremos lo siguiente:

Por lo que haremos lo siguiente:

Info:

Y con esto ya seremos root, por lo que habremos terminado la maquina.

Last updated