Kothamine-Malware nutzt Tailcat für unauffälligen Netzzugang
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Kothamine ist ein undokumentierter Remote-Access-Trojaner (RAT), der über bösartige npm-Pakete verbreitet wird. Er nutzt das Open-Source-Tool tailcat von Tailscale, um verschlüsselte Command-and-Control (C2) Kanäle einzurichten und traditionelle Netzwerkkontrollen zu umgehen. Die Malware verfügt über ein modulares Plugin-System, das Angreifern ermöglicht, Fähigkeiten wie Datendiebstahl und Systemkontrolle zu erweitern.
Untersuchung
Forscher identifizierten Kothamine durch die Analyse bösartiger npm-Pakete wie dotnet-runtime-base. Die Untersuchung enthüllte einen mehrstufigen Ausführungsprozess, der einen Injektor umfasst, der explorer.exe anvisiert und Tailcat für widerstandsfähige Kommunikation verwendet. Technische Analysen zeigten den Einsatz von AES-GCM zur Befehlsverschlüsselung und einer Plugin-Architektur zum Laden zusätzlicher DLLs.
Minderung
Benutzer sollten npm-Pakete sorgfältig prüfen, indem sie die Repository-Geschichte, Maintainer und Abhängigkeitsreputation vor der Installation überprüfen. Organisationen sollten strenge Kontrollen über Entwicklerumgebungen implementieren und die unautorisierte Nutzung von Netzwerktools wie Tailscale oder tailcat überwachen. Regelmäßiges Scannen nach unautorisierten geplanten Aufgaben und Änderungen an den Ausschlusslisten von Windows Defender wird ebenfalls empfohlen.
Reaktion
Nach der Erkennung sollten betroffene Systeme isoliert werden, um seitliche Bewegungen und Datenexfiltration über den Tailcat-Kanal zu verhindern. Führen Sie eine Speicherforensik auf explorer.exe durch, um injizierte Kothamine-Agent-DLLs zu identifizieren. Überprüfen Sie die Ausschlusslisten und geplante Aufgaben von Windows Defender auf Persistenzmechanismen wie ‚MicrosoftEdgeUpdateTask‘.
Angriffsfließ
Erkennungen
Die Möglichkeit der Ausführung durch versteckte PowerShell-Befehlszeilen (via cmdline)
Mögliche Entdeckung der Systemnetzwerkkonfiguration (via cmdline)
Mögliche Ausführung durch die Verwendung eines kurzen Skriptnamens (via cmdline)
Alternativ zu Remote-Zugriff / Management-Software (via process_creation)
Mögliche geplante Aufgaben-Erstellung (via powershell)
Verdächtige Änderungen der Windows Defender-Einstellungen (via powershell)
Alternative Remote-Zugriff / Management-Software (via system)
Alternative Remote-Zugriff / Management-Software (via audit)
Kothamine Tailcat Lokale Port-Kommunikationserkennung [Windows Netzwerkverbindung]
Kothamine Malware-Erkennung über MicrosoftEdgeUpdateCore und Tailcat [Windows Prozess-Erstellung]
Simulationsausführung
-
Angriffserzählung & Befehle: Ein Angreifer beabsichtigt, Persistenz zu etablieren und Netzwerkerkennung zu umgehen, indem er die Kothamine-Malware einsetzt. Zuerst ahmt der Angreifer einen legitimen Aktualisierungsprozess nach, indem er eine bösartige Nutzlast bewegt nach
%APPDATA%MicrosoftEdgeUpdateCore.exe. Um während der Injektionsphase nicht erkannt zu werden, führt der Angreifer einen PowerShell-Befehl mit versteckten Fenster-Flaggen aus. Dieser Befehl sollVirtualAllocExandCreateRemoteThreadaufzurufen, um Code in einen Zielprozess zu injizieren, was eine verschlüsselte C2-Kommunikation übertailcat.exe. -
Regressionstest-Skript:
# Kothamine Simulationsskript $appData = [System.Environment]::GetFolderPath('ApplicationData') $targetPath = Join-Path $appData "MicrosoftEdgeUpdateCore.exe" $maliciousPayload = "C:WindowsSystem32calc.exe" # Verwende Taschenrechner als Dummy-Nutzlast # 1. Simulieren der Ablage der bösartigen Binärdatei (T1218) Copy-Item $maliciousPayload $targetPath -Force Write-Host "[+] Nutzlast in $targetPath abgelegt" # 2. Simulieren der Ausführung des Injektionsbefehls (T1055) # Hinweis: Wir simulieren die Befehlszeilen-Strings, nach denen die Regel sucht. # Da wir 'OpenProcess' nicht einfach aus einem rohen CLI-String ohne Skript aufrufen können, # simulieren wir die Befehlszeilen-Telemetrie, die von Sysmon/EDR erfasst würde. $cmd = "powershell -NoP -NonI -W Hidden -Exec Bypass -Command `"`$mem = [Runtime.InteropServices.Marshal]::AllocHGlobal(1024); [Runtime.InteropServices.Marshal]::WriteProcessMemory(...)`"" Start-Process -FilePath $targetPath -ArgumentList $cmd Write-Host "[+] Bösartiger Befehl ausgeführt über $targetPath" -
Bereinigungsbefehle:
# Bereinigen der simulierten Artefakte $appData = [System.Environment]::GetFolderPath('ApplicationData') $targetPath = Join-Path $appData "MicrosoftEdgeUpdateCore.exe" if (Test-Path $targetPath) { Remove-Item $targetPath -Force Write-Host "[+] Bereinigt $targetPath" }