SOC Prime Bias: Critico

05 Nov 2025 09:07

Curly COMrades: Attivazione anomala di Hyper-V

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
Curly COMrades: Attivazione anomala di Hyper-V
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Attivazione Anomala di Hyper-V

La ricerca scopre un nuovo attore di minacce, Curly COMrades, che sfrutta Windows Hyper‑V per avviare una VM nascosta di Alpine Linux su host Windows 10 compromessi. La VM esegue malware personalizzato (CurlyShell e CurlCat) per fornire capacità di reverse-shell e proxy persistenti, eludendo la tipica rilevazione EDR. Tecniche aggiuntive includono l’iniezione di ticket Kerberos basata su PowerShell, la creazione di account locale tramite Criteri di Gruppo, e l’uso di strumenti proxy open-source.

Cosa Usa Curly COMrades per Nascondere Malware nelle VM Linux?

Curly COMrades nasconde il malware creando piccoli ospiti di Alpine Linux all’interno di Microsoft Hyper-V su host Windows compromessi, eseguendo impianti personalizzati (riportati come CurlyShell e CurlCat) all’interno di quelle VM nascoste mentre utilizza la rete di Hyper-V (Default Switch) in modo che il traffico in uscita sembri provenire dall’host.

Distribuiscono helper PowerShell e curl.exe sull’host, danno nomi ingannevoli alle VM e limitano le interfacce di gestione di Hyper-V per evitare la rilevazione, e sono stati documentati in un’analisi di Bitdefender con indicatori tecnici e guida alla mitigazione.

Mitigazione

Distribuire l’ispezione della rete basata su host (es. Bitdefender NAD) per rilevare traffico anomalo in uscita dallo stack di rete dell’host. Rafforzare Windows disabilitando o controllando strettamente l’attivazione delle funzionalità di Hyper‑V e limitando l’uso dei cmdlet DISM e PowerShell che importano/avviano le VM. Applicare Proactive Hardening e Attack Surface Reduction (PHASR) per bloccare l’uso non autorizzato di binari nativi (curl, rar, Import‑VM, Start‑VM). Monitorare la creazione di nuove VM Hyper‑V, file VHDX/VMCX insoliti in ProgramData e modifiche al crontab su VM Linux. Rilevare l’accesso a LSASS e l’iniezione di ticket Kerberos utilizzando gli allarmi di accesso alle credenziali EDR/XDR. Imporre il minimo privilegio per gli script di Criteri di Gruppo e audit della creazione di account locale. Utilizzare la rilevazione basata su firme e comportamentale per gli impianti personalizzati CurlyShell/CurlCat e strumenti proxy noti.

Risposta

Isolare gli host interessati, disabilitare Hyper‑V e rimuovere i file delle VM nascoste e le immagini VHDX/VMCX associate. Eseguire una scansione completa del file‑system e del registro per i script PowerShell (kb_upd.ps1, screensaver.ps1, locals.ps1) ed eliminarli. Resettare o rimuovere eventuali account locali non autorizzati e ruotare le password. Bloccare le connessioni in uscita agli IP di C2 identificati (es. 45.43.91.10, 88.198.91.116) e aggiornare le regole del firewall. Distribuire regole di rilevamento per le firme specifiche DLL/ELF di CurlyShell e CurlCat, e per gli strumenti proxy osservati. Condurre una miniserie di minacce utilizzando IOC dal repository pubblico su GitHub. Collaborare con i CERT per la condivisione delle informazioni e monitorare ulteriori attività. Applicare patch e aggiornamenti per mitigare eventuali CVE sfruttati (se ne sono stati identificati).

mermaid graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff %% Nodes – Actions action_initial_setup[“<b>Azione</b> – Configurazione Iniziale<br /><b>Tecniche</b>: T1564.006 Nascondere Artefatti: Eseguire Istanza Virtuale, T1497 Evasione Virtualizzazione/Sandbox, T1059.012 CLI Hypervisor<br />Abilita Hyper‑V tramite DISM e disabilita i client di gestione”] class action_initial_setup action action_vm_deployment[“<b>Azione</b> – Distribuzione VM<br /><b>Tecniche</b>: T1059.012 CLI Hypervisor<br />Scarica VHDX Alpine Linux con curl, estrai con WinRAR, importa e avvia VM tramite PowerShell”] class action_vm_deployment action action_vm_persistence[“<b>Azione</b> – Persistenza in VM<br /><b>Tecniche</b>: T1037.004 Script RC, T1543 Creare/Modificare Processo di Sistema<br />Il job cron avvia /bin/alpine_init ogni 4 ore per avviare CurlyShell”] class action_vm_persistence action action_c2_communication[“<b>Azione</b> – Comunicazione C2<br /><b>Tecniche</b>: T1071.001 Protocolli Web, T1102.002 Servizio Web Bidirezionale<br />CurlyShell contatta il punto finale HTTPS usando libcurl (GET/POST)”] class action_c2_communication action action_proxy_tunneling[“<b>Azione</b> – Proxy & Tunneling<br /><b>Tecniche</b>: T1090.001 Proxy Interno, T1090.003 Proxy Multi-hop<br />Proxy inverso SSH configurato tramite ProxyCommand, inoltra traffico attraverso proxy locale SOCKS”] class action_proxy_tunneling action action_credential_abuse[“<b>Azione</b> – Abuso delle Credenziali<br /><b>Tecniche</b>: T1550.003 Pass the Ticket, T1059.001 PowerShell<br />Script PowerShell kb_upd.ps1 inietta ticket Kerberos falsificati in LSASS”] class action_credential_abuse action action_lateral_movement[“<b>Azione</b> – Movimento Laterale<br /><b>Tecniche</b>: T1021.002 Condivisioni SMB/Windows Admin, T1135 Scoperta Condivisione di Rete<br />Utilizza ticket iniettati con net use e comandi SMB per enumerare condivisioni ed eseguire comandi remoti”] class action_lateral_movement action action_persistence_accounts[“<b>Azione</b> – Persistenza tramite Account Locali<br /><b>Tecniche</b>: T1136.001 Creare Account Locale, T1037.003 Script di Accesso alla Rete<br />Script di gruppo- policy creano o resettano account locali (es. camera) per accesso continuo”] class action_persistence_accounts action action_defense_evasion[“<b>Azione</b> – Evasione Difensiva<br /><b>Tecniche</b>: T1059.003 Shell dei Comandi di Windows, T1202 Esecuzione Comandi Indiretta, T1001.003 Impersonazione Protocollo, T1599 Collegamento ai Confini di Rete<br />Esegui tutto il codice dannoso all’interno di VM nascosta, usa codifica Base64 personalizzata per ridurre le tracce forensi”] class action_defense_evasion action %% Nodes – Tools / Processes / Malware tool_dism[“<b>Strumento</b> – DISM<br /><b>Descrizione</b>: Distribuisce funzionalità di Windows come Hyper‑V”] class tool_dism tool tool_powershell[“<b>Strumento</b> – PowerShell<br /><b>Descrizione</b>: Ambiente di scripting utilizzato per importare VM, iniezione di ticket e altre automazioni”] class tool_powershell tool process_curl[“<b>Processo</b> – curl<br /><b>Descrizione</b>: Scarica VHDX Alpine ed effettua richieste HTTPS C2”] class process_curl process process_winrar[“<b>Processo</b> – WinRAR<br /><b>Descrizione</b>: Estrae l’archivio VHDX scaricato”] class process_winrar process malware_curlyshell[“<b>Malware</b> – CurlyShell<br /><b>Descrizione</b>: Backdoor personalizzata che funziona all’interno di VM nascosta Alpine”] class malware_curlyshell malware malware_ssh_reverse[“<b>Malware</b> – Proxy Inverso SSH<br /><b>Descrizione</b>: Configurato tramite ~/.ssh/config per incanalare il traffico tramite SOCKS”] class malware_ssh_reverse malware script_kb_upd[“<b>Malware</b> – kb_upd.ps1<br /><b>Descrizione</b>: Script PowerShell che falsifica ticket Kerberos e li inietta in LSASS”] class script_kb_upd malware %% Connections – Flow action_initial_setup u002du002d>|usa| tool_dism action_initial_setup u002du002d>|usa| tool_powershell action_vm_deployment u002du002d>|scarica con| process_curl action_vm_deployment u002du002d>|estrae con| process_winrar action_vm_deployment u002du002d>|importa/avvia via| tool_powershell action_vm_persistence u002du002d>|crea cron job in| malware_curlyshell action_c2_communication u002du002d>|comunica via| process_curl action_c2_communication u002du002d>|backdoor| malware_curlyshell action_proxy_tunneling u002du002d>|stabilisce| malware_ssh_reverse action_credential_abuse u002du002d>|esegue| script_kb_upd action_credential_abuse u002du002d>|usa| tool_powershell action_lateral_movement u002du002d>|sfrutta ticket da| script_kb_upd action_lateral_movement u002du002d>|usa comandi SMB| tool_powershell action_persistence_accounts u002du002d>|crea account tramite| tool_powershell action_defense_evasion u002du002d>|esegue binari dentro| action_vm_deployment action_defense_evasion u002du002d>|offusca dati con| process_curl %% End of diagram

Catena d’Attacco delle Macchine Virtuali Nascoste di Hyper-V

Istruzioni di Simulazione

Esecuzione della Simulazione

Prerequisito: Il Controllo Pre-volo di Telemetria & Baseline deve essere passato.

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

  • Narrazione di Attacco & Comandi:
    L’attaccante ha già compromesso un account utente a basso privilegio ed è salito a un account di servizio che possiede i diritti di Amministratore di Hyper‑V. Per mantenere una persistenza furtiva, creano un’immagine VM nascosta memorizzata nella directory di cache AppV (c:programdatamicrosoftAppVappVirtual Machines1DBCC80B-5803-4AF1-8772-712C688F408A.vmcx). Usando PowerShell, importano questa VM silenziosamente e la avviano con il nome WSL, mascherandosi come un’istanza legittima del Sottosistema Windows per Linux. Questa esatta riga di comando corrisponde alle stringhe hard-codate della regola Sigma, garantendo che l’allerta si attivi.

  • Script di Test di Regressione:

    # -------------------------------------------------
    # Simulazione della persistenza Hyper‑V di Curly COMrades
    # -------------------------------------------------
    # Variabili (rispecchiando esattamente le stringhe nella regola)
    $vmPath = 'c:programdatamicrosoftAppVappVirtual Machines1DBCC80B-5803-4AF1-8772-712C688F408A.vmcx'
    $vmName = 'WSL'