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.zipNos lo descomprimira y despues montamos la maquina de la siguiente forma.
bash auto_deploy.sh swiss.tarInfo:
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ 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 eliminarlaPor 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