Osegi
Sicherheit·2 Min. Lesezeit

Fake-Jobangebot: ZIP startet Schadcode schon mit git status

Ein angeblicher Recruiter von Cryptic Heaven schickte einem Entwickler ein ZIP mit präpariertem .git-Ordner. Schon ein normales git status kann Schadcode laden.

A developer's laptop screen showing a terminal running git status next to a ZIP archive named Contract-2026.zip.
Bild: Хабр

Ein Entwickler bekam auf LinkedIn eine Nachricht von einem Recruiter der Firma Cryptic Heaven, die angeblich ein Finanzsystem für Krypto-Kreditkarten baut. Das Angebot wirkte unauffällig. Das ZIP dahinter nicht: Ein einfaches git status im falschen Ordner kann reichen, um die Falle auszulösen.

Auf Nachfrage schickte der Recruiter einen Link zu Vertrag, Stellenbeschreibung und Projekt. Dahinter lag Contract-2026.zip mit einer README.md, einer contract.docx und einem vollständigen .git-Verzeichnis samt Verlauf, mehreren Branches und lokalen Einstellungen. Die README forderte dazu auf, drei Branches nacheinander anzusehen: Stelle, Vertrag, Code. Der Vertrag war eine leere Vorlage, ohne Rechtsträger, Bezahlung oder Gerichtsstand. Auch die Anzeige für einen Smart Contract Developer war größtenteils leer.

Wie funktioniert die Git-Falle?

Git kann externe Programme starten, und der Angreifer hat zwei Wege dafür vorbereitet. Erstens zeigt core.hooksPath in der .git/config auf einen anderen Ordner für Hooks (Skripte, die bei Ereignissen laufen). Dort lag ein post-checkout-Skript, das nach einem Branch-Wechsel startet. Deshalb sollte man in der README zwischen den Branches springen.

Zweitens gibt es einen eigenen „clean“-Filter namens ltr, mit dem Git Dateiinhalte vor dem Speichern umwandelt. Eine Attributregel mit Platzhalter wies ihn allen Dateien zu. Um Änderungen zu erkennen, kann git status Dateien durch diesen Filter schicken. Ein gewöhnliches git status, das manche Editoren selbst ausführen, startet dann das Skript .git/ltr.

Der Autor hat das in einem harmlosen Testrepository nachgestellt: git status rief den Filter auf, ein Branch-Wechsel zusätzlich post-checkout.

Was macht das Skript?

Es ist ein Shell-Skript mit Debounce: Jeder Filteraufruf aktualisiert einen Zeitstempel, und ein Hintergrundprozess wartet, bis zwei Sekunden lang nichts Neues kommt, damit er nur einmal feuert. Ein per mkdir angelegtes Verzeichnis dient als Sperre. Danach erkennt es das Betriebssystem, lädt Code von einer Subdomain bei vercelscript.vercel.app und führt ihn aus, unter Linux und macOS über sh, unter Windows über PowerShell. Ausgaben und Fehler gehen nach /dev/null, der Nutzer merkt womöglich nichts.

Was der nachgeladene Code tut, lässt sich allein aus dem ZIP nicht sagen. Denkbar sind ein Loader für die nächste Stufe, Datendiebstahl oder anderes.

Die Lehre: Ein Repository als Archiv samt .git-Ordner ist etwas anderes als ein Klon von GitHub oder GitLab, und es in einer IDE zu öffnen kann riskant sein.

Apps, die sich lohnen

SUMO: das Zahlenrätsel

Tippe die richtigen Felder, addiere, triff das Ziel. Leicht zu lernen, schwer zu meistern. Kostenlos, für jedes Alter.

Schlagwörter:gitmalwarelinkedinjob scamcryptic heavendeveloper security

Mehr von diesem Tag

Alle anzeigen →

Mehr aus: Sicherheit

Alle anzeigen →