SOC Prime Bias: Critico

18 Jun 2026 14:32 UTC

L’arsenale di FishMonger aggiornato da ESET Research: SprySOCKS per Windows

Author Photo
SOC Prime Team linkedin icon Segui
L’arsenale di FishMonger aggiornato da ESET Research: SprySOCKS per Windows
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Riassunto

I ricercatori di ESET hanno scoperto due nuove varianti Windows del backdoor SprySOCKS, chiamate WIN_DRV e WIN_PLUS, che sono legate al gruppo di minacce FishMonger. La versione WIN_DRV utilizza un driver kernel per ottenere una furtività avanzata, inclusa la capacità di nascondere connessioni di rete, processi e file. Entrambe le varianti supportano diversi protocolli di comunicazione e forniscono un ampio insieme di comandi per il controllo del sistema e il furto di dati.

Indagine

L’indagine ha fatto leva su campioni di malware scoperti tramite VirusTotal e telemetria ESET, rivelando attività che si estendono dal 2023 al 2024. I ricercatori hanno analizzato l’intera catena di esecuzione, tra cui il DLL sideloading, il caricamento del driver kernel tramite DriverLoader e RawWNPF, e l’iniezione di processi usando tecniche di doppelgänging. Lo studio ha anche scoperto modelli di comunicazione command-and-control e chiavi di crittografia hardcoded condivise tra più componenti.

Mitigazione

Le organizzazioni dovrebbero dare priorità alla patching delle applicazioni esposte a internet per ridurre il rischio di compromissione iniziale tramite vulnerabilità N-day. È essenziale un forte enforcement della firma dei driver e il monitoraggio per l’installazione non autorizzata di driver kernel. I difensori dovrebbero anche monitorare attività sospette di task pianificati, modifiche al registro sotto Image File Execution Options, e registrazioni inusuali di processori di stampa.

Risposta

Se queste minacce vengono rilevate, i sistemi interessati dovrebbero essere isolati immediatamente per fermare ulteriori movimenti laterali o furti di dati. Gli investigatori dovrebbero eseguire una revisione forense dettagliata per determinare il vettore di intrusione originale e l’intera portata della compromissione, con particolare attenzione alla persistenza a livello kernel. I log di rete dovrebbero anche essere controllati per la comunicazione con infrastrutture command-and-control conosciute, mentre le modifiche del sistema come nuovi servizi o chiavi di registro alterate dovrebbero essere sottoposte a verifica.

Flusso di Attacco

## Esecuzione Simulazione

Prerequisito: Il Controllo di Telemetria e Linea Base Pre-volo deve essere superato.

Razionale: Questa sezione dettaglia l’esatta esecuzione della tecnica avversaria (TTP) progettata per attivare la regola di rilevazione. I comandi e la narrazione DEVONO riflettere direttamente i TTP identificati e mirare a generare esattamente la telemetria attesa dalla logica di rilevazione. Esempi astratti o non correlati porteranno a una diagnostica errata.

  • Narrazione dell’Attacco & Comandi: L’avversario ha distribuito con successo il backdoor SprySOCKS su un host Windows compromesso. Per stabilire un canale command-and-control, il malware apre una socket in ascolto sulla porta 53781. Per garantire che la comunicazione sia riconosciuta dal loro server C2 personalizzato, il malware inietta il valore esadecimale magico 0xACACBCBC nei pacchetti di handshake iniziali. Questo imita il comportamento specifico del protocollo del gruppo FishMonger per facilitare una comunicazione affidabile tramite traffico intercettato o deviato.

  • Script di Test di Regressione:

    # Script di Simulazione: Generazione di Artefatti di Rete SprySOCKS
    # Questo script imita il comportamento di rete del backdoor SprySOCKS.
    
    $TargetPort = 53781
    $MagicValue = [byte[]] @(0xAC, 0xAC, 0xBC, 0xBC)
    $Listener = [System.Net.Sockets.TcpListener]$TargetPort
    
    try {
        Write-Host "[+] Avvio del listener sulla porta $TargetPort..." -ForegroundColor Cyan
        $Listener.Start()
        $Client = $Listener.AcceptTcpClient()
        $Stream = $Client.GetStream()
    
        Write-Host "[+] Connessione stabilita. Invio del valore magico $MagicValue..." -ForegroundColor Yellow
        # Iniezione del valore magico nello stream per attivare la logica 'selezione1'
        $Stream.Write($MagicValue, 0, $MagicValue.Length)
    
        Start-Sleep -Seconds 5
    }
    catch {
        Write-Error "[-] Simulazione fallita: $($_.Exception.Message)"
    }
    finally {
        Write-Host "[+] Pulizia delle connessioni..." -ForegroundColor Cyan
        $Stream.Close()
        $Client.Close()
        $Listener.Stop()
    }
  • Comandi di Pulizia:

    # Assicurarsi che non vi siano listener canaglia attivi
    Get-NetTCPConnection -LocalPort 53781 -ErrorAction SilentlyContinue | Remove-NetTCPConnection
    Write-Host "[+] Pulizia completata." -ForegroundColor Green