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.

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