SpiderPort 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 spiderport.zipNos lo descomprimira y despues montamos la maquina de la siguiente forma.
bash auto_deploy.sh spiderport.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:
Veremos el puerto 80 levantado, que generalmente aloja una pagina web, si entramos dentro veremos que efectivamente hay una pagina web con tecamtica de multiverso de super heroes, por lo que no veremos nada interesante, vamos a realizar un poco de fuzzing a ver que vemos.
Si nos vamos a Contacto veremos un correo de comunicacion, pero vemos interesante que tiene asociado un dominio llamado spiderverse2099.local, por lo que vamos a probar a meter dicho dominio en nuestro archivo hosts para ver si tuviera una pagina aparte en dicho dominio.
Lo guardamos y cargamos la pagina con el dominio de esta forma:
Veremos que nos carga la misma pagina, por lo que da igual el dominio, pero si nos vamos a la seccion de Multiverso veremos un login, probando algun SQLi veremos que nos da el siguiente mensaje:
Info:
Nos esta diciendo que tiene un WAF controlando las entradas, vamos a intentar Bypassear dicho WAF a ver si lo conseguimos.
Bypass del WAF
Probando algunos payloads codificados, veremos que este funciona:
Es una codificacion doble de URL del payload (' OR 1=1-- -), si metemos eso veremos lo siguiente:

Vemos que ha funcionado y obtendremos varias credenciales las cuales vamos a crear 2 diccionarios de contraseñas y usuarios, para probarlos en SSH.
users.txt
pass.txt
Escalate user peter
Hydra
Info:
Veremos que coincide unas credenciales, en este caso del usuario peter, por lo que vamos a conectarnos por SSH.
SSH
Metemos como contraseña sp1der...
Veremos que estaremos dentro.
Escalate user www-data
Si listamos la carpeta /opt veremos lo siguiente:
Vemos que hay un script que contiene lo siguiente:
No veremos gran cosa en el script, pero en la carpeta /opt veremos que podremos modificar el script si fueramos el grupo spiderlab, por lo que vamos a seguir investigando.
Si vemos los puertos que hay a nivel interno, vemos lo siguiente:
Info:
Vemos que hay un puerto 8080 a nivel interno, vamos a pasarnoslo a nuestro host realizando un PortForwarding con chisel.
Echo esto vamos a levantar chisel en modo server desde la maquina victima.
Ahora desde la maquina host vamos a realizar lo mismo de antes, pero ejecutando este otro comando:
Ahora si vamos a nuestro navegador y buscamos lo siguiente...
Info:

Veremos que ha funcionado y nos esta diciendo claramente que podemos ejecutar un comando, vamos a probar con id:
Veremos que funciona y somos el grupo que buscabamos, por lo que vamos a realizar una reverse shell de esta forma:
Ahora nos pondremos a la escucha antes de enviarlo:
Si enviamos el comando de antes y volvemos a donde tenemos la escucha veremos lo siguiente:
Veremos que ha funcionado, por lo que vamos a sanitizar la shell.
Sanitización de shell (TTY)
Escalate Privileges
Si hacemos sudo -l veremos lo siguiente:
Vemos que podemos ejecutar el script spidy.py como el usuario root, por lo que vamos a investigar como escalar.
Si comprobamos las librerias a ver si existen en el sistema, veremos lo siguiente:
Info:
Solamente veremos esto por lo que sys y json no las vemos en el sistema, vamos a probar con una tecnica llamada Python Module Hijacking con la libreria json.py de esta forma:
Ahora vamos a crear el json.py malicioso dentro del /opt ya que podremos crear archivos.
json.py
Ejecutaremos el script de esta forma:
Ahora si listamos la bash veremos lo siguiente:
Info:
Vemos que ha funcionado, por lo que escalaremos a root de esta forma:
Info:
Con esto veremos que ya seremos root, por lo que habremos terminado la maquina.
Last updated