SOC Prime Bias: Alto

27 Mar 2026 17:11

InterLock: Analisi completa degli strumenti di un’operazione di ransomware

Author Photo
Ruslan Mikhalov Capo della Ricerca sulle Minacce presso SOC Prime linkedin icon Segui
InterLock: Analisi completa degli strumenti di un’operazione di ransomware
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Riassunto

InterLock è un’operazione ransomware a doppia estorsione attiva da ottobre 2024 che ruba dati, gestisce un sito di leak basato su Tor e cifra i file negli ambienti FreeBSD/ESXi e Windows. La catena di intrusione utilizza installatori MSI ScreenConnect per l’accesso iniziale, un backdoor NodeSnake multilingua per la persistenza, un raccoglitore di credenziali NTLM e un framework crypter personalizzato che confeziona i payload ransomware. Il traffico di comando e controllo si basa sulla comunicazione WebSocket protetta con RC4, supportata da IP statici di fallback e ulteriori endpoint Cloudflare Tunnel. Il ransomware aggiunge l’estensione .interlock, rilascia una nota di riscatto contenente un URL di negoziazione .onion e utilizza chiavi deboli derivate da PRNG che possono consentire il recupero.

Investigazione

Il rapporto analizza 15 campioni, inclusi quattro installatori MSI ScreenConnect, tre impianti NodeSnake (JavaScript, Java e C++ nativo), un NTLM thief DLL e quattro eseguibili ransomware. Tutti gli artefatti condividono tre indirizzi IP C2 codificati in modo fisso e lo stesso ciclo di decrittazione del crypter segnato dal pattern di byte 488b041f483345f04889041e. Nella sua forma nativa, NodeSnake aggiunge tunneling TCP, dirottamento di thread e anti-debugging. La variante ransomware di Windows crea un’attività programmata giornaliera e cancella i registri eventi di Windows tramite wevtapi.dll. L’infrastruttura include anche due domini protetti da Let’s Encrypt e vari sottodomini gratuiti di Cloudflare Tunnel.

Mitigazione

I difensori dovrebbero bloccare gli IP C2 noti e i domini Cloudflare Tunnel al perimetro. Se ConnectWise ScreenConnect non è necessario, dovrebbe essere rimosso o disabilitato. I controlli di sicurezza dovrebbero rilevare il pattern di byte del crypter e il prefisso della stretta di mano WebSocket crittografato RC4 92 01 88 fe. Il monitoraggio dovrebbe anche coprire l’attività programmata chiamata TaskSystem e qualsiasi creazione di file con l’estensione .interlock. I controlli di accesso a privilegio minimo possono ridurre ulteriormente l’esposizione al raccoglimento delle credenziali NTLM e all’abuso di rundll32.

Risposta

Se l’InterLock viene rilevato, isolare l’host interessato, preservare il binario completo per l’analisi forense ed estrarre la chiave pubblica RSA-4096 incorporata insieme alle chiavi crittografate per file. Dove possibile, tentare il recupero delle chiavi usando il debole rand() più clock() PRNG se sono disponibili timestamp affidabili. Rimuovere l’attività di persistenza TaskSystem, eliminare gli artefatti .interlock e ripristinare i dati impattati dai backup. Gli utenti interessati dovrebbero essere avvisati e l’incidente di doppia estorsione dovrebbe essere segnalato alle forze dell’ordine.

"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#cccccc classDef operator fill:#ff9900 %% Initial Access initial_access["<b>Action</b> – <b>T1204.004 User Execution</b>: Malicious MSI installer delivered"] class initial_access action msiexec_tool["<b>Tool</b> – <b>Name</b>: Msiexec<br/><b>Technique</b>: T1218.007 System Binary Proxy Execution"] class msiexec_tool tool screenconnect_client["<b>Malware</b> – <b>Name</b>: ScreenConnect client<br/><b>Purpose</b>: Remote access component"] class screenconnect_client malware nodesnake_backdoor["<b>Malware</b> – <b>Name</b>: NodeSnake backdoor<br/><b>Capabilities</b>: Interactive Windows shell and oneu2011shot commands"] class nodesnake_backdoor malware %% Persistence persistence_task["<b>Action</b> – <b>T1546 Event Triggered Execution</b>: Scheduled task created"] class persistence_task action scheduled_task["<b>Process</b> – <b>Name</b>: TaskSystem<br/><b>Schedule</b>: Daily at 20:00"] class scheduled_task process self_delete["<b>Action</b> – <b>T1070.009 Indicator Removal</b>: Selfu2011deletion after execution"] class self_delete action %% Credential Access credential_access["<b>Action</b> – <b>T1556.008 Modify Authentication Process</b>: NTLM hash harvesting"] class credential_access action ntlmthief_dll["<b>Tool</b> – <b>Name</b>: NtlmThief DLL<br/><b>Function</b>: Harvest NTLM hashes and force NTLMv1"] class ntlmthief_dll tool %% Defense Evasion defense_evasion["<b>Action</b> – <b>T1027 Obfuscated Files or Information</b>: Payloads packed with custom crypter"] class defense_evasion action custom_crypter["<b>Tool</b> – <b>Name</b>: Custom Crypter<br/><b>Techniques</b>: XOR, junk code, compileu2011afteru2011delivery, compression, stripped binaries"] class custom_crypter tool %% Command and Control c2_communication["<b>Action</b> – <b>T1071.001 Application Layer Protocol</b>: WebSocket channel (RC4 encrypted)"] class c2_communication action websocket_impl["<b>Tool</b> – <b>Name</b>: WebSocket client<br/><b>Features</b>: Dynamic URLs via Cloudflare Tunnel"] class websocket_impl tool %% Proxy Services proxy_service["<b>Action</b> – <b>T1090 Proxy</b>: Internal and multiu2011hop proxying"] class proxy_service action cloudflare_tunnel["<b>Tool</b> – <b>Name</b>: Cloudflare Tunnel<br/><b>Purpose</b>: Dynamic resolution of C2 URLs"] class cloudflare_tunnel tool protocol_tunneling["<b>Action</b> – <b>T1572 Protocol Tunneling</b>: TCP tunnel relays"] class protocol_tunneling action %% Privilege Escalation / Defense Evasion priv_esc["<b>Action</b> – <b>T1055.003 Process Injection</b>: Thread Execution Hijacking"] class priv_esc action tls_injection["<b>Action</b> – <b>T1055.005 Process Injection</b>: Thread Local Storage injection"] class tls_injection action process_injection_tool["<b>Tool</b> – <b>Name</b>: Process Injection routine"] class process_injection_tool tool %% Discovery discovery["<b>Action</b> – <b>T1016 System Network Configuration Discovery</b>: Collect system and network info"] class discovery action %% Collection collection["<b>Action</b> – <b>T1560.001 Archive via Utility</b> and <b>T1560.003 Archive via Custom Method</b>: Package exfiltrated data"] class collection action %% Exfiltration exfiltration["<b>Action</b> – <b>T1020 Automated Exfiltration</b> and <b>T1048.002 Exfiltration Over Asymmetric Encrypted Nonu2011C2 Protocol</b>"] class exfiltration action %% Impact impact["<b>Action</b> – <b>T1486 Data Encrypted for Impact</b>: InterLock ransomware encrypts files"] class impact action ransomware["<b>Malware</b> – <b>Name</b>: InterLock ransomware<br/><b>Encryption</b>: AESu2011256u2011CBC and RSAu20114096 OAEP<br/><b>Extension</b>: .interlock"] class ransomware malware ransom_note["<b>Action</b> – <b>T1490 Inhibit System Recovery</b>: Clear event logs and drop ransom note"] class ransom_note action artifact_cleanup["<b>Action</b> – <b>T1070 Indicator Removal</b>: Delete artifacts and files"] class artifact_cleanup action %% Connections initial_access –>|uses| msiexec_tool msiexec_tool –>|installs| screenconnect_client screenconnect_client –>|drops| nodesnake_backdoor nodesnake_backdoor –>|creates| persistence_task persistence_task –>|creates| scheduled_task scheduled_task –>|executes| self_delete nodesnake_backdoor –>|enables| credential_access credential_access –>|uses| ntlmthief_dll nodesnake_backdoor –>|obfuscates| defense_evasion defense_evasion –>|employs| custom_crypter nodesnake_backdoor –>|communicates via| c2_communication c2_communication –>|uses| websocket_impl websocket_impl –>|routes through| cloudflare_tunnel cloudflare_tunnel –>|supports| proxy_service proxy_service –>|includes| protocol_tunneling nodesnake_backdoor –>|performs| priv_esc priv_esc –>|uses| process_injection_tool process_injection_tool –>|also performs| tls_injection nodesnake_backdoor –>|performs| discovery nodesnake_backdoor –>|packages data with| collection collection –>|exfiltrates via| exfiltration exfiltration –>|delivers payload to| impact impact –>|uses| ransomware ransomware –>|leaves| ransom_note ransom_note –>|triggers| artifact_cleanup %% Class assignments class msiexec_tool tool class screenconnect_client malware class nodesnake_backdoor malware class ntlmthief_dll tool class custom_crypter tool class websocket_impl tool class cloudflare_tunnel tool class process_injection_tool tool class ransomware malware "

Flusso di attacco

Rilevamenti

Comunicazione del Dominio Trycloudflare Sospetta (tramite DNS)

Team SOC Prime
27 Mar 2026

Esecuzione Sospetta da Profilo Utente Pubblico (tramite creazione_processi)

Team SOC Prime
27 Mar 2026

Possibile Utilizzo di Schtasks o AT per la Persistenza (tramite cmdline)

Team SOC Prime
27 Mar 2026

Possibile Utilizzo di PING per Esecuzione Ritardata (tramite cmdline)

Team SOC Prime
27 Mar 2026

Comando e Controllo Sospetto tramite Richiesta DNS di Dominio di Livello Superiore Insolito (TLD) (tramite dns)

Team SOC Prime
27 Mar 2026

Possibile Enumerazione Sistema (tramite cmdline)

Team SOC Prime
27 Mar 2026

Possibile Enumerazione / Manipolazione Account o Gruppo (tramite cmdline)

Team SOC Prime
27 Mar 2026

IOC (Email) da rilevare: InterLock: smantellamento completo dell’operazione ransomware

Regole SOC Prime AI
27 Mar 2026

IOC (SourceIP) da rilevare: InterLock: smantellamento completo dell’operazione ransomware

Regole SOC Prime AI
27 Mar 2026

IOC (HashSha256) da rilevare: InterLock: smantellamento completo dell’operazione ransomware

Regole SOC Prime AI
27 Mar 2026

IOC (DestinationIP) da rilevare: InterLock: smantellamento completo dell’operazione ransomware

Regole SOC Prime AI
27 Mar 2026

IOC (HashMd5) da rilevare: InterLock: smantellamento completo dell’operazione ransomware

Regole SOC Prime AI
27 Mar 2026

Rilevamento della Stretta di Mano WebSocket NodeSnake e Pattern URL [Connessione Rete Windows]

Regole SOC Prime AI
27 Mar 2026

Rileva Variante ELF InterLock utilizzando sysconf per il Numero di CPU [Creazione Processo Linux]

Regole SOC Prime AI
27 Mar 2026

Rileva Metodi di Esecuzione dell’Impianto JS NodeSnake e DLL InterLock [Creazione Processo Windows]

Regole SOC Prime AI
27 Mar 2026

Rilevamento del Ransomware InterLock e Staging dell’Output del Comando NodeSnake [Evento File Windows]

Regole SOC Prime AI
27 Mar 2026

Esecuzione Simulata

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

Motivazione: Questa sezione dettaglia l’esecuzione precisa della tecnica dell’avversario (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrativa DEVONO riflettere direttamente i TTP identificati e mirare a generare la telemetria esatta prevista dalla logica di rilevamento.

  • Narrazione dell’Attacco e Comandi:
    L’avversario ha compromesso una workstation a basso privilegio ed esegue un impianto JavaScript NodeSnake che esegue due azioni:

    1. Enumerazione del livello di privilegio – esegue cmd.exe /c net1 session per elencare le sessioni di rete attive, un metodo noto per scoprire se il processo viene eseguito come SYSTEM o come utente regolare.
    2. Esecuzione del payload basato su DLL – rilascia un DLL malevolo (evilpayload.dll) in %TEMP% e lo lancia tramite rundll32.exe %TEMP%evilpayload.dll,run %TEMP%evilpayload.dll. Questo imita la tecnica InterLock di utilizzare rundll32 come caricatore per un payload di seconda fase.

    Entrambi i comandi vengono eseguiti direttamente per produrre le esatte stringhe di linea di comando che la regola Sigma corrisponde.

  • Script di Test di Regressione:

    # -------------------------------------------------
    # Simulazione NodeSnake/InterLock – attiva la regola Sigma
    # -------------------------------------------------
    
    # 1. Crea un DLL malevolo fittizio (il binario non è necessario per il rilevamento)
    $dllPath = "$env:TEMPevilpayload.dll"
    Set-Content -Path $dllPath -Value "MZ" -Encoding ASCII   # Segnaposto intestazione PE minima
    
    # 2. Esegui il comando di enumerazione del privilegio (corrispondenza esatta)
    Write-Host "[*] Esecuzione dell’enumerazione del privilegio (cmd.exe /c net1 session)"
    cmd.exe /c net1 session
    
    # 3. Esegui il caricatore di payload rundll32 (corrispondenza esatta)
    Write-Host "[*] Lancio del DLL malevolo tramite rundll32.exe"
    rundll32.exe "$dllPath,run $dllPath"
    
    # 4. Pausa per consentire l'ingestione SIEM
    Start-Sleep -Seconds 10
  • Comandi di Pulizia:

    # -------------------------------------------------
    # Pulizia per la simulazione
    # -------------------------------------------------
    $dllPath = "$env:TEMPevilpayload.dll"
    
    if (Test-Path $dllPath) {
        Remove-Item -Path $dllPath -Force
        Write-Host "[+] Rimosso $dllPath"
    } else {
        Write-Host "[-] Nessun DLL trovato da rimuovere."
    }
    
    # Opzionalmente cancellare la cronologia di PowerShell per ridurre l’impronta forense
    Clear-History