Page cover

💣Coldfusion - Ataques

Ahora que sabemos que ColdFusion 8 es un objetivo, el siguiente paso es comprobar si existen exploits conocidos. Searchsploites una herramienta de línea de comandos para searching and finding exploitsla base de datos de exploits. Forma parte del proyecto Exploit Database, una organización sin ánimo de lucro que ofrece un repositorio público de exploits y software vulnerable. Searchsploitbusca en la base de datos de exploits y devuelve una lista de exploits y sus detalles relevantes, incluido el nombre del exploit, su descripción y la fecha de publicación.

Searchsploit

afsh4ck@kali$ searchsploit adobe coldfusion

------------------------------------------------------------------------------------------ ---------------------------------
 Exploit Title                                                                            |  Path
------------------------------------------------------------------------------------------ ---------------------------------
Adobe ColdFusion - 'probe.cfm' Cross-Site Scripting                                       | cfm/webapps/36067.txt
Adobe ColdFusion - Directory Traversal                                                    | multiple/remote/14641.py
Adobe ColdFusion - Directory Traversal (Metasploit)                                       | multiple/remote/16985.rb
Adobe ColdFusion 11 - LDAP Java Object Deserialization Remode Code Execution (RCE)        | windows/remote/50781.txt
Adobe Coldfusion 11.0.03.292866 - BlazeDS Java Object Deserialization Remote Code Executi | windows/remote/43993.py
Adobe ColdFusion 2018 - Arbitrary File Upload                                             | multiple/webapps/45979.txt
Adobe ColdFusion 6/7 - User_Agent Error Page Cross-Site Scripting                         | cfm/webapps/29567.txt
Adobe ColdFusion 7 - Multiple Cross-Site Scripting Vulnerabilities                        | cfm/webapps/36172.txt
Adobe ColdFusion 8 - Remote Command Execution (RCE)                                       | cfm/webapps/50057.py
Adobe ColdFusion 9 - Administrative Authentication Bypass                                 | windows/webapps/27755.txt
Adobe ColdFusion 9 - Administrative Authentication Bypass (Metasploit)                    | multiple/remote/30210.rb
Adobe ColdFusion < 11 Update 10 - XML External Entity Injection                           | multiple/webapps/40346.py
Adobe ColdFusion APSB13-03 - Remote Multiple Vulnerabilities (Metasploit)                 | multiple/remote/24946.rb
Adobe ColdFusion Server 8.0.1 - '/administrator/enter.cfm' Query String Cross-Site Script | cfm/webapps/33170.txt
Adobe ColdFusion Server 8.0.1 - '/wizards/common/_authenticatewizarduser.cfm' Query Strin | cfm/webapps/33167.txt
Adobe ColdFusion Server 8.0.1 - '/wizards/common/_logintowizard.cfm' Query String Cross-S | cfm/webapps/33169.txt
Adobe ColdFusion Server 8.0.1 - 'administrator/logviewer/searchlog.cfm?startRow' Cross-Si | cfm/webapps/33168.txt
------------------------------------------------------------------------------------------ ---------------------------------
Shellcodes: No Results

Como sabemos, la versión de ColdFusion que se está ejecutando es ColdFusion 8, y hay dos resultados de interés. Los resultados Adobe ColdFusion - Directory Traversal y Adobe ColdFusion 8 - Remote Command Execution (RCE).


Path Traversal

Directory/Path Traversal es un ataque que permite a un atacante acceder a archivos y directorios fuera del directorio previsto en una aplicación web. El ataque explota la falta de validación de entrada en una aplicación web y puede ejecutarse a través de varios inputs como parámetros de URL, campos de formulario, cookies, y más.

Al manipular los parámetros de entrada, el atacante puede recorrer la estructura de directorios de la aplicación web y access sensitive files, incluidos configuration files, user data, y otros archivos del sistema. El ataque puede ejecutarse manipulando los parámetros de entrada en las etiquetas ColdFusion como CFFile y CFDIRECTORY, que se utilizan para operaciones de archivos y directorios como cargar, descargar y enumerar archivos.

Aquí un fragmento de código de ColdFusion:

En este fragmento de código, la etiqueta cfdirectory de ColdFusion enumera el contenido del directorio uploads y cfloop se utiliza para recorrer los resultados de la consulta y mostrar los nombres de los archivos como enlaces en los que se puede hacer clic en HTML.

Sin embargo, el parámetro directory no se valida correctamente, lo que hace que la aplicación sea vulnerable a un ataque Path Traversal. Un atacante puede aprovechar esta vulnerabilidad manipulando el parámetro directory para acceder a archivos fuera del directorio uploads.

En este ejemplo, la ../secuencia se utiliza para navegar por el árbol de directorios y acceder al archivo /etc/passwd fuera de la ubicación prevista.

CVE-2010-2861 es el exploit Adobe ColdFusion - Directory Traversal descubierto por searchsploit. Es una vulnerabilidad en ColdFusion que permite a los atacantes realizar ataques de cruce de ruta.

  • CFIDE/administrator/settings/mappings.cfm

  • logging/settings.cfm

  • datasources/index.cfm

  • j2eepackaging/editarchive.cfm

  • CFIDE/administrator/enter.cfm

Estos archivos ColdFusion son vulnerables a un ataque de recorrido de directorio en Adobe ColdFusion 9.0.1y earlier versions. Los atacantes remotos pueden aprovechar esta vulnerabilidad para leer archivos arbitrarios mediante la manipulación de locale parameterestos archivos ColdFusion específicos.

Con esta vulnerabilidad, los atacantes pueden acceder a archivos fuera del directorio previsto mediante la inclusión ../de secuencias en el parámetro de archivo. Por ejemplo, considere la siguiente URL:

En este ejemplo, la URL intenta acceder al archivo mappings.cfm en el directorio /CFIDE/administrator/settings/ de la aplicación web con una configuración en regional específica. Sin embargo, se puede ejecutar un ataque de path traversal manipulando el parámetro de configuración regional de la URL, lo que permite a un atacante leer archivos arbitrarios ubicados fuera del directorio deseado, como archivos de configuración o archivos del sistema.

En este ejemplo, las secuencias ../ se han utilizado para reemplazar una locale válida para recorrer la estructura del directorio y acceder al archivo passwd ubicado en el directorio /etc/.

Usando searchsploit, copie el exploit a un directorio de trabajo y luego ejecute el archivo para ver qué argumentos requiere.

Coldfusion - Explotación

El archivo password.properties de ColdFusion es un archivo de configuración que almacena de forma segura contraseñas cifradas para varios servicios y recursos que utiliza el servidor ColdFusion. Contiene una lista de pares clave-valor, donde la clave representa el nombre del recurso y el valor es la contraseña cifrada. Estas contraseñas cifradas se utilizan para servicios como database connections, mail servers, LDAP servers y otros recursos que requieren autenticación. Al almacenar contraseñas cifradas en este archivo, ColdFusion puede recuperarlas y utilizarlas automáticamente para autenticarse con los servicios respectivos sin necesidad de introducir manualmente las contraseñas cada vez. El archivo suele estar en el directorio [cf_root]/lib y se puede gestionar a través del Administrador de ColdFusion.

Al proporcionar los parámetros correctos al script de explotación y especificar la ruta del archivo deseado, el script puede activar un exploit en los puntos finales vulnerables mencionados anteriormente. El script mostrará el resultado del intento de explotación:

Coldfusion - Explotación

Como podemos ver, se ha recuperado el contenido del archivo password.properties, lo que demuestra que este objetivo es vulnerable a CVE-2010-2861.


RCE no autenticado

La ejecución remota de código no autenticado ( RCE) es un tipo de vulnerabilidad de seguridad que permite a un atacante ejecutar código arbitrario en un sistema vulnerable sin autenticación. Este tipo de vulnerabilidad puede tener consecuencias graves, ya que permite a un atacante tomar el control total del sistema y potencialmente robará datos confidenciales o provocará daños al sistema.

La diferencia entre un RCE y un Unauthenticated Remote Code Execution es si un atacante necesita o no proporcionar credenciales de autenticación válidas para explotar la vulnerabilidad. Una vulnerabilidad RCE permite a un atacante ejecutar código arbitrario en un sistema de destino, independientemente de si tiene o no credenciales válidas. Sin embargo, en muchos casos, las vulnerabilidades RCE requieren que el atacante ya tenga acceso a alguna parte del sistema, ya sea a través de una cuenta de usuario u otros medios.

Por el contrario, una vulnerabilidad RCE no autenticada permite a un atacante ejecutar código arbitrario en un sistema de destino sin credenciales de autenticación válidas. Esto hace que este tipo de vulnerabilidad sea particularmente peligrosa, ya que un atacante puede potencialmente tomar el control de un sistema o ejecutar comandos maliciosos sin ninguna barrera de entrada.

En el contexto de las aplicaciones web ColdFusion, un ataque RCE no autenticado ocurre cuando un atacante puede ejecutar código arbitrario en el servidor sin requerir autenticación. Esto puede suceder cuando una aplicación web permite la ejecución de código arbitrario a través de una característica o función que no requiere autenticación, como una consola de depuración o una funcionalidad de carga de archivos. Considere el siguiente código:

En el código anterior, la variable cmd se crea concatenando la variable cgi.query_string con un comando que se va a ejecutar. Luego, este comando se ejecuta utilizando la función cfexecute, que ejecuta el programa de Windows cmd.exe con los argumentos especificados. Este código es vulnerable a un ataque RCE no autenticado porque no valida correctamente la variable cmd antes de ejecutarla ni requiere que el usuario esté autenticado. Un atacante podría simplemente pasar un comando malicioso como variable cgi.query_string y el servidor lo ejecutaría.

Esta URL incluye un punto y coma (%3B) al comienzo de la cadena de consulta, lo que puede permitir la ejecución de varios comandos en el servidor. Esto podría agregar funcionalidad legítima con un comando no deseado. El comando echo incluido imprime un mensaje en la consola y va seguido de un comando de redirección para escribir un archivo en el directorio C: con un mensaje que indica que el servidor ha sido comprometido.

Un ejemplo de un ataque RCE no autenticado de ColdFusion es la vulnerabilidad CVE-2009-2265 que afectó a las versiones 8.0.1 y anteriores de Adobe ColdFusion. Esta vulnerabilidad permitía a usuarios no autenticados cargar archivos y obtener ejecución remota de código en el host de destino. La vulnerabilidad existe en el paquete FCKeditor y se puede acceder a ella en la siguiente ruta:

CVE-2009-2265es la vulnerabilidad identificada por nuestra búsqueda anterior en SearchSploit como Adobe ColdFusion 8 - Remote Command Execution (RCE). Introdúzcala en un directorio de trabajo.

Descarga del exploit

Una revisión cat rápida del código indica que el script necesita cierta información. Establezca la información correcta y ejecute el exploit.

Modificación del exploit

El exploit tardará un poco en ejecutarse, pero eventualmente devolverá un shell remoto funcional.

Explotación

Reverse Shell


Caso práctico

¿Bajo qué usuario se ejecuta ColdFusion?

Escaneo de puertos

Tenemos 3 puertos abiertos, y nos centraremos en el 8500.

Al entrar por el navegador observamos 2 directorios propios de Cold Fusion, lo que nos indica su presencia en el sistema:

Path traversal

Vemos que es vulnerable y nos vuelca una contraseña de administrador. Probamos esa contraseña en el directorio CFDE/administrator pero no conseguimos acceder, por lo que probaremos otra técnica.

RCE no autorizado

Modificamos el script de esta manera:

Y ejecutamos el exploit:

Conseguimos una reverse shell y vemos que somos el usuario arctic/tolis.

Última actualización

¿Te fue útil?