Write-up máquina Profetas DockerLabs
Por aquí os dejo mi write-up para esta máquina de DockerLabs
Una vez desplegada la máquina con el script automático, comenzamos con la auditoria:
Enumeración
Como siempre, empezamos con un escaneo de puertos con nmap, el comando que uso yo es:
sudo nmap -p- -Pn -n -sCV -min-rate 5000 -T5 -oN targeted -v 172.17.0.2
te explico un poco los parametros de el comando por aqui:
sudo: para ejecutarlo como administrador, en caso de que haga falta.
-p-: para escanear todo el rango de puertos: 1–65535
-Pn: Omitir el ping inicial, en caso de firewall
-n: no hacer resolucion DNS
-sCV: escaneo con scripts basicos de reconocimiento, tanto servicios como las versiones de los servicios
-min-rate 5000: marcar la cantidad de paquetes minima
-T5: basicamente a que velocidad quieres que vaya el escaneo, mayor el numero, mayor el ruido causado
-oN: exportar el escaneo a un archivo en formato normal
targeted: nombre del archivo al que exportar
-v: verbose
: La IP a la que quieres hacer el escaneo

Podemos ver SSH, que en esta máquina es bastante importante, lo veremos más adelante.
Vamos con la web:

En la descripción de la máquina en DockerLabs podremos ver el flujo de vulnerabilidades usado en esta máquina, así que sabemos que habrá una SQLi

El payload usado es usar el usuario listado en la imagen de encima, junto con cualquier password.

¿Okay? Bueno, podremos ver que tenemos un botón que simplemente actualiza unos “servicios” con nombres de profetas. Vamos a ver el código fuente:

Si bajamos abajo del todo del código fuente nos podemos encontrar una cadena de base 64, en la web se ve que está en color negro, acompañado con el fondo, así que no se ve a simple vista, pero lo puedes subrayar, y se empezaría a ver, vamos a decodificar la cadena de base 64

hmmm, interesante, o sea podemos deducir que los profetas listados en la web, usan la misma contraseña que su usuario, o su nombre, sin el prefijo de “srv-”
bueno, si pulsamos cerrar sesión podemos ver que nos lleva directamente a este portal de inicio de sesión:

Podemos ver un usuario en la parte baja del formulario: notadmin, así que probaremos a inventar un email, como ejemplo uso: notadmin@notadmin.com

Pero si probamos con otro usuario podemos ver que el código de error cambia completamente:

Así que vamos con el usuario notadmin@notadmin.com
¿Os acordáis del SQLi? Si sabes lo básico sabrás que puedes usar casi el mismo payload pero en la contraseña, que sería este payload:

(No lo puedo poner por texto, ya que médium se cae)
Así que probamos con el usuario anteriormente encontrado y con el payload anterior nombrado:

¿Facilillo no?
Bueno, vamos al portal2

pues se usa XML, pues vamos a por un XXE no? (XML External Entity)
Le pido a Gemini que me haga un payload para esta vulnerabilidad


¿Os acordáis de la cadena de base 64? Los usuarios usan la misma contraseña que su nombre de usuario.
Podemos ver que tenemos los usuarios Jeremías y ezequiel a nivel de sistema, creamos nuestra wordlists para la fuerza bruta con hydra:
jeremias
ezequiel

Entramos por SSH y tendremos el user flag (Se puede compartir, ya que la plataforma de DockerLabs no tiene ningún sistema definido de flags)

Podemos ver que tenemos un archivo .pyc (Python, Bytecode), El único problema de estos archivos es que están compilados, entonces están ofuscados, pero hay herramientas para desobfuscarlos:
[GitHub - zrax/pycdc: C++ python bytecode disassembler and decompiler
C++ python bytecode disassembler and decompiler. Contribute to zrax/pycdc development by creating an account on GitHub.
github.com](https://github.com/zrax/pycdc?source=post_page-----8ad0a852297c---------------------------------------)
Tendrás que compilarlo con CMake, una vez compilado su uso será así:
./pycdc/pycdas ezequiel.pyc
Nos devolverá un código bastante largo, pero al final podremos ver algo interesante:

parece la contraseña, pero bueno, para que no os calentéis la cabeza, resulta que es juntando las dos cadenas de texto
234r3fsd2-34fsdrr32
El nombre del archivo nos dirá a qué usuario deberíamos probar de iniciar sesión, así que probamos con SSH:

Si vemos el archivo “acces0.txt” podemos ver esto:

¿Pero como lo podemos leer? Ejecutamos sudo -l para verlo:

¿Què és croc?

Desde aquí podrás instalar la herramienta croc:
[GitHub - schollz/croc: Easily and securely send things from one computer to another :package:
Easily and securely send things from one computer to another :crocodile: :package: - GitHub - schollz/croc: Easily and…
github.com](https://github.com/schollz/croc?source=post_page-----8ad0a852297c---------------------------------------)
lo ejecutaremos en la máquina remota:

Así tendremos alojado el archivo en la máquina remota, y desde nuestra máquina local haremos esto:

veremos el archivo:

Así que iniciaremos sesión como root:

Y hasta ahí llegaría la máquina de hoy, espero que os haya encantado, si os ha gustado podéis seguirme tanto por aquí como en mis otras redes sociales para enteraros de todos los recursos que explique :)
👋 Sobre el autor
¡Hola! Soy Ghxstsec, un entusiasta de la ciberseguridad y pentester. Me dedico a documentar mi viaje por el complejo mundo de la seguridad ofensiva.
Actualmente, poseo las certificaciones eJPTv2 y eCPPTv3. Mi objetivo es intentar ayudar a sobrellevar la brecha entre el aprendizaje teórico y la práctica, al tiempo que comparto mis experiencias sinceras con la comunidad. Cuando no estoy en una maratón de exámenes de 24 horas, me puedes encontrar haciendo ejercicios en Try Hack Me o investigando los últimos artículos sobre ciberseguridad.
✉️ Conéctate conmigo:
LinkedIn: [LinkedIn](https://www.linkedin.com/in/joel-morillas-aka-ghxstsec-16a988260/)
GitHub: [GitHub](https://github.com/Ghxstsec)
Twitter/X: [Twitter](https://x.com/Louikizz)
Try Hack Me: [THM](https://tryhackme.com/p/Ghxstsec)
¡Muchas gracias por leer todo el artículo! ¡Te deseo mucha suerte en tus próximos logros! 😊