Loader em Memória Solta ScreenConnect

Author Photo
SOC Prime Team linkedin icon Seguir
Loader em Memória Solta ScreenConnect
shield icon

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.

graph TB classDef action fill:#99ccff classDef builtin fill:#ffcc99 classDef file fill:#ccffcc action_user_exec[“<b>Ação</b> – <b>T1204.002 Execução do utilizador: Ficheiro malicioso</b><br/>A vítima visita site falso da Adobe e descarrega VBScript disfarçado”] class action_user_exec action file_vbscript[“<b>Ficheiro</b> – Acrobat_Reader_V112_6971.vbs<br/><b>Tipo</b>: VBScript”] class file_vbscript file action_vbscript_interpret[“<b>Ação</b> – T1059.005 Interpretador de scripts VB<br/>VBScript executa e inicia PowerShell”] class action_vbscript_interpret action tool_powershell[“<b>Ferramenta</b> – PowerShell<br/><b>Comando</b>: -ExecutionPolicy Bypass”] class tool_powershell builtin action_powershell_exec[“<b>Ação</b> – T1059.001 PowerShell<br/>Cria diretório temporário e compila C# em memória”] class action_powershell_exec action file_staging[“<b>Ficheiro</b> – Google Drive<br/><b>Propósito</b>: Código C#”] class file_staging file action_reflective_loading[“<b>Ação</b> – T1620 Carregamento reflexivo<br/>Carrega assembly .NET em memória”] class action_reflective_loading action action_process_injection[“<b>Ação</b> – T1055.002 Injeção de processo<br/>Insere shellcode em memória”] class action_process_injection action action_masquerade[“<b>Ação</b> – T1564.010 Mascaramento de processo<br/>Modifica PEB”] class action_masquerade action action_appdomain_hijack[“<b>Ação</b> – T1574.014 AppDomain Hijack<br/>Elevação via COM”] class action_appdomain_hijack action action_rat_install[“<b>Ação</b> – T1219 RAT<br/>Instala ScreenConnect via msiexec”] class action_rat_install action tool_screenconnect[“<b>Ferramenta</b> – ScreenConnect Client”] class tool_screenconnect builtin action_user_exec –>|downloads| file_vbscript file_vbscript –>|executes| action_vbscript_interpret action_vbscript_interpret –>|launches| tool_powershell tool_powershell –>|executes| action_powershell_exec action_powershell_exec –>|downloads| file_staging action_powershell_exec –>|compiles| action_reflective_loading action_reflective_loading –>|loads| action_process_injection action_process_injection –>|modifies| action_masquerade action_masquerade –>|enables| action_appdomain_hijack action_appdomain_hijack –>|facilitates| action_rat_install action_rat_install –>|installs| tool_screenconnect

Fluxo de Ataque

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ável msiexec.exe binário para realizar uma instalação silenciosa. Eles também demonstram o alternativo ShellExec.exe proxy, que apenas encaminha argumentos para msiexec. Ambos os comandos integram a string literal “ScreenConnect” na linha de comando, satisfazendo a condição da regra.

    1. Copie o MSI para o host da vítima (simulando T1025).

    2. Execute uma instalação silenciosa via msiexec:

       msiexec.exe /i "C:TempScreenConnect.msi" /quiet /norestart
    3. 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 Imagem is *msiexec.exe or *ShellExec.exe and Linha de Comando conté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."