Loader em Memória Solta ScreenConnect
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
ThreatLabz identificou uma cadeia de ataque de múltiplos estágios que começa com um download falso do Adobe Acrobat Reader e culmina na implantação da ferramenta legítima de acesso remoto ScreenConnect. A operação se baseia em um carregador VBScript fortemente ofuscado que aciona um comando PowerShell para buscar código fonte em C# do Google Drive, compilá-lo diretamente na memória e lançar um carregador .NET sem gravar a carga final no disco. Esse carregador então aplica mascaramento de processo, altera estruturas PEB e abusa de objetos COM com elevação automática para obter privilégios superiores antes de instalar o ScreenConnect no host da vítima.
Investigação
Pesquisadores descreveram como o VBScript monta seus comandos através da ofuscação Chr(), enquanto o PowerShell recupera e compila a carga útil inteiramente na memória para minimizar artefatos no disco. O carregador .NET na memória então usa reflexão para executar um assembly embutido. Análises adicionais mostraram que o malware chama NtAllocateVirtualMemory, reescreve campos PEB para se passar por winhlp32.exe, e usa elevação automática de COM para contornar o Controle de Conta de Usuário e continuar a execução com privilégios elevados.
Mitigação
Defensores devem bloquear o acesso aos domínios de download maliciosos e aplicar controles rigorosos para a execução de PowerShell e VBScript. As equipes de segurança devem também monitorar a criação suspeita de objetos COM, adulteração inesperada de PEB e outros sinais de abuso de execução na memória. O acesso a ferramentas legítimas de administração remota como ScreenConnect deve ser estritamente limitado a usuários aprovados e fluxos de trabalho confiáveis para reduzir o risco de instalação não autorizada.
Resposta
Se esta atividade for detectada, isole imediatamente o sistema afetado, interrompa os processos maliciosos e remova quaisquer componentes ScreenConnect instalados como parte da intrusão. Realize uma análise forense focada em artefatos de memória volátil para recuperar evidências da cadeia de execução sem arquivo. Redefina credenciais potencialmente expostas, revise logs em busca de abuso de elevação automática de COM e atualize as detecções para identificar os padrões de linha de comando observados, comportamento do carregador e convenções de nomeação de arquivos associadas.
Fluxo de Ataque
Detecções
Software Alternativo de Acesso / Gerenciamento Remoto (via sistema)
Ver
Possíveis Indicadores de Ofuscação do PowerShell (via powershell)
Ver
Chamada de Classes/Métodos .NET Suspeitos a partir do CommandLine do PowerShell (via criação de processo)
Ver
Uso Suspeito de CURL (via cmdline)
Ver
Possível Infiltração / Exfiltração de Dados / C2 via Serviços / Ferramentas de Terceiros (via cmdline)
Ver
Software Alternativo de Acesso / Gerenciamento Remoto (via auditoria)
Ver
Possível Tentativa de Instalação de Software de Gerenciamento Remoto usando MsiInstaller (via logs de aplicação)
Ver
LOLBAS WScript / CScript (via criação de processo)
Ver
IOCs (HashMd5) para detectar: Carregador na Memória Solta ScreenConnect
Ver
Bypass do ExecutionPolicy do PowerShell com Download Malicioso [Windows Powershell]
Ver
Instalação do ScreenConnect via msiexec e ShellExec [Criação de Processo do Windows]
Ver
Execução da Simulação
Pré-requisito: O Check de Pré-vôo da Telemetria & Baseline deve ter sido aprovado.
Justificativa: Esta seção detalha a execução precisa da técnica adversária (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente as TTPs identificadas e ter como objetivo gerar a telemetria exata esperada pela lógica de detecção.
-
Narrativa do Ataque & Comandos:
O adversário obteve o MSI do ScreenConnect (geralmente entregue via anexo de phishing). Para evitar a interação do usuário, eles usam o confiávelmsiexec.exebinário para realizar uma instalação silenciosa. Eles também demonstram o alternativoShellExec.exeproxy, que apenas encaminha argumentos paramsiexec. Ambos os comandos integram a string literal “ScreenConnect” na linha de comando, satisfazendo a condição da regra.-
Copie o MSI para o host da vítima (simulando T1025).
-
Execute uma instalação silenciosa via
msiexec:msiexec.exe /i "C:TempScreenConnect.msi" /quiet /norestart -
Execute a mesma instalação via
ShellExec.exe(se presente no host):ShellExec.exe /i "C:TempScreenConnect.msi" /quiet /norestart
Essas ações geram entradas Windows Event 4688 onde
Imagemis*msiexec.exeor*ShellExec.exeandLinha de Comandocontém “ScreenConnect”, causando o acionamento da regra Sigma. -
-
Script de Teste de Regressão:
#============================================================= # Simulação de Instalação do ScreenConnect – aciona a regra Sigma #============================================================= $msiPath = "C:TempScreenConnect.msi" # Assegure-se de que o MSI exista (espaço reservado – em um teste real, solte o arquivo primeiro) if (-Not (Test-Path $msiPath)) { Write-Error "ScreenConnect MSI não encontrado em $msiPath" exit 1 } # 1. Instalação silenciosa usando msiexec Write-Host "[*] Instalando ScreenConnect via msiexec..." Start-Process -FilePath "$env:SystemRootSystem32msiexec.exe" ` -ArgumentList "/i `"$msiPath`" /quiet /norestart" ` -Wait -NoNewWindow # 2. Instalação silenciosa usando ShellExec (se presente) $shellExec = "$env:ProgramFilesScreenConnectShellExec.exe" if (Test-Path $shellExec) { Write-Host "[*] Instalando ScreenConnect via ShellExec..." Start-Process -FilePath $shellExec ` -ArgumentList "/i `"$msiPath`" /quiet /norestart" ` -Wait -NoNewWindow } else { Write-Warning "ShellExec.exe não encontrado; pulando a segunda instalação." } Write-Host "[+] Simulação completa. Verifique seu SIEM para o Alerta." -
Comandos de Limpeza:
# Desinstalar o ScreenConnect (usa seu GUID de produto registrado; ajuste conforme necessário) $productGuid = (Get-ItemProperty "HKLM:SoftwareMicrosoftWindowsCurrentVersionUninstall*" | Where-Object { $_.DisplayName -like "*ScreenConnect*" }).PSChildName if ($productGuid) { Write-Host "[*] Desinstalando ScreenConnect (GUID: $productGuid)..." & "$env:SystemRootSystem32msiexec.exe" /x $productGuid /quiet /norestart } else { Write-Warning "GUID do produto ScreenConnect não encontrado; a limpeza manual pode ser necessária." } # Remover o arquivo MSI copiado Remove-Item -Path "C:TempScreenConnect.msi" -Force -ErrorAction SilentlyContinue Write-Host "[+] Limpeza concluída."