
Read-only-Scanner für die mit einem Backdoor versehene Claude Code 2.1.313-Erweiterung (Cursor-Marketplace, Okt. 2026): SSH-Schlüssel, Persistenz, Reverse-Tunnel. macOS + Linux.
Nur-Lese-Scanner und Erkennungsregeln für die trojanisierte Erweiterung [email protected].
[!WARNING] Der Cursor-Marketplace hat am 29.10.2026, 09:27–20:35 UTC einen Build ausgeliefert, der nicht von Anthropic veröffentlicht wurde. Er platziert einen SSH-Schlüssel und Persistenz und öffnet anschließend einen Reverse-Tunnel zu
134.209.82[.]225. Ein Update auf 2.1.314 entfernt die Erweiterung, nicht das, was sie platziert hat.
Unabhängiges Community-Tool von HappyHackingSpace. Nicht mit Anthropic oder Cursor verbunden.
Inhalt: Schnellstart · Was geprüft wird · Erkennungsregeln · Wenn Sie einen Treffer erzielen · Das C2 blockieren · IOCs · Referenzen
git clone https://github.com/happyhackingspace/claude-code-backdoor-check.git
cd claude-code-backdoor-check
bash check.sh # fast scan
bash check.sh --deep # + sshd log analysis (slower on macOS)
0 sauber · 1 Indikatoren gefunden · 2 Nutzungsfehler.| Ausgabe | Exit | Bedeutung |
|---|---|---|
✖ COMPROMISED | 1 | Aktives Artefakt gefunden: Schlüssel, abgelegte Datei, Persistenz, Tunnel, C2-Hostschlüssel oder der fehlerhafte Build |
! EXPOSED | 1 | 2.1.313 war zu einem bestimmten Zeitpunkt installiert, aber es wurde nichts Aktives gefunden |
✔ CLEAN | 0 | Keine Indikatoren |
| # | Bereich | Sucht nach |
|---|---|---|
| 1 | Erweiterungen | 2.1.313 in Cursor-/VS Code-/Windsurf-/VSCodium-Verzeichnissen, dem fehlerhaften extension.js-Hash, Loader-Strings |
| 2 | Installationsverlauf | 2.1.313 in extensions.json, .obsolete, dem VSIX-Cache, Editor-Logs |
| 3 | SSH-Schlüssel | svc-telemetry-Schlüssel in authorized_keys |
| 4 | Abgelegte Dateien | ~/.config/.smt, .smtk, .stk_*-Temp-Dateien |
| 5 | Persistenz | macOS: LaunchAgents/Daemons · Linux: cron, systemd, Autostart · beide: Shell-rc-Dateien |
| 6 | Prozesse | der Reverse-Tunnel (ssh -R *:0:localhost:22 tunnel@…) und der .smt-Runner |
| 7 | Netzwerk | aktive C2-Verbindungen; das C2 in known_hosts |
| 8 | SSH-Server | :22-Listener; mit --deep sshd-Logins über den Angreifer-Schlüssel oder 127.0.0.1 |
| 9 | Exposition | Namen von Credential-Umgebungsvariablen und zu rotierende Credential-Dateien (Werte werden nie gelesen) |
[!NOTE]
com.apple.sysmondist auch ein echter Apple-System-Daemon. Nur die Kopie in der Benutzer-Domäne (~/Library/LaunchAgents) ist bösartig.
Für EDR/SIEM-Pipelines und flottenweite Suche. Anders als im Rest dieser README enthalten die Regeldateien das C2 un-defanged, da sie darauf matchen müssen.
rules/sigma/)| Regel | Log-Quelle | Stufe |
|---|---|---|
| Reverse-SSH-Tunnel zum C2 | process_creation | critical |
| Verbindung zum C2 | network_connection | critical |
| Abgelegtes Tunnel-Skript / Schlüssel | file_event | high |
Gefälschter com.apple.sysmond-LaunchAgent | file_event · macOS | high |
| Remote Login aktiviert aus dem Editor-Prozessbaum | process_creation · macOS | high |
@reboot-Cron / .smt-Ausführung | process_creation · Linux | high |
SysMon-Scheduled-Task / OpenSSH-Installation aus dem Editor | process_creation · Windows | high |
pip install sigma-cli
sigma plugin install splunk # or elasticsearch, microsoft365defender, …
sigma convert -t splunk --without-pipeline rules/sigma/
rules/yara/claude_code_backdoor.yar)| Regel | Übereinstimmungen |
|---|---|
HHS_ClaudeCode_Backdoor_Loader | trojanisiertes extension.js (Hash- oder Loader-Strings) |
HHS_ClaudeCode_Backdoor_TunnelScript | abgelegtes .smt / smt.cmd |
HHS_ClaudeCode_Backdoor_Persistence | LaunchAgent, @reboot-Cron, SysMon-Task, der auf das Skript verweist |
HHS_ClaudeCode_Backdoor_AuthorizedKey | authorized_keys mit dem Schlüssel svc-telemetry |
yara -r -s rules/yara/claude_code_backdoor.yar \
~/.cursor/extensions ~/.vscode/extensions ~/.config ~/.ssh ~/Library/LaunchAgents
[!TIP] Die Sigma-Regeln decken auch Windows ab (geplante Aufgabe, OpenSSH-Installation), was
check.shnicht tut.
[!CAUTION] Die Persistenz öffnet den Tunnel etwa alle 60 Sekunden erneut. Erst eindämmen, dann bereinigen. Cursor stellt außerdem offizielle Behebungsskripte bereit: siehe den Sicherheitshinweis.
1. Eindämmen. Nehmen Sie die Maschine offline oder blockieren Sie das C2.
2. Beweise sichern, bevor Sie etwas löschen:
mkdir -p ~/ioc-evidence && cd ~/ioc-evidence
bash /path/to/check.sh --deep --no-color > scan.txt
cp -p ~/.ssh/authorized_keys ~/.ssh/known_hosts ~/.config/.smt ~/.config/.smtk . 2>/dev/null
[!IMPORTANT]
.smtkist der private Tunnel-Schlüssel des Angreifers. Halten Sie den Beweisordner privat.
3. Aufräumen. Entfernen Sie die Persistenz, beenden Sie den Tunnel, löschen Sie die Artefakte:
C2="$(echo '134.209.82[.]225' | tr -d '[]')"
launchctl bootout gui/$(id -u)/com.apple.sysmond
rm -f ~/Library/LaunchAgents/com.apple.sysmond.plist
pkill -f "tunnel@$C2"; pkill -f 'autossh -M 0'; pkill -f '\.config/\.smt'
sed -i.bak '/svc-telemetry/d' ~/.ssh/authorized_keys
ssh-keygen -R "$C2"
rm -f ~/.config/.smt ~/.config/.smtk "$TMPDIR"/.stk_*
sudo systemsetup -setremotelogin off # if you don't use SSH
crontab -l | grep -vE '\.config/\.smt|tunnel@' | crontab -
# disable and remove any systemd/autostart entries check.sh reported
pkill -f "tunnel@$C2"; pkill -f 'autossh -M 0'; pkill -f '\.config/\.smt'
sed -i.bak '/svc-telemetry/d' ~/.ssh/authorized_keys
ssh-keygen -R "$C2"
rm -f ~/.config/.smt ~/.config/.smtk /tmp/.stk_* /var/tmp/.stk_*
sudo systemctl disable --now ssh # if you don't use SSH
4. Ersetzen Sie die Erweiterung. Entfernen Sie anthropic.claude-code-2.1.313* und installieren Sie ≥ 2.1.314.
5. Überprüfen. bash check.sh --deep sollte mit 0 beenden.
6. Rotieren Sie die Anmeldedaten von einem anderen, sauberen Rechner: SSH-Schlüssel, Git-Tokens, Cloud- und API-Schlüssel, Registry-Tokens. Beginnen Sie mit der Liste unter [9/9].
7. Bauen Sie den Rechner neu auf, wenn das C2 in known_hosts steht oder sshd den Angreiferschlüssel akzeptiert hat.
Führen Sie es mit --deep aus. Rotieren Sie mindestens die unter [9/9] aufgeführten Secrets, da ihre Namen gebeaconed wurden. Halten Sie das C2 blockiert.
Das Implantat verbindet sich direkt mit der IP, sodass DNS-Filter (NextDNS, Pi-hole) es nie sehen. Blockieren Sie es an der Firewall: