APT-Q-27 Malware-Kampagne zielt auf Web3-Kundensupport ab
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Ein finanziell motivierter Bedrohungsakteur, der als APT-Q-27 (auch bekannt als GoldenEyeDog) verfolgt wird, führt eine mehrstufige Malware-Kampagne durch, die bei Web3-Kundensupport-Chat-Interaktionen beginnt. Das anfängliche Lockmittel ist eine .pif-Datei, die als Screenshot getarnt ist und einen benutzerdefinierten .NET-Loader bereitstellt. Dieser Loader zieht zusätzliche Stufen von AWS S3, erstellt ein verstecktes Staging-Verzeichnis und nutzt DLL-Sideloading, indem er eine bösartige DLL mit einer legitimen YY-Plattform-Exe-Datei koppelt. Die letzte Stufe installiert eine Backdoor, die über einen nicht standardmäßigen TCP-Port kommuniziert und unauffälligen Fernzugriff über die typischen Webtraffic-Grundlinien hinaus ermöglicht.
Untersuchung
ZeroShadow analysierte mehrere Loader-Varianten, einschließlich Feedback.exe und photo2025060268jpg.exe, und ermittelte eine doppelte Base64-codierte C2-URL, die in der Kette eingebettet war. Reverse Engineering enthüllte die Entschlüsselungslogik des Loaders und den Sideloading-Workflow, der zur Ausführung verwendet wird. Analysten dokumentierten auch einen konsistenten Staging-Pfad-Marker, der „@27“ enthält, sowie einen Persistenzmechanismus über einen HKCU Run-Wert namens SystemUpdats. Die Backdoor wurde unter Verwendung eines fest codierten Satzes von 37 C2-IP-Adressen beobachtet, die über TCP 15628 kommunizieren und die Aktivität durch das Referenzieren von Microsoft-Update-URLs als Ablenkungsnetzwerk-Indikatoren verschleiern.
Minderung
Aktivieren Sie die vollständige Sichtbarkeit der Dateierweiterung und blockieren Sie die Ausführung von .pif-Dateien auf Endgeräten. Überwachen Sie die Erstellung versteckter Verzeichnisse unter Windows Update-Cache-ähnlichen Speicherorten und alarmieren Sie bei dem SystemUpdats Run-Schlüsselwert. Härten Sie UAC, indem Sie verhindern, dass Angreifer gleichzeitig die drei relevanten Richtlinienschlüssel nullen, und beschränken Sie ausgehende Verbindungen zu TCP 15628 an Ausgangspunkten. Erzwingen Sie die Überprüfung von Signaturen und überprüfen Sie signierte Binärdateien, die aus Nicht-System-Verzeichnissen gestartet werden, um das Risiko von DLL-Sideloading zu verringern.
Reaktion
Wenn Erkennungen ausgelöst werden, isolieren Sie den Endpunkt und bewahren sowohl Speicher- als auch Festplattenartefakte zur Überprüfung auf. Suchen Sie nach dem Staging-Verzeichnis mit „@27“, dem SystemUpdats Run-Schlüsseleintrag und verdächtigen DLLs, die mit der legitimen YY-Exe gekoppelt sind. Blockieren Sie die identifizierten C2-IPs/-Domains und implementieren Sie Anwendungssteuerungs-Richtlinien, die die Ausführung unsignierter oder nicht vertrauenswürdiger Binärdateien aus Benutzerprofilpfaden verhindern. Erweitern Sie die Untersuchung über die gesamte Flotte hinsichtlich derselben Persistenz- und Netzwerk-Muster, um weitere betroffene Hosts zu identifizieren.
"graph TB %% Klassendefinitionen classDef action fill:#99ccff classDef file fill:#ffcc99 classDef registry fill:#c2f0c2 classDef network fill:#ff99cc classDef builtin fill:#cccccc %% Knoten action_phishing_link["<b>Aktion</b> – <b>T1204.001 Benutzeraktion: Bösartiger Link</b><br/>Täuschender URL in Live-Chat gesendet, Opfer klickt und lädt eine .pif-Datei namens photo2025060268jpg.exe herunter"] class action_phishing_link action file_pif["<b>Datei</b> – <b>Name</b>: photo2025060268jpg.exe<br/><b>Typ</b>: .pif ausführbare Datei als Bild getarnt"] class file_pif file action_malicious_file["<b>Aktion</b> – <b>T1204.002 Benutzeraktion: Bösartige Datei</b><br/>Die .pif wird ausgeführt, öffnet Paint mit einem gefälschten Fehlerbild und startet den Loader"] class action_malicious_file action file_loader["<b>Malware</b> – <b>Name</b>: Loader<br/><b>Verhalten</b>: Entschlüsselt Payloads, startet updat.exe"] class file_loader builtin action_obfuscation["<b>Aktion</b> – <b>T1027.008 Verschleierte Dateien oder Informationen</b><br/>Alle Strings, URLs und Payloads sind doppelt Base64-verschlüsselt"] class action_obfuscation action action_debugger_evasion["<b>Aktion</b> – <b>T1622 Debugger-Umgehung</b><br/>Überprüft IsDebuggerPresent und Anrufstapel, beendet, wenn ein Debugger erkannt wird"] class action_debugger_evasion action action_persistence["<b>Aktion</b> – <b>T1547.001 Registrierung Run-Schlüssel/Startup-Ordner</b><br/>Schreibt HKCUSoftwareMicrosoftWindowsCurrentVersionRunSystemUpdats → updat.exe in verstecktem Staging-Ordner"] class action_persistence action registry_run_key["<b>Registrierung</b> – <b>Pfad</b>: HKCUSoftwareMicrosoftWindowsCurrentVersionRunSystemUpdats<br/><b>Wert</b>: updat.exe Pfad"] class registry_run_key registry file_updat["<b>Datei</b> – <b>Name</b>: updat.exe<br/><b>Ort</b>: verstecktes Staging-Verzeichnis"] class file_updat file action_uac_bypass["<b>Aktion</b> – <b>T1548.002 UAC-Umgehung</b><br/>Setzt EnableLUA, ConsentPromptBehaviorAdmin und PromptOnSecureDesktop in einer einzigen Transaktion auf 0"] class action_uac_bypass action action_appinit["<b>Aktion</b> – <b>T1546.010 AppInit DLLs</b> & <b>T1546.009 AppCert DLLs</b><br/>updat.exe wird mit Arbeitsverzeichnis gesetzt auf Staging-Ordner gestartet, was einen bösartigen DLL-Ladevorgang verursacht"] class action_appinit action file_vcruntime["<b>DLL</b> – <b>Name</b>: vcruntime140.dll (bösartig)"] class file_vcruntime file file_msvcp["<b>DLL</b> – <b>Name</b>: msvcp140.dll (bösartig)"] class file_msvcp file file_crashreport["<b>DLL</b> – <b>Name</b>: crashreport.dll (bösartig)"] class file_crashreport file action_dll_sideload["<b>Aktion</b> – <b>T1574.002 DLL-Sideloading</b><br/>Bösartige DLLs werden anstelle legitimer Laufzeitbibliotheken geladen"] class action_dll_sideload action action_c2["<b>Aktion</b> – <b>T1571 Nicht-standardmäßiger Port</b> & <b>T1573 Verschlüsselter Kanal</b><br/>Backdoor stellt TCP-Verbindung zu C2 über Port 15628 her, Datenverkehr verschlüsselt, manifestiert von AWS S3"] class action_c2 action network_c2["<b>Netzwerk</b> – <b>Protokoll</b>: TCP<br/><b>Port</b>: 15628<br/><b>Endpunkt</b>: C2-Server (AWS S3)"] class network_c2 network %% Verbindungen action_phishing_link –>|lädt herunter| file_pif file_pif –>|führt aus| action_malicious_file action_malicious_file –>|startet| file_loader file_loader –>|verwendet| action_obfuscation file_loader –>|verwendet| action_debugger_evasion file_loader –>|initiiert| action_persistence action_persistence –>|schreibt| registry_run_key registry_run_key –>|zeigt auf| file_updat file_updat –>|getriggert durch| action_uac_bypass action_uac_bypass –>|ermöglicht| action_appinit action_appinit –>|lädt| file_vcruntime action_appinit –>|lädt| file_msvcp action_appinit –>|lädt| file_crashreport file_vcruntime –>|trägt bei zu| action_dll_sideload file_msvcp –>|trägt bei zu| action_dll_sideload file_crashreport –>|trägt bei zu| action_dll_sideload action_dll_sideload –>|ermöglicht| action_c2 action_c2 –>|kommuniziert mit| network_c2 "
Angriffsablauf
Erkennungen
Mögliche UAC-Umgehung – Deaktivieren des Einwilligungs-Admins (über registry_event)
Ansehen
Mögliche bösartige Datei mit doppelter Erweiterung (über process_creation)
Ansehen
Mögliche Persistenzpunkte [ASEPs – Software/NTUSER Hive] (über registry_event)
Ansehen
Mögliche UAC-Umgehung – UAC-Deaktivierungsversuch (über registry_event)
Ansehen
Vcruntime140-Dynamikbibliothek aus verdächtigem Verzeichnis geladen (über image_load)
Ansehen
Mögliche UAC-Umgehung – Versuch der Deaktivierung des sicheren Desktop-Promptings (über registry_event)
Ansehen
IOCs (DestinationIP) zum Erkennen: Arbeiten der Warteschlange: APT-Q-27 Malware zielt auf Web3-Kundensupport Teil 1
Ansehen
IOCs (SourceIP) zum Erkennen: Arbeiten der Warteschlange: APT-Q-27 Malware zielt auf Web3-Kundensupport Teil 2
Ansehen
IOCs (DestinationIP) zum Erkennen: Arbeiten der Warteschlange: APT-Q-27 Malware zielt auf Web3-Kundensupport Teil 2
Ansehen
IOCs (HashSha256) zum Erkennen: Arbeiten der Warteschlange: APT-Q-27 Malware zielt auf Web3-Kundensupport
Ansehen
IOCs (SourceIP) zum Erkennen: Arbeiten der Warteschlange: APT-Q-27 Malware zielt auf Web3-Kundensupport Teil 1
Ansehen
Erkennung der Deaktivierung von UAC über Registry-Änderungen [Windows-Registrierungsereignis]
Ansehen
Erkennung von DLL-Sideloading über Updat.exe in AppData [Windows-Prozesserstellung]
Ansehen
Simulation Ausführung
Voraussetzung: Der Telemetrie- und Basislinien-Vorab-Check muss bestanden sein.
Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der Angreifertechnik (TTP), die zur Auslösung der Erkennungsregel entwickelt wurde. Die Befehle und die Erzählung MÜSSEN die identifizierten TTPs direkt widerspiegeln und zielen darauf ab, genau die Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird.
-
Angriffsnarrativ & Befehle:
Ein Angreifer mit lokalen Administratorrechten versucht, UAC zu deaktivieren, um den Weg für weitere Privilegien-Eskalationswerkzeuge zu ebnen. Mit dem nativenreg.exeHilfsprogramm (ein living-off-the-land-Binär), setzt der Angreifer die drei kritischen UAC-Richtlinienwerte auf0in schneller Folge (unter 30 Sekunden), um eine Erkennung durch manuelle Prüfverfahren zu vermeiden.# Schritt 1 - Deaktivieren von UAC „EnableLUA“ reg add "HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem" /v EnableLUA /t REG_DWORD /d 0 /f # Schritt 2 - Deaktivieren der Einwilligungsaufforderung für Admins reg add "HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem" /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 0 /f # Schritt 3 - Deaktivieren des sicheren Desktops für UAC-Eingabeaufforderungen reg add "HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem" /v PromptOnSecureDesktop /t REG_DWORD /d 0 /fDiese drei Befehle erzeugen drei Registry-Ereignis Logs (
EventID 4657im Sicherheitskanal und die entsprechendenMicrosoft-Windows-Registry/OperationalEreignisse) mit denZielobjektPfaden undDetailsWerten, auf die die Sigma-Regel abgestimmt ist. -
Regressionstest-Skript: Das folgende PowerShell-Skript führt die drei Schreibvorgänge mit einer 5-Sekunden-Pause dazwischen aus, um sich problemlos im 30-Sekunden-Fenster zu bewegen, und bietet gleichzeitig einen deterministischen Ausführungsfluss.
# Regressionstest - Deaktivieren von UAC über die Registrierung $regPath = "HKLM:SOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem" # Ursprüngliche Werte für die spätere Bereinigung speichern $originalEnableLUA = (Get-ItemProperty -Path $regPath -Name EnableLUA -ErrorAction SilentlyContinue).EnableLUA $originalConsent = (Get-ItemProperty -Path $regPath -Name ConsentPromptBehaviorAdmin -ErrorAction SilentlyContinue).ConsentPromptBehaviorAdmin $originalPrompt = (Get-ItemProperty -Path $regPath -Name PromptOnSecureDesktop -ErrorAction SilentlyContinue).PromptOnSecureDesktop # UAC deaktivieren Set-ItemProperty -Path $regPath -Name EnableLUA -Value 0 Start-Sleep -Seconds 5 Set-ItemProperty -Path $regPath -Name ConsentPromptBehaviorAdmin -Value 0 Start-Sleep -Seconds 5 Set-ItemProperty -Path $regPath -Name PromptOnSecureDesktop -Value 0 Write-Host "UAC deaktiviert – Verifizierungsprotokolle sollten jetzt eingelesen werden." -
Bereinigungsbefehle: Stellen Sie die ursprünglichen UAC-Einstellungen wieder her, um das System in den Status vor dem Test zurückzuversetzen.
# Bereinigung – Ursprüngliche UAC-Einstellungen wiederherstellen $regPath = "HKLM:SOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem" if ($null -ne $originalEnableLUA) { Set-ItemProperty -Path $regPath -Name EnableLUA -Value $originalEnableLUA } if ($null -ne $originalConsent) { Set-ItemProperty -Path $regPath -Name ConsentPromptBehaviorAdmin -Value $originalConsent } if ($null -ne $originalPrompt) { Set-ItemProperty -Path $regPath -Name PromptOnSecureDesktop -Value $originalPrompt } Write-Host "UAC-Einstellungen auf ursprüngliche Werte zurückgesetzt."