Wer auf der gefälschten Wavel-Seite die Schaltfläche „Download für macOS“ anklickt, erhält ein Disk-Image („Wavel.dmg“) mit einer kompilierten AppleScript-Datei. Wird sie geöffnet, startet Apples eigener Script Editor samt Anleitung, die den JXA-Dropper zur Ausführung bringt.
Die Rolle dieser JXA-Schicht hat sich laut Jamf grundlegend gewandelt. „Bei Maccy, Scoppr und Nancy führte der JXA-Quelltext die RC4-Entschlüsselung einer eingebetteten Nutzlast durch, rief über die JXA-Brücke Objective-C-Frameworks wie Foundation und NSData auf und steuerte den gesamten Download- und Staging-Prozess“, erläutert Xhaflaire. „Bei Wavel enthält der JXA-Quelltext nichts davon mehr. Die gesamte JXA-Ebene ist nur noch ein Träger.“ Der Script Editor dekodiert eine Base64-Zeichenkette und leitet das Ergebnis an „/bin/zsh -s“ weiter, das die dekodierten Bytes von der Standardeingabe liest und ausführt. Der JXA-Prozess beendet sich sofort, während der zsh-Dropper im Hintergrund weiterläuft.
Den Kern der neuen Konstruktion bildet das Hilfsprogramm pkgunpack, das einen Schlüsselaustausch mit dem Server abwickelt. Weil der private Schlüssel ausschließlich beim Betreiber liegt, lässt sich der Data Encryption Key (DEK) nicht ohne ihn rekonstruieren – die Nutzlast bleibt verschlüsselt. Zusätzlich wird bei jeder Ausführung ein neues kurzlebiges Schlüsselpaar erzeugt, sodass ein einmal abgefangener DEK-Wert sich nicht erneut verwenden lässt, um an den Inhalt zu gelangen.
Bemerkenswert ist auch die Verankerung im System: Ein sogenanntes Reparaturskript wird in die Verzeichnisse „post-checkout“ und „pre-commit“ unterhalb von „~/Library/Application Support/System/.githooks/“ kopiert. Parallel setzen die Angreifer die Git-Konfigurationsoption „git config –global core.hooksPath“ auf dieses Verzeichnis. Jede beliebige Checkout- oder Commit-Aktion in irgendeinem Repository auf dem kompromittierten Rechner aktiviert das Skript damit unbemerkt.
Die letzte Stufe, die eigentliche Stealer-Komponente, ist diesmal in Swift geschrieben – ein Wechsel gegenüber dem Vorgänger, der in Rust umgesetzt war. Am Ziel ändert das nichts. Auffällig ist für Jamf die Breite der anvisierten Anwendungen: „Die Einbeziehung von Arc, Zen sowie weniger verbreiteter regionaler und datenschutzorientierter Browser erweitert die Zielliste spürbar über das hinaus, was bei handelsüblichen macOS-Stealern üblich ist“, so Xhaflaire.
Sein Fazit zur Weiterentwicklung fällt deutlich aus: Diese PamStealer-Variante zeige eine bewusste Investition in die Auslieferungsinfrastruktur. Das Werkzeug pkgunpack koppele die Entschlüsselung an die Verfügbarkeit des Servers – ohne dessen Mitwirkung lasse sich die zweite Stufe nicht entschlüsseln. Das erschwere die statische Wiederherstellung der Nutzlast erheblich und verlagere einen Teil der operativen Kontrolle zum Serverbetreiber.
