Loader In-Memory Distribuisce ScreenConnect
Detection stack
- AIDR
- Alert
- ETL
- Query
Riepilogo
ThreatLabz ha identificato una catena di attacco multi-stadio che inizia con un falso download di Adobe Acrobat Reader e culmina nella distribuzione dello strumento di accesso remoto legittimo ScreenConnect. L’operazione si basa su un caricatore VBScript pesantemente offuscato che avvia un comando PowerShell per recuperare il codice sorgente C# da Google Drive, compilarlo direttamente in memoria e lanciare un caricatore .NET senza salvare il payload finale su disco. Quel caricatore quindi applica il mascheramento del processo, altera le strutture PEB e sfrutta oggetti COM auto-elevati per ottenere privilegi più alti prima di installare ScreenConnect sull’host vittima.
Investigazione
I ricercatori hanno illustrato come il VBScript assembli i suoi comandi attraverso l’offuscamento di Chr(), mentre PowerShell recupera e compila il payload interamente in memoria per ridurre al minimo gli artefatti su disco. Il caricatore .NET in memoria utilizza quindi la riflessione per eseguire un assembly incorporato. Ulteriori analisi hanno mostrato che il malware chiama NtAllocateVirtualMemory, riscrive i campi PEB per impersonare winhlp32.exe e sfrutta l’auto-elevazione COM per bypassare il Controllo dell’Account Utente e continuare l’esecuzione con privilegi elevati.
Mitigazione
I difensori dovrebbero bloccare l’accesso ai domini di download dannosi e applicare controlli rigidi all’esecuzione di PowerShell e VBScript. Le squadre di sicurezza dovrebbero anche monitorare la creazione sospetta di oggetti COM, la manomissione inaspettata dei PEB e altri segni di abuso dell’esecuzione in memoria. L’accesso agli strumenti legittimi di amministrazione remota come ScreenConnect dovrebbe essere strettamente limitato agli utenti approvati e ai flussi di lavoro fidati per ridurre il rischio di installazione non autorizzata.
Risposta
Se viene rilevata questa attività, isolare immediatamente il sistema interessato, interrompere i processi dannosi e rimuovere eventuali componenti ScreenConnect installati come parte dell’intrusione. Eseguire analisi forense focalizzata su artefatti di memoria volatile per recuperare prove della catena di esecuzione senza file. Reimpostare le credenziali potenzialmente esposte, rivedere i log per l’abuso di auto-elevazione COM e aggiornare le rilevazioni per identificare i modelli di comando-line osservati, il comportamento del caricatore e le convenzioni di denominazione dei file associate.
graph TB classDef action fill:#99ccff classDef builtin fill:#ffcc99 classDef file fill:#ccffcc action_user_exec[“<b>Azione</b> – T1204.002 Esecuzione utente: file malevolo”] class action_user_exec action file_vbscript[“<b>File</b> – Acrobat_Reader_V112_6971.vbs”] class file_vbscript file action_vbscript_interpret[“<b>Azione</b> – T1059.005 VBScript”] class action_vbscript_interpret action tool_powershell[“<b>Strumento</b> – PowerShell”] class tool_powershell builtin action_powershell_exec[“<b>Azione</b> – T1059.001 PowerShell”] class action_powershell_exec action file_staging[“<b>File</b> – Google Drive”] class file_staging file action_reflective_loading[“<b>Azione</b> – T1620 caricamento riflessivo”] class action_reflective_loading action action_process_injection[“<b>Azione</b> – T1055.002 injection processo”] class action_process_injection action action_masquerade[“<b>Azione</b> – T1564.010 mascheramento processo”] class action_masquerade action action_appdomain_hijack[“<b>Azione</b> – T1574.014 AppDomain hijacking”] class action_appdomain_hijack action action_rat_install[“<b>Azione</b> – T1219 installazione RAT”] class action_rat_install action tool_screenconnect[“<b>Strumento</b> – ScreenConnect”] 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
Flusso di Attacco
Rilevazioni
Software Alternativo di Accesso / Gestione Remota (via sistema)
Visualizza
Possibili Indicatori di Offuscamento PowerShell (via powershell)
Visualizza
Chiama Classi/Metodi .NET Sospetti dalla CommandLine di Powershell (via process_creation)
Visualizza
Uso Sospetto di CURL (via cmdline)
Visualizza
Possibile Infiltrazione / Esfiltrazione Dati / C2 tramite Servizi/Strumenti di Terzi (via cmdline)
Visualizza
Software Alternativo di Accesso / Gestione Remota (via audit)
Visualizza
Possibile Tentativo di Installazione di Software RMM Usando MsiInstaller (via application logs)
Visualizza
LOLBAS WScript / CScript (via process_creation)
Visualizza
IOC (HashMd5) per rilevare: Caricatore In-Memory Distribuisce ScreenConnect
Visualizza
Bypass di ExecutionPolicy di PowerShell con Download Malevolo [Windows Powershell]
Visualizza
Installazione di ScreenConnect via msiexec e ShellExec [Windows Process Creation]
Visualizza
Esecuzione della Simulazione
Prerequisito: Il Controllo Pre‑volo di Telemetria e Baseline deve essere superato.
Razionale: Questa sezione dettaglia l’esecuzione precisa della tecnica dell’avversario (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrazione DEVONO riflettere direttamente i TTPs identificati e mirare a generare l’esatta telemetria prevista dalla logica di rilevamento.
-
Narrazione e Comandi di Attacco:
L’avversario ha ottenuto l’MSI di ScreenConnect (spesso consegnato tramite allegato di phishing). Per evitare l’interazione con l’utente, utilizzano il fidatomsiexec.exebinario per eseguire un’installazione silenziosa. Dimostrano anche l’alternativaShellExec.exeproxy, che semplicemente inoltra argomenti amsiexec. Entrambi i comandi incorporano la stringa letterale “ScreenConnect” nella linea di comando, soddisfacendo la condizione della regola.-
Copia l’MSI nell’host vittima (simulando T1025).
-
Esegui un’installazione silenziosa tramite
msiexec:msiexec.exe /i "C:TempScreenConnect.msi" /quiet /norestart -
Esegui la stessa installazione tramite
ShellExec.exe(se presente sull’host):ShellExec.exe /i "C:TempScreenConnect.msi" /quiet /norestart
Queste azioni generano voci Eventi di Windows 4688 dove
Immagineis*msiexec.exeor*ShellExec.exeandLineaComandocontiene “ScreenConnect”, causando l’attivazione della regola Sigma. -
-
Script di Test di Regressione:
#============================================================= # Simulazione Installazione ScreenConnect – attiva regola Sigma #============================================================= $msiPath = "C:TempScreenConnect.msi" # Assicurati che l'MSI esista (segnaposto - in un test reale, copia prima il file) if (-Not (Test-Path $msiPath)) { Write-Error "ScreenConnect MSI non trovato a $msiPath" exit 1 } # 1. Installazione silenziosa usando msiexec Write-Host "[*] Installazione di ScreenConnect via msiexec..." Start-Process -FilePath "$env:SystemRootSystem32msiexec.exe" ` -ArgumentList "/i `"$msiPath`" /quiet /norestart" ` -Wait -NoNewWindow # 2. Installazione silenziosa usando ShellExec (se presente) $shellExec = "$env:ProgramFilesScreenConnectShellExec.exe" if (Test-Path $shellExec) { Write-Host "[*] Installazione di ScreenConnect via ShellExec..." Start-Process -FilePath $shellExec ` -ArgumentList "/i `"$msiPath`" /quiet /norestart" ` -Wait -NoNewWindow } else { Write-Warning "ShellExec.exe non trovato; salta la seconda installazione." } Write-Host "[+] Simulazione completata. Controlla il tuo SIEM per l'Allerta." -
Comandi di Pulizia:
# Disinstalla ScreenConnect (usa il suo GUID di prodotto registrato; adatta se necessario) $productGuid = (Get-ItemProperty "HKLM:SoftwareMicrosoftWindowsCurrentVersionUninstall*" | Where-Object { $_.DisplayName -like "*ScreenConnect*" }).PSChildName if ($productGuid) { Write-Host "[*] Disinstallazione di ScreenConnect (GUID: $productGuid)..." & "$env:SystemRootSystem32msiexec.exe" /x $productGuid /quiet /norestart } else { Write-Warning "GUID di prodotto ScreenConnect non trovato; potrebbe essere necessaria una pulizia manuale." } # Rimuovi il file MSI copiato Remove-Item -Path "C:TempScreenConnect.msi" -Force -ErrorAction SilentlyContinue Write-Host "[+] Pulizia completata."