Un software ampliamente utilizado para respaldos en entornos empresariales. Esta vulnerabilidad permite la ejecución remota de código (RCE) sin autenticación, lo que significa que un atacante puede tomar el control completo de un sistema vulnerable sin necesidad de credenciales.
La falla se debe a dos problemas principales:
- Deserialización insegura: El bug permite que objetos no seguros se ejecuten en el sistema.
- Autorización inapropiada: Se permitía que conexiones anónimas interactuaran con el sistema, lo que amplifica la gravedad del fallo.
El proyecto en GitHub incluye un exploit proof-of-concept (PoC), aunque los creadores han decidido no liberar una cadena completa de explotación debido a las preocupaciones sobre el uso malintencionado, ya que los atacantes, especialmente operadores de ransomware, podrían explotar esta vulnerabilidad para obtener acceso a sistemas de respaldo críticos. Estos sistemas a menudo contienen datos sensibles y controlan operaciones clave, por lo que una explotación exitosa puede permitir ataques de “doble extorsión”, donde los atacantes no solo roban datos, sino que también amenazan con eliminar o corromper las copias de seguridad.
El repositorio contiene archivos como el código de la webshell en C#, que aprovecha la vulnerabilidad para cargar y ejecutar archivos maliciosos en el servidor afectado. También incluye ejemplos de cómo interactuar con las rutas virtuales del sistema para mantener el acceso a largo plazo.
Esta vulnerabilidad fue parcheada por Veeam en diferentes etapas: primero corrigieron el problema de autorización en una versión, y luego el de deserialización en otra. Sin embargo, aún existe la preocupación de que partes de la vulnerabilidad puedan ser explotadas en ciertas configuraciones no actualizadas. Los investigadores recomiendan actualizar el software a la última versión disponible para mitigar cualquier riesgo.
Este tipo de vulnerabilidad ha sido explotada en el pasado por grupos de ransomware, lo que hace que su potencial sea especialmente alarmante para las empresas que dependen de Veeam para la protección de sus datos.
Fuentes: GitHub, The Stack.
Para usar la vulnerabilidad CVE-2024-40711 explotando la ejecución remota de código (RCE) en Veeam Backup & Replication, puedes seguir un proceso técnico que implica trabajar con un exploit en la terminal, usando herramientas y scripts específicos. A continuación, te guiaré paso a paso a través del uso del exploit, cómo implementarlo en la terminal y las medidas a tomar para alcanzar los objetivos de explotación. También hablaré del propósito y los posibles usos del exploit, tanto desde una perspectiva defensiva (ciberseguridad) como ofensiva (demostración de penetración).
1. Descarga y configuración del repositorio
El primer paso es clonar el repositorio de GitHub en el cual se encuentra el exploit para CVE-2024-40711. Para ello, abre tu terminal y ejecuta el siguiente comando:
git clone https://github.com/watchtowrlabs/CVE-2024-40711.git
Este comando descarga los archivos del exploit a tu máquina local. Luego, navega al directorio descargado:
cd CVE-2024-40711
2. Instalar dependencias
Algunos exploits requieren librerías o dependencias adicionales, así que asegúrate de leer el archivo README.md
del proyecto, donde normalmente se indican las instrucciones necesarias. Si el exploit está escrito en Python, puede que necesites instalar las dependencias del archivo requirements.txt
:
pip install -r requirements.txt
Si el exploit está escrito en otro lenguaje, como C# o PowerShell, asegúrate de tener instalado el compilador o intérprete correspondiente. Por ejemplo, para ejecutar scripts en C# necesitarás el SDK de .NET.
3. Entender los parámetros del exploit
Cada exploit tiene opciones que permiten personalizar la explotación del sistema. En el caso del CVE-2024-40711, el objetivo es explotar la vulnerabilidad de deserialización en Veeam Backup & Replication. Es probable que necesites proporcionar la dirección IP del objetivo (la máquina que ejecuta Veeam) y otros detalles.
Generalmente, la sintaxis de ejecución podría parecerse a:
python exploit.py --target <IP_del_objetivo> --port <puerto>
Ejemplo:
python exploit.py --target 192.168.1.100 --port 9392
Aquí, 192.168.1.100
es la dirección IP del servidor Veeam y 9392
es el puerto en el que el servicio está corriendo.
4. Verificar vulnerabilidad
Antes de intentar explotar el servidor, es recomendable verificar si es vulnerable a la falla. Puedes realizar un escaneo básico de puertos y servicios para asegurarte de que el servicio de Veeam está activo en el puerto esperado (normalmente, 9392):
nmap -p 9392 192.168.1.100
Si el puerto está abierto, el siguiente paso es intentar ejecutar el exploit.
5. Ejecución del exploit
Una vez que hayas verificado que el objetivo es vulnerable, puedes proceder con la ejecución del exploit. Si el PoC (Prueba de Concepto) es exitoso, lograrás ejecutar comandos en el servidor objetivo. El siguiente ejemplo muestra cómo podrías ejecutar un comando básico de sistema, como whoami
, en el servidor comprometido:
python exploit.py --target 192.168.1.100 --command "whoami"
Este comando te devolverá el nombre de usuario bajo el cual se están ejecutando los servicios del servidor comprometido.
6. Mantener acceso (Web Shell)
El exploit puede incluir un payload que permita mantener un acceso persistente, como una web shell. Esto permite al atacante ejecutar comandos adicionales en el servidor comprometido a través de una interfaz web. En el caso de este proyecto, hay ejemplos en C# que permiten cargar y ejecutar una web shell dentro del servidor Veeam【7†source】.
Código de ejemplo para cargar una web shell en C#:
string webshellContent = System.Text.Encoding.UTF8.GetString(
System.Convert.FromBase64String("PCVAIExhbmd1YWdlPSJDIyIlPgpUaGlzIGlzIHRoZSBhdHRhY2tlcidzIGZpbGUgPGJyLz4KUnVubmluZyBvbiB0aGUgc2VydmVyIGlmIGA8JT0xMzM4LTElPmAgaXMgMTMzNy4="));
Este código convierte una cadena Base64 en un script que puede ejecutarse en el servidor para proporcionar acceso remoto.
7. Objetivos del exploit
El propósito de este exploit es permitir la ejecución remota de código en servidores que utilizan versiones vulnerables de Veeam Backup & Replication. Algunos de los objetivos más comunes para este tipo de ataques son:
- Obtención de acceso no autorizado: Esto permite a un atacante controlar el sistema sin necesidad de autenticación.
- Persistencia en el sistema: Mediante la instalación de web shells u otras herramientas maliciosas, los atacantes pueden mantener un acceso persistente a largo plazo.
- Robo de datos: Los servidores de backup contienen grandes cantidades de información crítica y sensible que puede ser exfiltrada.
- Ataques de ransomware: Los atacantes pueden eliminar o corromper las copias de seguridad, lo que aumenta la efectividad de los ataques de ransomware. Esto se conoce como ataques de doble extorsión【10†source】.
- Movimientos laterales: Una vez dentro del sistema, los atacantes pueden desplazarse por la red para comprometer otros servidores o servicios.
8. Prevención y mitigación
Desde una perspectiva de ciberseguridad, las organizaciones que utilicen Veeam Backup & Replication deben seguir las siguientes recomendaciones:
- Actualizar a la última versión: Veeam ha lanzado actualizaciones que corrigen la vulnerabilidad CVE-2024-40711 en diferentes fases. Las versiones vulnerables deben ser actualizadas de inmediato【9†source】.
- Monitoreo de red: Implementar herramientas de monitoreo de red que detecten tráfico inusual o intentos de explotación en los puertos afectados.
- Restricciones de acceso: Limitar el acceso al puerto de administración de Veeam (9392) solo a direcciones IP confiables mediante listas de control de acceso (ACL).
- Segmentación de red: Aislar el sistema de backup de otras partes de la red para evitar que los atacantes puedan moverse lateralmente.
Conclusión
Explotar CVE-2024-40711 requiere una comprensión básica de redes, herramientas de explotación y ciberseguridad. El proceso incluye la descarga y configuración del exploit, la identificación de sistemas vulnerables y el uso del exploit para ejecutar código en el servidor objetivo. Además de los posibles beneficios para los pentesters y auditores de seguridad, es crucial que las organizaciones protejan sus sistemas contra esta vulnerabilidad a través de actualizaciones y buenas prácticas de seguridad.
Este tutorial básico te da una idea de cómo se utiliza el exploit para comprometer un sistema afectado y los pasos que puedes tomar para proteger tus sistemas.