Cybersecurity-onderzoekers hebben een nieuwe macOS-informatiedief gemarkeerd, genaamd Pam Stealer dat gebruik maakt van een reeks slimme trucs om systemen te infecteren en gevoelige gegevens over te hevelen.
De stealer, ontdekt door Jamf Threat Labs, wordt verspreid als een gecompileerd AppleScript-bestand (.scpt) dat de identiteit van Maccy nabootst, een legitieme open-source klembordmanager. Het heeft de codenaam PamStealer gekregen vanwege de mogelijkheid om het inlogwachtwoord van het slachtoffer te valideren via de macOS Pluggable Authentication Modules (PAM) voordat het wordt vastgelegd.
De malware wordt in twee fasen afgeleverd: een gecompileerd AppleScript, verspreid in een schijfkopie, dat is ontworpen om een vervolglading te downloaden en op te zetten. Het secundaire artefact is een op Rust gebaseerde infostealer die in staat is tot diefstal van inloggegevens, het verzamelen van browsergegevens, persistentie en exfiltratie.
De initiële toegangsvector voor de malware is een lookalike-site (“maccyapp(.)com”) die Maccy nabootst (“maccy(.)app”). Het AppleScript (“Maccy.scpt”) dat aanwezig is in de schijfkopie voert een op zichzelf staande JavaScript for Automation (JXA) downloader uit die de stealer-payload ophaalt en faseert met behulp van native Objective-C API’s.
Wat hier opvalt, is dat het script, zodra het via de Script Editor is gestart, instructies weergeeft om het uit te voeren met behulp van de sneltoets “⌘ + R” of door op de knop Uitvoeren in de Script Editor te klikken, waardoor de kwaadaardige logica die verborgen is in het bestand onder een groot blok lege regels wordt uitgevoerd.
“Opmerkelijk genoeg werkt dit zelfs als het bestand nog steeds het attribuut com.apple.quarantine draagt, wat de aanpak aantrekkelijk maakt voor aanvallers nu Apple Gatekeeper en Terminal blijft aanscherpen”, aldus beveiligingsonderzoeker Thijs Xhaflaire. “Gecombineerd met een op Rust gebaseerde tweede fase en een workflow voor het vastleggen van wachtwoorden die de inloggegevens lokaal valideert via PAM, is het resultaat een stillere uitvoeringsketen dan we doorgaans waarnemen bij gewone macOS-stelers.”
De AppleScript-dropper bevat milieubewuste functies die ervoor zorgen dat de uitvoering pas kan doorgaan nadat er een vingerafdruk van de host is genomen en is vastgesteld dat deze op Apple Silicon draait. Het doet dit door een sleutel af te leiden op basis van de vingerafdruk, die details bevat zoals de CPU-architectuur, landinstelling, toetsenbordindeling en de tijdzone, en deze vervolgens te gebruiken om een gecodeerde configuratie te ontgrendelen die de payload-URL en het installatiepad bevat.
Op Intel-gebaseerde Macs verschilt de afgeleide decoderingssleutel en kan de configuratie niet worden gedecodeerd, wat resulteert in het beëindigen van de dropper. Het script vermijdt ook uitvoering in sandbox- of analyseomgevingen, evenals in systemen waarvan de tijdzone, systeemlandinstelling en toetsenbordinvoer worden omgezet naar landen in Oost-Europa, zoals Rusland, Wit-Rusland, Kazachstan, Armenië, Azerbeidzjan, Kirgizië, Moldavië, Tadzjikistan, Oezbekistan, Turkmenistan en Georgië.
Zodra de controles zijn geslaagd, neemt het script contact op met de externe server en downloadt een Mach-O binair bestand geschreven in Rust dat zich voordoet als de Finder-app en verantwoordelijk is voor het verzamelen van gegevens uit webbrowsers, portemonnee-extensies voor cryptocurrency, iCloud-sleutelhanger en klembordinhoud. De vastgelegde informatie wordt vervolgens gecodeerd en geëxfiltreerd naar een door de aanvaller gecontroleerde infrastructuur (“avenger-sync(.)live”) via een uitgaand HTTP-verzoek.
Naast het dwingen van de gebruiker om hem volledige toegang tot het bestandssysteem te verlenen, geeft de dief een native wachtwoordprompt weer die het systeemwachtwoord van het slachtoffer verzamelt en vervolgens het ingevoerde wachtwoord valideert door het te controleren via de PAM API. Als de validatie mislukt, wordt de gebruiker gevraagd het wachtwoord opnieuw in te voeren en wordt de lus herhaald totdat het juiste wachtwoord wordt opgegeven.
“Zodra een geldig wachtwoord is onderschept, toont de dief een tweede valse waarschuwing: ‘Maccy is beschadigd en kan niet worden geopend. Je moet het naar de prullenbak verplaatsen’, een kopie van het echte Gatekeeper-bericht,” zei Jamf. “Dit is een lokmiddel. Tegen de tijd dat het verschijnt, is de payload al uitgevoerd, heeft het wachtwoord vastgelegd en is geregistreerd voor persistentie, dus het bericht dient er alleen maar voor om het slachtoffer het lokaas te laten weggooien en aan te nemen dat de download kapot was.”
Ook ingebouwd in het Rust-binaire bestand is een kleine arm64 Mach-O die de systeeminstellingen van macOS nabootst en wordt gebruikt voor het instellen van persistentie.
De ontwikkeling heeft Alex Rodionov, de ontwikkelaar van Maccy, ertoe aangezet een waarschuwing op hun website en de GitHub-repository op te nemen, waarin staat: “Pas op voor nepwebsites die zich voordoen als Maccy. Schadelijke sites (zoals maccyapp(.)net en maccyapp(.)com) verspreiden malware vermomd als Maccy. maccy.app is de enige officiële website.”
“Samen illustreren deze gedragingen hoe commodity-macOS-stelers zich blijven ontwikkelen, waarbij ze stillere uitvoeringsketens en native implementaties aannemen die de traditionele detectiemogelijkheden verminderen, terwijl ze compatibel blijven met standaard macOS-functies”, aldus Jamf.