Loader In-Memory Distribuisce ScreenConnect

Author Photo
SOC Prime Team linkedin icon Segui
Loader In-Memory Distribuisce ScreenConnect
shield icon

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

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 fidato msiexec.exe binario per eseguire un’installazione silenziosa. Dimostrano anche l’alternativa ShellExec.exe proxy, che semplicemente inoltra argomenti a msiexec. Entrambi i comandi incorporano la stringa letterale “ScreenConnect” nella linea di comando, soddisfacendo la condizione della regola.

    1. Copia l’MSI nell’host vittima (simulando T1025).

    2. Esegui un’installazione silenziosa tramite msiexec:

       msiexec.exe /i "C:TempScreenConnect.msi" /quiet /norestart
    3. 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 Immagine is *msiexec.exe or *ShellExec.exe and LineaComando contiene “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."